Q&A

  • 한줄읽어서 내가원하는 글자만 빼기...
$$송강호(song)$$

요기서



송강호

song

요렇게 쪼개기...



그리고 또



$$송강호$$한석규$$조성민$$이훈$$

송강호

한석규

조성민

이훈

이렇게 쪼개기...



부탁합니다.제가 이런걸 안해봐서...도저히로직이안나와요..몇주를 봤는데도..

두개중에 하나만이라도...부탁



















4  COMMENTS
  • Profile
    이광형 2000.10.13 00:13
    함수 하나를 보내 드립니다. 도움이 될지 모르겠네요.

    델파이 2.0때 제 싸부가 작성한 건데요... 요긴하게 쓰고 있죠...

    질문의 내용을 보니까 $$ 로 딜리미터가 될 수 있을것 같네요...



    ParseString('송강호$$한석규$$조성민$$이훈','$$',1) => 송강호

    ParseString('송강호$$한석규$$조성민$$이훈','$$',2) => 한석규

    가 되구요



    ParseString('$$송강호(song)$$','$$',2) =>송강호(song)

    ParseString(ParseString('$$송강호(song)$$','$$',2),'(',1) => 송강호



    ParseString('$$송강호(song)$$','(',2) => song)$$

    ParseString(ParseString('$$송강호(song)$$','(',2),')',1) => song



    를 반환 합니다.

    딜디미터를 이용하여 분할하는데 사용하시면 편리하게 사용하실 수 있습니다.



    function ParseString(const s, delimiters: String; num: Word): String;

    var

    j,

    sLength,

    sStart,

    sEnd: Word;

    begin

    sStart := 1;

    if ParseCount(s, delimiters) >= num then

    begin

    while (Pos(s[sStart], delimiters) <> 0) and

    (sStart <= Length(s)) do Inc(sStart);

    for j := 1 to num - 1 do

    begin

    while Pos(s[sStart], delimiters) = 0 do Inc(sStart);

    while Pos(s[sStart], delimiters) <> 0 do Inc(sStart);

    end;

    sEnd := sStart;

    while (Pos(s[sEnd], delimiters) = 0) and (sEnd <= Length(s)) do Inc(sEnd);

    sLength := sEnd - sStart;

    ParseString := copy(s, sStart, sLength);

    end

    else

    ParseString := '';

    end;









    토토 wrote:

    > $$송강호(song)$$

    > 요기서

    >

    > 송강호

    > song

    > 요렇게 쪼개기...

    >

    > 그리고 또

    >

    > $$송강호$$한석규$$조성민$$이훈$$

    > 송강호

    > 한석규

    > 조성민

    > 이훈

    > 이렇게 쪼개기...

    >

    > 부탁합니다.제가 이런걸 안해봐서...도저히로직이안나와요..몇주를 봤는데도..

    > 두개중에 하나만이라도...부탁

    >

    >

    >

    >

    >

    >

    >

    >

    >

  • Profile
    토토 2000.10.13 00:56
    parsecount가 뭐죠.....선언언해줬다고 나오는데요....

    그리고 감사합니다.

    답변 주셔서....

  • Profile
    태여니 2000.10.13 00:08
    토토 wrote:

    > $$송강호(song)$$

    > 요기서

    >

    > 송강호

    > song

    > 요렇게 쪼개기...

    >

    > 그리고 또

    >

    > $$송강호$$한석규$$조성민$$이훈$$

    > 송강호

    > 한석규

    > 조성민

    > 이훈

    > 이렇게 쪼개기...

    >

    > 부탁합니다.제가 이런걸 안해봐서...도저히로직이안나와요..몇주를 봤는데도..

    > 두개중에 하나만이라도...부탁



    Repeat

    strText := '$$송강호$$한석규$$조성민$$이훈$$'

    intPos := Pos('$$',strText);

    Delete(strText,1,intPos+1);

    strResult := Copy(strText,1,intPos);

    Until Copy(strText,1,intPos+1) <> '$$';



    이렇게 하면요

    strResult 에 송강호,한석규, 조성민, 이훈 이

    차례대로 찍히겠죠...



    저도 안 돌려봐서 모르겠는데요..

    아마 intPos에서 더하기 1, 아님 빼기 1 암튼

    요령것 하시면 될겁니다.

    저도 초자라 전에 답변해 주신분의 소스가 넘 어려워서리....

    염치없게 제가 써 봤습니다.



    >

    >

    >

    >

    >

    >

    >

    >

    >

  • Profile
    김정 2000.10.12 21:59
    안녕하세요?

    고드름 김정입니다.



    질문하신 것중에 두번째 것을 만들어 봤습니다.

    참고하세요.

    그럼.



    var

    myStr, subStr : string;

    myStrList : TStringList;



    procedure ParseStr( fullStr, devStr : string; strList : TStringList );

    var

    tempSTR : string;

    devLen, nIndex : integer;

    begin

    devLen := Length(devSTR);

    nIndex := pos( devSTR, fullStr );

    if (nIndex=1) then fullStr := Copy(fullStr,devLen+1,Length(fullStr)+1-devLen);

    repeat

    nIndex := pos( DevSTR, fullStr );

    if (nIndex>0) then

    begin

    tempSTR := copy(fullStr,1,nIndex-1);

    StrList.Add( tempSTR );

    fullStr := copy(fullStr,nIndex+devLen,Length(fullStr)-nIndex+1-DevLen);

    end

    (* 만약 마지막의 $$가 없을 수 있다면 이부분을 주석에서 살려놓으면 됩니다. (수정함)

    else if (fullStr<>'') then

    begin

    StrList.Add( fullStr );

    end

    *)

    ;

    until (nIndex=0);

    end;



    begin

    mySTR := '$$송강호$$한석규$$조성민$$이훈$$';

    subSTR := '$$';

    myStrList := TStringList.Create;

    myStrList.Clear;

    ParseStr( myStr, subStr, myStrList );

    ShowMessage( myStrList.Text );

    myStrList.Free;

    end;





    토토 wrote:

    > $$송강호(song)$$

    > 요기서

    >

    > 송강호

    > song

    > 요렇게 쪼개기...

    >

    > 그리고 또

    >

    > $$송강호$$한석규$$조성민$$이훈$$

    > 송강호

    > 한석규

    > 조성민

    > 이훈

    > 이렇게 쪼개기...

    >

    > 부탁합니다.제가 이런걸 안해봐서...도저히로직이안나와요..몇주를 봤는데도..

    > 두개중에 하나만이라도...부탁

    >

    >

    >

    >

    >

    >

    >

    >

    >