掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
テキストファイル、末尾の改行を取り除く方法 (ID:43748)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
take様、ありがとうございます。 ちょっとかっこ悪いソースなのですが、 var fs : TFileStream; S : String; b1,b2: Byte; begin S := Edit1.Text; fs := TFileStream.Create(S,fmOpenReadWrite); try if fs.Size >= 2 then begin fs.Seek(fs.Size-2,soBeginning); fs.Read(b1, SizeOf(b1)); fs.Seek(fs.Size-1,soBeginning); fs.Read(b2, SizeOf(b2)); if (b1 = $0D) AND (b2 = $0A) then fs.size := fs.size - 2; // 末尾2バイトを破棄 end; finally fs.free; end; end; で約600MB位のファイルの最後が改行の場合、破棄する事が出来ました。 しかし1000MB位以上のファイルの場合、最後に改行があっても取得した文字 は$0d$0aを取得してくれず、違う文字を取得しているようです。 seek を fs.Position := fs.Size -2; にしても同様に違う文字が取得されます。 何かオーバーフローとか、間違いを起こしているのでしょうか。 気づいた所がありましたら、教えて頂けますか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.