I made a tool in Delphi to create a rainbow table. It was fine until the file grew up to 3.1 GB. I closed my program. Then I opened it again and it crashes while executing this code:
Assign(RainbowFile,'Rainbow_table.txt'); {assign a text file}
Append(RainbowFile);
Delphi shows the error
raised exception class EInOutError with message 'I/O error 131'.
My question: how do to append data to an existing file larger than 2 GB. [Obsolete]
Next question: Currently I have in my code:
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));
How do you get rid of the Content_to_file variable? I want put it directly to the WriteBuffer if it’s possible.
1st edit
TFileStream works with files bigger than 2 GB. I tested it now.
However is it possible to write like so:
RainbowFile_handle.WriteBuffer( Start_string[1]+':',
I mean to pass no variable argument. Or do I definitely have to pass the first char of a variable?
2nd edit I have currently made it work this way:
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));
Is it possible to do it without this variable?