PDA

Ver la Versión Completa : Leer ultima linea de un archivo ???


chelejuan
04-11-2004, 15:53:05
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 :


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
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
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



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;