次の.\input.txt
ようなファイルがあります。
aaa
bbb
ccc
を使用TStrings.LoadFromFile
してそれを読み取り、それを(変更を適用せずに)を使用して書き戻すTStrings.SaveToFile
と、出力ファイルの最後に空の行が作成されます。
var
Lines : TStrings;
begin
Lines := TStringList.Create;
try
Lines.LoadFromFile('.\input.txt');
//...
Lines.SaveToFile('.\output.txt');
finally
Lines.Free;
end;
end;
同じ動作がTStrings.Text
、最後に空行を含む文字列を返すプロパティを使用して観察できます。
ファイルに変更が適用されていないのに、いったいなぜそれを書き戻したいのでしょうか。なぜそれを単に読むだけではないのですか?
—
ビラルアーメド
@BilalAhmed:確かに、これは簡略化されたテストです。文字列リストに変更を適用すると、同じ空の行が表示されます
—
Fabrizio
「空の行を作成する」とは、元のファイルが
—
ジャコモAlzetta
\n
文字で終わっておらず、関数が\n
ファイルに追加することを意味していると思いますか?または、関数は文字列の末尾に\n
存在する文字の直後に文字通り右を追加し\n
ますか?POSIXでは、テキストファイルのすべての行を\n
、fyiで終了させる必要があります。ソフトウェアの多くの編集者の多くは終了不足しているが追加されます理由ですので、いくつかの基準に従うために書かれた\n
あなたは、デフォルトでファイルを保存する場合(例えばvim
、デフォルトでのIDEなど、すべてのPOSIX準拠のファイルを作成します。)