Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Leer ultima linea de un archivo ??? (https://www.clubdelphi.com/foros/showthread.php?t=15775)

chelejuan 04-11-2004 15:53:05

Leer ultima linea de un archivo ???
 
Buenas, lo primero un saludo a todos ;)

Ahora mi duda, tengo un fichero con varias lineas y necesito leer la ultima linea y tener sus datos, realmente solo necesito un dato de toda la linea.

Los datos lo tengo en un fichero que se donde esta y donde anteriormente yo he escrito unos datos.

Los datos tengo que conseguirlo en este plan :

0123|asdfasdf|datoaconseguir|sdfsadf

El dato siempre esta en la misma posicion de la linea ( de la 22 a la 26 ) .

¿Como podria hacer esto?.

Ahora mismo para conectarme y demas hago esto :

Código:

AssignFile(f,Edit3.text);
                  if fileexists(Edit3.text) then
                        begin        // seguir escribiendo
                        append(f);
 
                        Readln(F);
 
                        end
 
                  else
 
                          begin // crear archivo
                          rewrite(f);
                          numApunt := numApunt + 1;
                  end;


Pero lo siguiente de leer la ultima fila no me sale :(

Venga gracias anticipadas, un saludo.

AGAG4 04-11-2004 16:08:51

Prueba Esto....
 
Código Delphi [-]
  AssignFile(f,Edit3.text);
  if fileexists(Edit3.text) then begin   // seguir escribiendo
    while not EOF(f) do begin  
      Readln(F);
      ....
     end;
    ...
  end;
Con el While podrás llegar a la linea que quieras pero si quieres especificamentre posicionarte al Final, por el momento no puedo revisar que instruccion podría servirte porque no tengo actualmente instalado el Delphi, pero puedes buscar en la Ayuda de este mismo...
Saludos.

chelejuan 04-11-2004 16:21:12

Cita:

Empezado por AGAG4
Código Delphi [-]
   AssignFile(f,Edit3.text);
   if fileexists(Edit3.text) then begin     // seguir escribiendo
     while not EOF(f) do begin  
       Readln(F);
       ....
      end;
     ...
   end;
Con el While podrás llegar a la linea que quieras pero si quieres especificamentre posicionarte al Final, por el momento no puedo revisar que instruccion podría servirte porque no tengo actualmente instalado el Delphi, pero puedes buscar en la Ayuda de este mismo...
Saludos.

Me da un error general en while not EOF(f) do begin ¿por que puede ser?.

Yo encontre para leer esto :

append(f);
Reset(f);
Readln(f, ch);

Pero claro me lee la primera fila.

¿Alguna otra idea?

Gracias XD

chelejuan 04-11-2004 16:53:39

Al final lo he hecho asi, no creo que sea lo mas correcto pero al menos funciona

Cita:


AssignFile(f,Edit3.text);
if fileexists(Edit3.text) then
begin // seguir escribiendo


append(f);
Reset(f);
Readln(f, ch);
a:= ch;

while not EOF(f) do
begin
Readln(f, ch);
a:= ch;
end;

a:=Copy(a,1,29);
a:= copy(a,27,29);
numApunt := strtoint(a);
numApuntiva := strtoint(a);
CloseFile(f); // cerrar el fichero ya que tengo el numero apunte
AssignFile(f,Edit3.text); // esto es para abrir el fichero
append(f); // esto es para continuar escribiendo



end

else

begin // crear archivo
rewrite(f);
numApunt := 1;
numApuntiva := 1;
end;



La franja horaria es GMT +2. Ahora son las 22:12:45.

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