Delphi Pascal - как записать данные в файл размером более 2 ГБ?

Я создал инструмент в Delphi для создания радужной таблицы. Это было нормально, пока размер файла не увеличился до 3,1 ГБ. Я закрыл свою программу Затем я открыл его снова, и он вылетел при выполнении этого кода:

Assign(RainbowFile,'Rainbow_table.txt'); {assign a text file}
Append(RainbowFile);

Delphi показывает ошибку «поднял класс ожидания EInOutError с сообщением« Ошибка ввода-вывода 131 ». Мой вопрос: как добавить данные в существующий файл размером более 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));

Как избавиться от переменной Content_to_file. Я хочу поместить его прямо в WriteBuffer, если это возможно.

РЕДАКТИРОВАТЬ:

TFileStream работает с файлами размером более 2 ГБ. Протестировал сейчас. Однако можно ли написать так:

RainbowFile_handle.WriteBuffer( Start_string[1]+':', 

Я имею в виду не передавать аргумент переменной. Или мне обязательно нужно передать первый символ переменной?

РЕДАКТИРОВАТЬ 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));

Можно ли сделать это без этой переменной?

15
задан thkala 10 December 2011 в 02:10
поделиться