ユーザー情報が1行ずつ保存されたテキストファイルがあります。各行の形式は次のとおりです。UserID#UserEmail#UserPassword
「#」が区切り文字です。
私はこのコーディングを使用してタスクを実行しようとしました:
var sl:TStringList;
begin
sl:=TStringList.Create;
sl.LoadFromFile('filename');
sl.Delete(Index);
sl.SaveToFile('filename');
sl.free;
end;
しかし、「インデックス」スペースに何を入れるべきかわかりません。
ユーザーIDを入力として受け取り、このユーザーIDが含まれているテキストファイルからテキスト行を削除する方法はありますか?どんな助けでもいただければ幸いです。
あなたは、設定することができますNameValueSeparator
し#
、ユーザー名は、ファイルの最初の値がある限り、そのユーザーを見つけることIndexOfNameを使用しています。
sl.NameValueSeparator := '#';
Index := sl.IndexOfName('455115')
だからあなたの例では、そのように
var sl:TStringList;
begin
sl:=TStringList.Create;
sl.LoadFromFile('filename');
sl.NameValueSeparator := '#';
Index := sl.IndexOfName('455115')
if (Index <> -1) then
begin
sl.Delete(Index);
sl.SaveToFile('filename');
end;
sl.free;
end;
IndexOfNameがTStringListの各行をループし、一致するものが見つかるまで各文字列を順番にチェックするため、大きなファイルではこれが遅くなる可能性があります。
免責事項:Delphi 2007でテスト済み/動作しますが、Delphi7は異なる場合があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加