Hice una herramienta en Delphi para crear una tabla de arcoíris. Estuvo bien hasta que el archivo creció hasta 3.1 GB. Cerré mi programa. Entonces me abrió de nuevo y se bloquea durante la ejecución de este código:Delphi Pascal: cómo escribir datos en un archivo de más de 2 GB?
Assign(RainbowFile,'Rainbow_table.txt'); {assign a text file}
Append(RainbowFile);
Delphi muestra el error "levantado EInOutError clase expection con el mensaje 'I O error 131 /' Mi pregunta:. Cómo añadir datos al archivo existente grande de 2 GB // obsoleto siguiente pregunta:. tengo Actualmente código:..
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));
¿Cómo deshacerse de la variable Content_to_file quiero ponerlo directamente a la WriteBuffer si `s posible
EDITAR:
TFileStream funciona con archivos de más de 2 GB. Lo probé ahora. Sin embargo es posible escribir así:
RainbowFile_handle.WriteBuffer(Start_string[1]+':',
me refiero a pasar ningún argumento variable. ¿O definitivamente he pasado el primer carácter de la variable?
EDIT 2:
que actualmente he hecho de esta manera:
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));
¿Es posible hacerlo sin esta variable?
¿Su sistema de archivos admite archivos> 2 GB? – Satya
Sí, lo hace. Tengo Windows XP de 32 bits. Actualmente el archivo es de 3.1 GB en mi partición NTFS. El problema es con mi código pascal. – fastman92