Ver Mensaje Individual
  #4  
Antiguo 28-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 Ibidi.

Sólo como comentario, se puede efectuar con ambas estructuras de repetición. Por ejemplo, los siguientes códigos son equivalentes:
Código Delphi [-]
procedure MostrarConWhile(aFileName: TFileName; nFicha: Integer; LB: TListBox);
var
  F: TextFile;
  Cadena: string;
begin
  AssignFile(F, aFileName);
  try
    Reset(F);
  except
    raise Exception.Create('Archivo no encontrado');
  end;
  Readln(F, Cadena);
  while not Eof(F) and (nFicha = StrToInt(Trim(Copy(Cadena,1,6)))) do
  begin
    LB.Items.Add(Cadena); // Ejecutar acción (condición ya validada)
    Readln(F, Cadena);
  end;
  CloseFile(F);
end;

Código Delphi [-]
procedure MostrarConRepeat(aFileName: TFileName; nFicha: Integer; LB: TListBox);
var
  F: TextFile;
  Cadena: string;
begin
  AssignFile(F, aFileName);
  try
    Reset(F);
  except
    raise Exception.Create('Archivo no encontrado');
  end;
  repeat
    Readln(F, Cadena);
    if nFicha = StrToInt(Trim(Copy(Cadena,1,6))) then // Validar condición
      LB.Items.Add(Cadena);  // Acción
  until Eof(F) or (StrToInt(Trim(Copy(Cadena,1,6))) <> nFicha);
end;
La diferencia es que en el ciclo while se comprueba la condición al ingresar, de allí que sea necesaria la lectura previa.
Con repeat es innecesaria la lectura previa, pero hay que verificar la condición antes de ejecutar la acción, de otro modo la ejecutaría al menos una vez. Lo mismo sucedería al leer el elemento posterior al último que satisfizo la condición.

De todos modos, creo que la solución mas simple es la que usaste (TStringList).

Saludos
__________________
Daniel Didriksen

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