Q&A

  • 문자열검색
안녕하세요.

또 이렇게 도움을 청하러 왔습니다.

지금 델 공부를 하면서 텍스트 파일에서 문자열을 검색하여 텍스트그리드에 나타내는 프로그램을 만들고 있는데 잘 안풀리는 부분이 있답니다. 지도 부탁드려요. ^^



예) 텍스트파일의 내용: 첫줄 - 동해물과 백두산이 마르고 닳도록

두줄 - 동해물과 한라산이 마르고 닳도록

세줄 - 동해물과 지리산이 마르고 닳도록

네줄 - 동해물과 앞동산이 마르고 닳도록



검색단어를 "동해 라산이"라고 넣었습니다.

그러면 두번째줄의 내용이 텍스트그리드에 나타나게 하려합니다.



mydata[0] := '동해';

mydata[1] := '라산이';



위 처럼 검색단어를 각각 변수에 저장하는 것은 성공을 했는데,

두 단어가 동시에 들어가는 라인을 찾으려면 어떻게 해야 하는지 너무 궁금합니다.



부탁드립니다. 게시판을 뒤져봤는데 이런 내용은 없는것 같아 이렇게 글을 올려요.

1  COMMENTS
  • Profile
    임형호 2001.01.15 03:41
    해당 문자열에서 문자열이 존재하는지를 찾는 함수가 Pos 함수입니다.

    해당문자열이 존재할 경우에는 리턴값으로 위치값을 넘겨주고, 못찾으면 0을 넘깁니다.

    그러니까...

    if (pos(mydata(0),'전체문자열')<>0) and (pos(mydata(1),'전체문자열')<>0) then

    showmessage('문자열에 두글자가 모두 들어있습니다.');



    위에서 '전체문자열'이라고 적은부분은 검사할 문자열을 말한겁니다.

    그러니까..님의 경우라면...TextFile에서 불러오는 한줄한줄 입니다.

    TextFile을 전부 불러서 한꺼번에 비교하는 방법이 있는지는 잘 모르겠구요. 암튼..

    좀 무식하지만 한줄한줄 읽어서 비교하는 방법입니다.







    물론 위의것은 text파일의 내용을 한줄씩 불러올때를 가정해서 해보았습니다.

    정확하지는 않지만...text 파일에서 불러온다면...



    while Not(TextFile.Eof) do begin //TextFile에도 Eof 가 맞던가? 기억이 가물가물..

    //textfile을 한줄씩 불러오고

    //위에 적어준 내용대로 검사를 한다음에 해당되면...그줄이이겠죠? ^^;

    end;









    델걸음마 wrote:

    > 안녕하세요.

    > 또 이렇게 도움을 청하러 왔습니다.

    > 지금 델 공부를 하면서 텍스트 파일에서 문자열을 검색하여 텍스트그리드에 나타내는 프로그램을 만들고 있는데 잘 안풀리는 부분이 있답니다. 지도 부탁드려요. ^^

    >

    > 예) 텍스트파일의 내용: 첫줄 - 동해물과 백두산이 마르고 닳도록

    > 두줄 - 동해물과 한라산이 마르고 닳도록

    > 세줄 - 동해물과 지리산이 마르고 닳도록

    > 네줄 - 동해물과 앞동산이 마르고 닳도록

    >

    > 검색단어를 "동해 라산이"라고 넣었습니다.

    > 그러면 두번째줄의 내용이 텍스트그리드에 나타나게 하려합니다.

    >

    > mydata[0] := '동해';

    > mydata[1] := '라산이';

    >

    > 위 처럼 검색단어를 각각 변수에 저장하는 것은 성공을 했는데,

    > 두 단어가 동시에 들어가는 라인을 찾으려면 어떻게 해야 하는지 너무 궁금합니다.

    >

    > 부탁드립니다. 게시판을 뒤져봤는데 이런 내용은 없는것 같아 이렇게 글을 올려요.