Ver Mensaje Individual
  #2  
Antiguo 02-07-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Cita:
Empezado por flystar
Existe alguna función en Delphi que borre las cadenas que aparescan repetidas dentro de otra cadena?
Pues no, aunque parezca mentira alguna vez hay que teclear algo de código. No siempre hay objetos o funciones para todo. Pero todo se andará, quizá algún día delphi traerá la función "MataAFlander" en una de sus librerías

Código Delphi [-]
function nodup(Str: String): String;
var
  Parser: TParser;
  Stream: TStringStream;
begin
  Result:= EmptyStr;
  with TStringList.Create do
  try
    Stream:= TStringStream.Create(Str);
    try
      Parser:= TParser.Create(Stream);
      try
        if IndexOf(Parser.TokenString) = -1 then
          Add(Parser.TokenString);
        while not (Parser.NextToken = toEOF) do
          if IndexOf(Parser.TokenString) = -1 then
            Add(Parser.TokenString);
        Delimiter:= #32;
        Result:= DelimitedText;
      finally
        Parser.Free;
      end;
    finally
      Stream.Free;
    end;
  finally
    Free;
  end;
end;

// Ejemplo
ShowMessage(nodup('El aguila vuela, aguila es veloz y aguila ataca cuando se enoja'));
Responder Con Cita