델파이를 공부하는 사람인데요.
파일제어에 대해서 질문이 있어서 글을 올립니다.
제가 만든 파일에는 userID, 이름으로 각 라인에 들어가는데
구분자는 , 입니다.
(텍스트 파일입니다.)
어떤 변수의 값(그 변수에는 userID가 들어갑니다)과
파일의 각 라인에서 구분자 앞의 내용(userID)이 일치하는 라인을
삭제하고 하위 라인을 한칸씩 올리는 법을 구현해야 되는데요 잘 안되네요.
즉, 일치하는 라인을 삭제하고 그 밑의 라인을 한칸씩 올려야 빈 라인이 없을텐데..
고수님들의 도움을 바랍니다.
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)이 일치하는 라인을
> 삭제하고 하위 라인을 한칸씩 올리는 법을 구현해야 되는데요 잘 안되네요.
> 즉, 일치하는 라인을 삭제하고 그 밑의 라인을 한칸씩 올려야 빈 라인이 없을텐데..
> 고수님들의 도움을 바랍니다.
>