Ver Mensaje Individual
  #7  
Antiguo 09-11-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A bote pronto se me ocurre algo parecido a esto:

Código Delphi [-]
(*
  Carga un archivo existente e itera por sus líneas para
  rechazar aquellas que superen la longitud deseada.

  Si el archivo especificado no existe este procedimiento
  levantará una excepción del tipo "EInOutError"

  Ejemplo de llamada:

  var
    t: TStrings;
  begin
    t := TStringList.Create();
    try
      GetWordsFromFile('palabras.txt', 2, t);
      Memo1.Text := t.Text;
    finally
      t.Free();
    end;
  end;

  Parámetros:

  filePath: Ruta del archivo a cargar

  maxChars: Máximos caracteres para no rechazar una línea

  resultsWords: Variable donde se albergará el resultado,
  es decir, las líneas cargadas del archivo no rechazadas

*)
procedure GetWordsFromFile(filePath: string;
 maxChars: integer; var resultsWords: TStrings);
var
  i: integer;
begin
  if FileExists(filePath) then begin
    resultsWords.LoadFromFile(filePath);
    for i := resultsWords.Count-1 downto 0 do
    begin
      if (Length(resultsWords[i]) > maxChars) then
      begin
        resultsWords.Delete(i);
      end;
    end;
  end
  else begin
    raise EInOutError.CreateFmt(
      'The file "%s" dont exists',
      [filePath]
    );
  end;
end;

No sé si puede servirte o darte al menos una idea.

PD. Básicamente es lo que dice el compañero Neftalí, si bien en este caso no se desechan las palabras del "Memo", sino que no llegan a cargarse en el mismo.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 09-11-2007 a las 12:58:46.
Responder Con Cita