Q&A

  • 파일에서 원하는 라인의 삭제는요??
델파이를 공부하는 사람인데요.

파일제어에 대해서 질문이 있어서 글을 올립니다.

제가 만든 파일에는 userID, 이름으로 각 라인에 들어가는데

구분자는 , 입니다.

(텍스트 파일입니다.)

어떤 변수의 값(그 변수에는 userID가 들어갑니다)과

파일의 각 라인에서 구분자 앞의 내용(userID)이 일치하는 라인을

삭제하고 하위 라인을 한칸씩 올리는 법을 구현해야 되는데요 잘 안되네요.

즉, 일치하는 라인을 삭제하고 그 밑의 라인을 한칸씩 올려야 빈 라인이 없을텐데..

고수님들의 도움을 바랍니다.



1  COMMENTS
  • Profile
    여영식 2000.01.12 19:26
    간단한 방법으로 다음과 같이 사용해 보세요. (시험해 보진 않았습니다. 아이디어 입니다.)

    var

    Data: TStringList;

    begin

    Data := TStringList.Create;

    Data.LoadFromFile('c:dataaaa.txt');

    for i := Data.Count - 1 downto 0 do

    begin

    if Pos('userid,', Data.Strings[i]) = 1 then

    Data.Delete(i);

    end;

    Data.SaveToFile('c:dataaaa.txt');

    Data.Free;

    end;

    모 이런식으로 하면 되지 않을 까요? 이때 주의할 점은 for 문에서 downto 를 사용해야

    하는것입니다. 왜냐하면 항목이 삭제되는 시점에서 인덱스가 변하기 때문에 to를 사용하면

    안됩니다. 도움이 되시기를...





    델초 wrote:

    > 델파이를 공부하는 사람인데요.

    > 파일제어에 대해서 질문이 있어서 글을 올립니다.

    > 제가 만든 파일에는 userID, 이름으로 각 라인에 들어가는데

    > 구분자는 , 입니다.

    > (텍스트 파일입니다.)

    > 어떤 변수의 값(그 변수에는 userID가 들어갑니다)과

    > 파일의 각 라인에서 구분자 앞의 내용(userID)이 일치하는 라인을

    > 삭제하고 하위 라인을 한칸씩 올리는 법을 구현해야 되는데요 잘 안되네요.

    > 즉, 일치하는 라인을 삭제하고 그 밑의 라인을 한칸씩 올려야 빈 라인이 없을텐데..

    > 고수님들의 도움을 바랍니다.

    >