PDA

Ver la Versión Completa : condicion de parada


Anel Hernandez
27-10-2011, 16:52:37
Hola,

estoy leyendo un fichero texto y para la condicion de parada la lectura de dos de sus caracteres debe ser igual a un valor:

repeat
readln(fichero,saux);
ss:=copy(saux,8,2);
application.ProcessMessages;
until ss='00'

Hay alguna forma para poner la condicion directa sin tener que usar ss y el copy?

la idea seria algo asi como copy(saux,8,2)='00' que es incorrecto pero da idea de lo que quiero lograr.

gracias

Caro
27-10-2011, 17:45:10
Hola Anel Hernandez


repeat
readln(fichero,saux);
application.ProcessMessages;
until LeftStr(saux, 2)='00';


Saluditos

Anel Hernandez
27-10-2011, 21:28:47
Gracias Caro. Pero una duda: leftStr no copia desde la posicion 0? al inicio del String?

fijate que en mi ejemplo yo copia 2 caracteres en la posicion 8 de un string que es mucho mas grande.

ecfisa
27-10-2011, 22:12:32
Hola Anel.

Probá de este modo:

...
var
F: TextFile;
s: string;
begin
AssignFile(F, 'Archivo.TXT');
Reset(F);
repeat
Readln(F, s);
until (Copy(s,8,2) = '00') or Eof(F);
CloseFile(F);
end;

Es importante incluir el fin de archivo en la condición de salida, por que si no llega a existir una cadena con los caracteres '00' en la posición evaluada ... :rolleyes:

Un saludo.

Anel Hernandez
28-10-2011, 13:20:37
Perfecto! me faltaban los parentesis a mi condicion!

gracias