Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
String을 자~알 자르고 싶어여.
1|2|3|4|5|1|2|3|4|5|...
이런식으로 나열된 스트링이 있습니다.
근데 이것을
1|2|3|4|5
1|2|3|4|5
이런식으로 잘라내고 싶습니다.
무슨 방법이 없을까여?
Pos를 써봤는데 글자 하나하나 짤려서ㅣ ^^;;;
답변 부탁드립니다 ^^;;;;
3
COMMENTS
흐미...
•
2001.09.13 01:03
초보자.. wrote:
> 1|2|3|4|5|1|2|3|4|5|...
> 이런식으로 나열된 스트링이 있습니다.
> 근데 이것을
> 1|2|3|4|5
> 1|2|3|4|5
> 이런식으로 잘라내고 싶습니다.
> 무슨 방법이 없을까여?
> Pos를 써봤는데 글자 하나하나 짤려서ㅣ ^^;;;
> 답변 부탁드립니다 ^^;;;;
>
무식하게 한번 만들어봤습니다.
procedure TForm1.Button1Click(Sender: TObject);
var vs_Temp, vs_Result: String;
vi_Loop,i, vi_Mid, vi_End, vi_Cnt, vi_Cnt5, vi_Temp : Integer;
begin
vs_Temp := '1|28806003000292|1000|1000|739|1|8806011010067|1000|500|739|00|0001|002|003|1|2|3|4|5|1|2|3|4|5|100|200|200|300|400|500|100|';
Edit1.Text := vs_Temp;
vi_Loop := 0;
vi_Mid := 1;
vi_Cnt := 0;
vi_Cnt5 := 0;
vi_Temp := 0;
Memo1.Lines.Clear;
//먼저 해당스트링의 '|'을 포함갯수를 구합니다.
for i:=1 to length(vs_Temp) do
begin
if copy(vs_Temp,i,1) = '|' then
vi_Cnt := vi_Cnt+1;
end;
//예상되는 라인수를 구하고,
vi_Temp := vi_Cnt div 5;
//글자수만큼 루프를돌립니다.
for i:=1 to length(vs_Temp) -1 do
begin
if copy(vs_Temp,i,1) = '|' then
begin
vi_Loop := vi_Loop +1;
//'|'의 갯수가 5개일때에 할 작업입니다.
if vi_Loop mod 5 = 0 then
begin
// '|'의총갯수 가 5로나눈 나머지값을 위한변수입니다.
vi_Cnt5 := vi_Cnt5+1;
//첫라인의경우
if vi_Cnt5 = 1 then
begin
vi_Mid := 1;
vi_End := i;
Memo1.Lines.Add(copy(vs_Temp, vi_Mid, vi_End));
vi_Mid := vi_End+1;
end;
//두번째이상의 라인일경우
if vi_Cnt5 > 1 then
begin
vi_End := i - vi_Mid +1;
Memo1.Lines.Add(copy(vs_Temp, vi_Mid, vi_End));
vi_Mid := vi_Mid + vi_End;
//마지막의경우 나머지 스트링을 처리
if (vi_Cnt5 = vi_Temp ) then
Memo1.Lines.Add(copy(vs_Temp, i+1, Length(vs_Temp) - i));
end;
end;
end;
end;
end;
무지막지해서 지송함다...
0
0
삭제
수정
댓글
정성훈
•
2001.09.12 00:45
초보자.. wrote:
> 1|2|3|4|5|1|2|3|4|5|...
> 이런식으로 나열된 스트링이 있습니다.
> 근데 이것을
> 1|2|3|4|5
> 1|2|3|4|5
> 이런식으로 잘라내고 싶습니다.
> 무슨 방법이 없을까여?
> Pos를 써봤는데 글자 하나하나 짤려서ㅣ ^^;;;
> 답변 부탁드립니다 ^^;;;;
>
>
안녕하세요
음 보니까 일정한 규칙이네요
그냥 가장 간단하게 생각하세요
aa := 1|2|3|4|5|1|2|3|4|5|...
만약 저게 aa 라구 가정.
//버튼 클릭.
procedure TForm1.Button1Click(Sender: TObject);
var
sStr : String;
i, j : Integer;
aa : String;
begin
j := 1;
aa := Edit1.Text;
Memo1.Lines.Add( Copy( aa, 1, 9 ) );
for i := 1 to Length( aa ) do
begin
if j * 10 = i then
begin
Memo1.Lines.Add( Copy( aa, i + 1, 9 ) );
Inc( j );
end;
end;
end;
0
0
삭제
수정
댓글
초보자..
•
2001.09.12 01:11
답변감사드립니다 ^^
님이 얘기하신 방법은 나열되있는 값이 완전히 규칙적이어야 할때 쓰는 방법인거 같은데요.
제가 잘라내야하는 스트링값은 1|28806003000292|1000|1000|739|1|8806011010067|1000|500|739| <== 이것을
1|28806003000292|1000|1000|739|
1|8806011010067|1000|500|739| <== 이렇게하고싶은거였는데
갯수는 일정하구요.
제가 예문을 잘못드렸네요..
답변 무지 무지 감사드립니다.
행복하세요... ^.^;;;
정성훈 wrote:
> 초보자.. wrote:
> > 1|2|3|4|5|1|2|3|4|5|...
> > 이런식으로 나열된 스트링이 있습니다.
> > 근데 이것을
> > 1|2|3|4|5
> > 1|2|3|4|5
> > 이런식으로 잘라내고 싶습니다.
> > 무슨 방법이 없을까여?
> > Pos를 써봤는데 글자 하나하나 짤려서ㅣ ^^;;;
> > 답변 부탁드립니다 ^^;;;;
> >
> >
>
> 안녕하세요
> 음 보니까 일정한 규칙이네요
> 그냥 가장 간단하게 생각하세요
>
>
> aa := 1|2|3|4|5|1|2|3|4|5|...
>
> 만약 저게 aa 라구 가정.
>
> //버튼 클릭.
> procedure TForm1.Button1Click(Sender: TObject);
> var
> sStr : String;
> i, j : Integer;
> aa : String;
> begin
> j := 1;
> aa := Edit1.Text;
>
> Memo1.Lines.Add( Copy( aa, 1, 9 ) );
> for i := 1 to Length( aa ) do
> begin
> if j * 10 = i then
> begin
> Memo1.Lines.Add( Copy( aa, i + 1, 9 ) );
> Inc( j );
> end;
> end;
> end;
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
왕초보
2001.09.12 03:21
0
COMMENTS
/
0
LIKES
OnGetAxisLabel Event
김병표
2001.09.12 02:09
0
COMMENTS
/
0
LIKES
특정 URL에서 IP번호를 알아내고 싶습니다..
비루스
2001.09.12 02:02
0
COMMENTS
/
0
LIKES
Rxrichedit 사용하여 DB에 데이타 넣는데 잘 안되네요 벌써 3일째... 흑흑흑
Jiny
•
2001.09.12 01:20
5
COMMENTS
/
0
LIKES
Midas 에서 트랜잭션을 어떻게...
나그네
•
2001.09.26 00:27
아래의 뉴스그룹을 참조하세요.. From: Dan Miser (TeamB) (dmiser@execpc.com) Subject: Re: Bug in M...
김지엽
•
2001.09.12 06:08
ApplyUpdate는 CashedUpdate 방식을 사용하는 것 아닌가여? 그 경우, CashedUpdate모드 나름의 트랜잭션이...
Jiny
•
2001.09.13 03:45
안녕하세요.. 지엽님 제 질문에 관심을 가져 주셔서 감사합니다. 오늘 종일 밖에 일이 있어 늦게...
스파토이
•
2001.09.12 05:12
저기... 죄송한데요... 실행하면 이런 메세지 왜 떠죠 ? 실행 : SocketConnection1.AppServer.PaintFo...
김지엽
•
2001.09.12 06:13
해당 오류구문은 말 그대로 Remote Application Server의 Object Method로 해당 메쏘드명이 등록되어 있지 ...
델초보
•
2001.09.12 00:33
2
COMMENTS
/
0
LIKES
★★CachedUpdate mode로 query할 경우 너무 느림
델파이사랑
•
2001.09.12 01:43
델초보 wrote: > CachedUpdate mode에서 해당 테이블 (10만건이 넘음)을 Filer, index를 주어 조회를 해도...
델초보
•
2001.09.12 03:27
Edit모드로 한다는 것이 어떤것인가요? 또 제 BDE환경에서 SQLPATHTHRUMODE가 SHARED AUTOCOMMIT입니다. ...
밍키
2001.09.12 00:24
0
COMMENTS
/
0
LIKES
스크린상에 그려진 선들을 지우는 함수 혹시...(초짜)
초보자..
•
2001.09.12 00:22
3
COMMENTS
/
0
LIKES
String을 자~알 자르고 싶어여.
1|2|3|4|5|1|2|3|4|5|... 이런식으로 나열된 스트링이 있습니다. 근데 이것을 1|2|3|4|5 1|2|3|4|5 이런식으로 잘라내고 싶습니다. 무슨 방법이 없을까여? Pos를 써봤는데 글자 하나하나 짤려서ㅣ ^^;;; 답변 부탁드립니다 ^^;;;;
흐미...
•
2001.09.13 01:03
초보자.. wrote: > 1|2|3|4|5|1|2|3|4|5|... > 이런식으로 나열된 스트링이 있습니다. > 근데 이것을 ...
정성훈
•
2001.09.12 00:45
초보자.. wrote: > 1|2|3|4|5|1|2|3|4|5|... > 이런식으로 나열된 스트링이 있습니다. > 근데 이것을 ...
초보자..
•
2001.09.12 01:11
답변감사드립니다 ^^ 님이 얘기하신 방법은 나열되있는 값이 완전히 규칙적이어야 할때 쓰는 방법인거 같...
박진우
•
2001.09.12 00:16
1
COMMENTS
/
0
LIKES
이렇게 쿼리로 join 하려면 어떻게 하나요?
정성훈
•
2001.09.12 00:56
박진우 wrote: > 안녕하세요..... 델파이 초보자입니다. > > 쿼리로 조인하려는데요.... 데이타는 일반...
궁금이
2001.09.12 00:13
0
COMMENTS
/
0
LIKES
파라독스를 sam 파일로 변환 어떻게 해요 ??
aparadin
2001.09.11 23:37
0
COMMENTS
/
0
LIKES
vcl질문) 이미지출력은 꼭 퀵레포트를 사용해야하나요?
훈이
2001.09.11 22:53
0
COMMENTS
/
0
LIKES
Thread 종료할때.....
나구
2001.09.11 21:44
0
COMMENTS
/
0
LIKES
다시한번 부탁드립니다. TeeChart 관련
스파토이
2001.09.11 22:17
0
COMMENTS
/
0
LIKES
마이다스의 Add to Interface...
델초보
•
2001.09.11 22:18
1
COMMENTS
/
0
LIKES
★★★★"not in cached update mode" error
정성훈
•
2001.09.11 23:41
델초보 wrote: > Query.Fieldbyname('aaa').Oldvalue를 사용하니 > "not in cached update mode" error...
델초보
•
2001.09.11 20:47
1
COMMENTS
/
0
LIKES
디비그리드에서 최초 쿼리된 값?
스파토이
•
2001.09.11 20:51
Query1.FieldByName('aaa').OldValue 델초보 wrote: > 디비그리드에 쿼리된 값이 들어온 이후 변경사...
연오랑
•
2001.09.11 20:38
2
COMMENTS
/
0
LIKES
스피드버튼과 팝업에 관한 질문
스파토이
•
2001.09.11 20:49
저는 이렇게 사용합니다. procedure TForm1.SpeedButton10Click(Sender: TObject); begin PopupMenu...
연오랑
•
2001.09.11 20:54
이건 정적생성 스피드 버튼이구요.. 전 폼이 생성될때 다른 파일에서 정보를 읽어와 스피드 버튼을 ...
연오랑
•
2001.09.11 20:40
1
COMMENTS
/
0
LIKES
툴바에 Bevel을 올렸는데..
홍성락
•
2001.09.12 02:08
연오랑 wrote: > 툴바에 space속성의 Bevel을 올렸는데 > > 가운데 구분자 같은것이 생깁니다.. > >...
아줌마
•
2001.09.11 20:30
1
COMMENTS
/
0
LIKES
Delphi-Paradox, VB-?
^-_-^
•
2001.09.12 01:09
yo` 비베는 엑세스 디비를 주로 사용할겁니다. (지네꺼 사용하게져..-,.-) 물론 델파이에서 엑세스 ...
초록물괴기
•
2001.09.11 20:30
1
COMMENTS
/
0
LIKES
디비그리드에서 순번매기기..
스파토이
•
2001.09.11 20:44
먼저, Calculated 필드(aaa)를 추가 하시고요. procedure TForm1.Table1CalcFields(DataSet: TDataSet...
정이
2001.09.11 20:04
0
COMMENTS
/
0
LIKES
도와주세요..
초보자..
2001/09/12 00:22
Views
231
Likes
0
Comments
3
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 1|2|3|4|5|1|2|3|4|5|...
> 이런식으로 나열된 스트링이 있습니다.
> 근데 이것을
> 1|2|3|4|5
> 1|2|3|4|5
> 이런식으로 잘라내고 싶습니다.
> 무슨 방법이 없을까여?
> Pos를 써봤는데 글자 하나하나 짤려서ㅣ ^^;;;
> 답변 부탁드립니다 ^^;;;;
>
무식하게 한번 만들어봤습니다.
procedure TForm1.Button1Click(Sender: TObject);
var vs_Temp, vs_Result: String;
vi_Loop,i, vi_Mid, vi_End, vi_Cnt, vi_Cnt5, vi_Temp : Integer;
begin
vs_Temp := '1|28806003000292|1000|1000|739|1|8806011010067|1000|500|739|00|0001|002|003|1|2|3|4|5|1|2|3|4|5|100|200|200|300|400|500|100|';
Edit1.Text := vs_Temp;
vi_Loop := 0;
vi_Mid := 1;
vi_Cnt := 0;
vi_Cnt5 := 0;
vi_Temp := 0;
Memo1.Lines.Clear;
//먼저 해당스트링의 '|'을 포함갯수를 구합니다.
for i:=1 to length(vs_Temp) do
begin
if copy(vs_Temp,i,1) = '|' then
vi_Cnt := vi_Cnt+1;
end;
//예상되는 라인수를 구하고,
vi_Temp := vi_Cnt div 5;
//글자수만큼 루프를돌립니다.
for i:=1 to length(vs_Temp) -1 do
begin
if copy(vs_Temp,i,1) = '|' then
begin
vi_Loop := vi_Loop +1;
//'|'의 갯수가 5개일때에 할 작업입니다.
if vi_Loop mod 5 = 0 then
begin
// '|'의총갯수 가 5로나눈 나머지값을 위한변수입니다.
vi_Cnt5 := vi_Cnt5+1;
//첫라인의경우
if vi_Cnt5 = 1 then
begin
vi_Mid := 1;
vi_End := i;
Memo1.Lines.Add(copy(vs_Temp, vi_Mid, vi_End));
vi_Mid := vi_End+1;
end;
//두번째이상의 라인일경우
if vi_Cnt5 > 1 then
begin
vi_End := i - vi_Mid +1;
Memo1.Lines.Add(copy(vs_Temp, vi_Mid, vi_End));
vi_Mid := vi_Mid + vi_End;
//마지막의경우 나머지 스트링을 처리
if (vi_Cnt5 = vi_Temp ) then
Memo1.Lines.Add(copy(vs_Temp, i+1, Length(vs_Temp) - i));
end;
end;
end;
end;
end;
무지막지해서 지송함다...