私は虹のテーブルを作成するためのツールをDelphiで作った。ファイルが3.1GBになるまでは問題ありませんでした。私はプログラムを閉じた。その後、私は再びそれを開くと、このコードを実行しながら、それがクラッシュ:Delphi Pascal - 2 GBを超えるファイルにデータを書き込む方法は?
Assign(RainbowFile,'Rainbow_table.txt'); {assign a text file}
Append(RainbowFile);
デルファイは、メッセージ 『I/Oエラー131』でエラー「上げexpectionクラスEInOutErrorを示し 私の質問:どのように大きな既存のファイルにデータを追加するために。2ギガバイト //廃止 次の質問より: 私は現在のコードがあります。Content_to_file変数を取り除くためにどのように
Content_to_file := (#13+#10+Start_string+':'+hexstr(GTA_San_Andreas_CRC32(Start_string), 8));
RainbowFile_handle.WriteBuffer(Content_to_file[1], Length(Content_to_file)*SizeOf(Char));
を、私はそれ `sが可能な場合はWriteBufferメソッドに直接それを入れたい
。編集:
TFileStreamは2 GBを超えるファイルで動作します。私は今それをテストしました。 しかし、それはそう書くことが可能である:
RainbowFile_handle.WriteBuffer(Start_string[1]+':',
は、私は、変数引数を渡していないことを意味。または、私は間違いなく変数の最初の文字を渡したのですか?
EDIT 2:
私は現在、それをこのように作られています
Content_to_file := (#13+#10+Start_string+':'+hexstr(GTA_San_Andreas_CRC32(Start_string), 8));
RainbowFile_handle.WriteBuffer(Content_to_file[1], Length(Content_to_file)*SizeOf(Char));
は、この変数なしでそれを行うことが可能ですか?
ファイルシステムは2GBを超えるファイルをサポートしていますか? – Satya
はい、そうです。私はWindows XP 32ビットを持っています。現在、ファイルはNTFSパーティション上に3.1 GBです。問題は私のパスカルコードです。 – fastman92