Ver Mensaje Individual
  #1  
Antiguo 10-03-2009
Avatar de totote
totote totote is offline
Miembro
 
Registrado: oct 2006
Posts: 150
Reputación: 18
totote Va por buen camino
Question Catidad de Filas de un archivo

Hola gente del foro, estoy realizando una aplicación la cual toma cierta información de un archivo csv, y tengo que ingresarla a un TStringGrid la cantidad de columnas las conozco pero la cantidad de filas, para leer la información lo hago como archivo de texto normal, lo que quisiera saber es si hay alguna forma de conocer la cantidad de filas que tiene el archivo para así mostrar con un TProgressBar el progreso de la carga.

Este es el código que utilizo para cargar el archivo:

Código Delphi [-]
function CsvToStringGrid(AGrid: TStringGrid; ACSVFile: String): Boolean;
var
  Archivo: TextFile;
  i,j,Columnas: integer;
  aux,aux2: String;
  p: TfrmProgress;
begin
  AssignFile(Archivo,ACSVFile);
  Reset(Archivo);
  Readln(Archivo,aux);
  Columnas:= ContarColumnas(aux);
  AGrid.ColCount:= Columnas;
  p:= TfrmProgress.Create(nil);
  p.pbPrincipal.Min:= 0;
//  p.pbPrincipal.Max:= {?};
  for i := 1 to Columnas - 1 do
    AGrid.Cells[i,0]:= GetColumna(i); // Función que devuelve el título de la columna
  j:= 1;
//  p.Show;
  while (not Eof(Archivo)) and (p.Seguir = True) do // P.Seguir es una variable tipo Boolean que cambia su estádo Con un botón Cancelar
  begin
    i:= 1;
    AGrid.Cells[0,j]:= IntToStr(j);
    while Pos(';',aux) > 0 do
    begin
      aux2:= Copy(aux,1,Pos(';',aux)-1);
      AGrid.Cells[i,j]:= aux2;
      Delete(aux,1,Pos(';',aux));
      i:= i + 1;
    end;
    Readln(Archivo,aux);
    j:= j + 1;
    AGrid.RowCount:= j + 1;
//    p.pbPrincipal.Position:= {?}; // Mostrar progreso
  end;
  p.Free;
  CloseFile(Archivo);
end;

Saludos.
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS
Responder Con Cita