Q&A

  • 파일의 특정부분만을 수정/삭제....
현재 파일 합치기 프로그램을 맹글다가, 처리속도가 적정 수준에 미치지 몬
하여, 이런 질문을 드리게 되었습니다.

전체적인 파일의 구성이 동일하기 때문에, 파일의 특정부분만을 삭제하구,
나머지 부분만을 합칠려구 합니다.

즉, a + b1 + c
      a + b2 + c
      a + b3 + c
      ............
      ............
      ............
  이런 타입으로 파일들이 구성되어 있기 때문에,

각 파일을 읽어서, 선택부분만을 수정, 복사한 새로운 파일을 생성한후
그 파일들을 합치구 잇습니다..

  a + (b1'+b2'+b3'+.....) + c  이런 식으로 하구 잇습니다.

파일의 자체 크기가 보통 8천라인 이상이구, 파일 각각의 크기는 다름니다.
그래서, 특정라인을 찾아야 하구, 특정라인에서 일부 수정하여야 하는 문
제도 잇습니다.

현재, ReadLn으로 각 라인을 체크, 특정라인일 경우, 그 부분을 수정하구,
다음 특정라인까지 복사하는 방식을 채택하엿습니다.. 이후, 수정된 파일
들을 하나루 합치는 걸루 마무리를 지었습니다.

파일 자체에서
특정 라인까지를 삭제,
특정 라인을 수정 할수 잇는 방법이 없을까요...?

모든 라인을 다 읽어서 라인별 체크하는것이 아니라,
특정 라인가지를 삭제, 해당 라인을 수정하여, 그 파일을
그대로 합치는 방법 말이죠...

이 문제에 대해 가르침을 받고저 합니다..

고수님들의 답변 기달림다.....^.^

그럼, 모든분들 .....즐프하세엽...^^
1  COMMENTS
  • Profile
    최용일 2002.02.19 03:23
    안녕하세요. 최용일입니다.

    문자열로만된 텍스트 파일이라면 TStringList를 사용하시면 간단히 될거같군요...

    파일을 가지고 직접작업하시는 것보다 수정,삭제, 추가 등이 쉽습니다...

    Delete, Add, Insert등의 메소드를 지원하거든요...

    var
        StrList: TStringList;
        I: Integer;
    begin
        StrList := TStringList.Create;
        StrList.LoadFromFile(파일명...);
        for I := 0 to 99 do
            StrList.Delete(100); // 101번째라인부터 100라인 제거
        ......
    end;

    ^^ 항상 즐코하세요...