Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Funcion para borrar la cadena que aparesca repetida dentro de otra cadena (https://www.clubdelphi.com/foros/showthread.php?t=45425)

flystar 03-07-2007 00:09:22

Funcion para borrar la cadena que aparesca repetida dentro de otra cadena
 
Buenos Días:

Existe alguna función en Delphi que borre las cadenas que aparescan repetidas dentro de otra cadena?

POr ejemplo:

En la cadena "El aguila vuela, aguila es veloz y aguila ataca cuando se enoja"
La cadena "aguila" aparece 3 veces:( y es necesario borrar las 2 que se repiten para que quede asi:

"El aguila vuela, es veloz y ataca cuando se enoja"

Gracias.

seoane 03-07-2007 00:51:10

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

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'));


La franja horaria es GMT +2. Ahora son las 14:15:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi