Q&A

  • file 처리에 관하여... 꼭 답변 부탁 드립니다.
안녕하십니까...?
허접 눈이큰아이가 또다시 염치 불구하고 질문을 드리게 되었습니다.
다름이 아니라 file읽기에 관한것인데..
txt파일을 읽다가 원하는 값이 있는라인까지 읽는 것은 문제없이
잘 소화하구 그렇게 해서 프로그램을 만들었습니다.
그런데 문제는 원하는 값이 있는 라인을 기준으로
다시 읽은 라인인중 값이 있는라인의 수를 알아내야 하는것이 문제 입니다.
Ex)

123, ,12,124,123456,1, ,........
123, ,12,234,123456,1, ,........
123, ,12, ,123456,1, ,........
123, ,12,34,123456,1, ,........
123, ,12, ,123456,1, ,........
123, ,12, ,123456,1, ,........
123,30,12, ,123456,1, ,........
123, ,12, ,123456,1, ,........
123, ,12, ,123456,1, ,........
123, ,12, ,123456,1, ,........
123, ,12,1234,123456,1, ,........
.
.
이러한 파일을 읽을시 기준하는 값이 123, ,12,1234,123456,1, ,........이고 이
라인을 기준으로 다시 123,30,12, ,123456,1, ,........의 라인의 수를 알아내야 합니다. 즉 두번째 값인 30이 있는 라인을 알아내야합니다.

처음부터 다시 30이 있는 라인을 찾을려구 했지만 같은 자리에 30이라는 값이 있는
라인이 여러개여서 문제가 난감합니다. 4번째 자리인 1234를 기준으로 해서 위로 30이 있는 라인의 라인수를 알아 낼수 있는 방법이 있는지 고수님들의 조언 부탁 드립니다.

너무 두서없이 쓴것 같아 죄송의 말을 아울러 전합니다.
1  COMMENTS
  • Profile
    연기훈 2003.08.20 05:15
    간단하져..

    var
      iCnt : integer;
      bFlag : boolean

    begin

    bFlag := False;
    iCnt   := 0;


    while Not bFlag do begin
         if 시작하는 라인 then bFlag := True;

        파일  라인 읽기    
    end;

    while bFlag do begin
        if 찾고자 하는 라인 then bFlag := False;

        파일 라인 읽기

        inc(iCnt);
    end;

    edit1.text := inttostr(icnt);