Q&A

  • 기존 문자열에 개행(엔터값)추가 에 관한 질문입니다.
<!--CodeS-->
text:= '가나다라 나다사 아자차 카타파 하하';
lists[0]:='가나다라';
lists[1]:='아자차';
lists[2]:='나다사';


i:=0;
while(i<4)do
    begin
    //text에서 lists가 있으면 엔터 추가
    res_copy[i]:=StringReplace(text, lists[i], #13#10+lists[i], [rfReplaceAll, rfIgnoreCase]);

    //메모필드에 뿌림
     Memo1.Lines.Strings[i]:= res_copy[i];
    temp[i]:=res_copy[i];

    //메모필드에 뿌려진 길이
    rst_length:=length(Memo1.Lines.Strings[i]);
    //메모필드에 뿌려진 다음부터 text끝까지 길이
    text:=copy(text,rst_length,all_length);
    //텍스트길이
    all_length := length(text);
    inc(i);
    end;
   end;
<!--CodeE-->


이런식으로 구성을 하였습니다.

제가 원하는 결과는

가나다라
나다사
아자차 카타파 하하
인데


결과는
가나다라 나다사
아자차 카타파 하하
이렇게 나오네요.


어떻게 하면 원하는 결과대로 출력할 수 있을까요?

조언좀 부탁드릴께요.
1  COMMENTS
  • Profile
    조규춘 2010.02.03 13:58
    지금 저두 해봤는데.

    ===============
    가나다라
    나다사
    아자차 카타파 하하
    ===============

    나오더군요..

    좋은 하루 되세요

    <!--CodeS-->

    begin
    text:= '가나다라 나다사 아자차 카타파 하하';
    lists[0]:='가나다라';
    lists[1]:='아자차';
    lists[2]:='나다사';

    i:=0;
    while( i<4 ) do
    begin
    foundPos:= 0;
    foundPos := pos(lists[i], text);
    if foundPos > 1 then
    begin
    Insert(#13#10, text, foundPos);
    end;
    inc(i);
    end;
    Memo1.Lines.Text := text;
    end;
    <!--CodeE-->