Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Thumbs up Saber el Tamano de un Archivo de texto

buenas madrugadas

estoy haciendo un modulo de migracion de datos, el cual captura datos desde un archivo plano (TXT), entonces para hacer mas vistoso el programita le puse un progressbar

ahora viene mi duda.... como se el tamano del archivo de texto para colocarlo en la propiedad MAX del Progress?

cuanto es lo que lee con esta instruccion? para ir avanzando el progress

Código Delphi [-]
 
ReadLn( F, sLinea );

si alguien pudiera iluminarme.. estare agradecido

saludos
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 24-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.073
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por ejemplo: FileSize
Responder Con Cita
  #3  
Antiguo 24-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
esto es lo que estoy haciendo

Código Delphi [-]
procedure TfrmActualizacion.CargarArchivoTexto;
var F: TextFile;
sLinea: String;
_Tamanio : Double;
begin
  AssignFile( F, edtArchivo.Text);
//  _Tamanio := FileSize(f);
  Reset( F );
  while not Eof( F ) do
  begin
    ReadLn( F, sLinea );
  end;
  CloseFile( F );
end;

porque cuando quiero ponerle un break no "para" el programa donde se supone debe parar
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 24-05-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.073
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por oscarac Ver Mensaje
[..]porque cuando quiero ponerle un break no "para" el programa donde se supone debe parar
Explícate, es que todavía no me he tomado el café y estoy algo dormido
Responder Con Cita
  #5  
Antiguo 24-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
pues creo que ya debo dormir son las 2:30 am aqui

gracias ya lo vere mas tarde cuando vaya a la oficina en 5 horas
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #6  
Antiguo 24-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Oscarac.

Al tratarse de un archivo secuencial creo que vas a tener que hacer una lectura previa para contar el número de líneas si querés que la barra se comporte
de forma representativa. La función FileSize devuelve el número de registros de un archivo tipeado. Si el archivo no tiene tipo, como es el caso, toma por defecto un registro de 128 bytes.

Código Delphi [-]
...
function TForm1.NumFileLines(NomArch: string): Integer;
var
  F: TextFile;
begin
  AssignFile(F,NomArch);
  Reset(F);
  Result:= 0;
  while not Eof(F) do
  begin
    Readln(F);
    Inc(Result);
  end;
  CloseFile(F);
end;

procedure TForm1.ProcessFile(NomArch: string);
var
  F: TextFile;
  s: string;
begin
  AssignFile(F,NomArch);
  Reset(F);
  while not Eof(F) do
  begin
    ReadLn(F, s);
    (* Aca las operaciones que realices. Para el ejemplo muestra en Memo *)
    Memo1.Lines.Add(s);  
    ProgressBar1.StepIt; // Avanza Step posiciones en el ProgressBar
    // Application.ProcessMessages; (* de ser necesario *)
  end;
  CloseFile(F);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ProgressBar1.Max:= NumFileLines('C:\ARCHIVO.TXT');
  ProgressBar1.Step:= 1;
  ProcessFile('C:\ARCHIVO.TXT');
end;
...


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-05-2011 a las 15:50:10.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como saber el tamaño de un fichero kenychy C++ Builder 13 19-11-2010 16:46:59
Saber el tamaño de un registro winzo Oracle 1 24-11-2009 11:07:17
Como saber cuantas lineas tiene un archivo de texto MRSAM .NET 3 28-03-2007 02:35:00
Como puedo grabar texto en un Archivo de Texto sin Sobreescribir???? AGAG4 Varios 12 08-11-2005 22:53:00
Saber el tamaño de RAM de tu ordenador ciscu Varios 1 28-07-2004 18:13:58


La franja horaria es GMT +2. Ahora son las 15:25:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi