Delphi - Pasar datos de un StringGrid a un fichero

 
Vista:

Pasar datos de un StringGrid a un fichero

Publicado por Alex Balcells (4 intervenciones) el 16/03/2003 18:41:48
Hola a todos: mi pregunta es sencilla: ¿como escribo en un fichero el contenido de un stringgrid a un fichero?¿Hay algun procedimiento directo?¿si no, como demonios se utiliza el procedimiento WRITE? Ya se que puede parecer una pregunta tonta pero os aseguro que llevo dias enganchado. Muchas gracias por vuestro tiempo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pasar datos de un StringGrid a un fichero

Publicado por Diego Romero (636 intervenciones) el 16/03/2003 23:52:21
Para escribir en un archivo simple usando Write primero debes declarar el tipo de registro a escribir y un archivo lógico de ese registro, ejemplo:
type
TRegArchivo=record
Campo1: integer;
Campo2: string[30];
Campo3: word;
end;
TFileOfReg=file of TRegArchivo;
...
var
Reg: TRegArchivo;
F: TFileOfReg;
...
AssignFile(F,'Archivo.dat'); // Asigna un nombre físico al archivo lógico
{$i-} // Apaga control de errores de IO
reset(F); // Abre el archivo
{$i+} // Enciende control de errores de IO
if IOResult <> 0 then // si no se pudo arir el archivo, ej: el archivo no existe
rewrite(F); // crea el archivo
write(F, Reg); // Escribe el registro Reg en F (previamente los campos de reg deben llenarse)
CloseFile(F); // Cierra el archivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pasar datos de un StringGrid a un fichero

Publicado por Ernesto D'Spirito (706 intervenciones) el 17/03/2003 08:10:06
No hay un procedimiento directo para guardar un StringGrid en un archivo, pero puedes usar este código para crear un archivo SDF:

procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
s : string;
begin
with TFileStream.Create('C:\TEMP\archivo.txt', fmCreate) do
try
for i := 0 to StringGrid1.RowCount - 1 do
begin
s := StringGrid1.Rows[i].CommaText + #13#10;
Write((@s[1])^, Length(s));
end;
finally
Free;
end;
end;

Espero que te sirva.

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar