Delphi - Cargar archivo a StringGrid

 
Vista:

Cargar archivo a StringGrid

Publicado por Diego (85 intervenciones) el 15/02/2003 15:22:24
¿Cómo puedo cargar en un StringGrid el contenido de un archivo de texto?
Recuerdo que en VB era fácil, porque se separaban los campos con un vbTab, por lo que se cargaba fila por fila pero aparentemente eso no funciona en Delphi. ¿Alguna sugerencia?

Gracias
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:Cargar archivo a StringGrid

Publicado por Ernesto D'Spirito (706 intervenciones) el 17/02/2003 09:22:00
Hay varias formas de hacerlo. Una sería cargando el archivo en un StringList y luego asignando las filas del StringGrid con la propiedad CommaText, así:

procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
begin
with TStringList.Create do
try
LoadFromFile('Table1.txt');
StringGrid1.RowCount := Count + 1;
for i := 1 to Count do
StringGrid1.Rows[i].CommaText := IntToStr(i) + ',' + Strings[i-1];
finally
Free;
end;
end;

En el ejemplo asumí que hay una fila de encabezado, y que la primer columna se numera correlativamente, pero puedes variar el código como gustes.

Otra alternativa sería abrir el archivo de texto como si fuera una tabla de una base de datos con un componente Table, y entonces directamente podrás usar un DbGrid en vez de un StringGrid.

Siguiendo este enlace encontrarás el Boletín Pascal #27, donde publiqué el truco "Abriendo archivos de datos separados por comas" que explica como hacer eso:

http://www.latiumsoftware.com/es/pascal/0027.php

En el ejemplo que se adjunta al boletín, en el archivo Table1.sch sustituye la coma en el elemento SEPARATOR por una tabulación, y en el archivo Table1.txt sustituye todas las comas por tabulaciones, y voilà!

Espero que te sea de utilidad.

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