Humm, entendi então vai outra idéia, o exemplo abaixo está faltando algumas
coisas, mas acho que pode te ajudar, consiste em primeiro  mapear o seu
texto, original da seguinte forma, veja o exemplo de mapa para o texto
'ABCABEFG'; Com o mapa montado, você agora passa a verificar seu valores
neste mapa, se o encontrar ou não, saberá as posições que seu valor se
encontra no texto original daí é só buscar os valores na posição original,
deve ter algum outro exemplo mais fácil, mas por hora acho que este pode te
ajudar....

 

valor  posições

A         1, 4

B         2, 5

C         3

E         5

F        6

G       7

 

 

procedure TForm1.bbt1Click(Sender: TObject);

type

  TMapa  = record

    valor: string;

    posicoes: array [0..4] of Integer;

  end;

var

  vMapa: array[0..100] of TMapa;

  vS: TStrings;

  vIndicesAdicionados: TStrings;

  vI: Integer;

  I, J, K, P: Integer;

begin

  vTexto := 'ABCABEFG';

 

  K := 0;

  for I := 1 to Length(vTexto) do

  begin

     P := 0;

     for J := 1 to Length(vTexto) do

     begin

       if vTexto[I] = vTexto[J] then

       begin

         {Tem q fazer uma verificação AQUI e SO adicionar no MAPA se não
existir}

 

         vMapa[K].valor := vTexto[I];

         vMapa[K].posicoes[p] := I;

         P := P + 1;

       end;

     end;

     K := K + 1;

  end;

 

  for vI := 0 to 3 do

  begin

    ShowMessage(vMapa[vi].valor);

  end;

 

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de deco0_07
Enviada em: segunda-feira, 15 de dezembro de 2008 10:41
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: [delphi-br] Dúvida com TStringList

 

eu apliquei esse exemplo fiz assim...

for vI := 0 to vS.Count - 1 do
begin
if vS.IndexOf(vS.Strings[vI]) <> 0 then
Memo1.Lines.Add(vS.Strings[vI]);
end;

esse if é pra não adcionar a linha 1 no memo...
só que se tenho outro valor igual o dessa linha, ele não adciona no 
memo tambem, sendo que era pra adcionar...

--- Em delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
, "Juliano Silva - Yahoo" 
<smjjuli...@...> escreveu
>
> procedure TForm1.bbt1Click(Sender: TObject);
> 
> var
> 
> vS: TStrings;
> 
> vI: Integer;
> 
> begin
> 
> vs := TStringList.Create;
> 
> vS.Add('A');
> 
> vS.Add('B');
> 
> vS.Add('C');
> 
> vS.Add('D');
> 
> vS.Add('E');
> 
> vS.Add('F');
> 
> 
> 
> for vI := 0 to vS.Count - 1 do
> 
> begin
> 
> ShowMessage(IntToStr(vS.IndexOf(vS.Strings[vI])) + ' - ' +
> vS.Strings[vI]);
> 
> end;
> 
> end;

 

__________ Informação do NOD32 IMON 3684 (20081211) __________

Esta mensagem foi verificada pelo NOD32 sistema antivírus
http://www.eset.com.br



[As partes desta mensagem que não continham texto foram removidas]

Responder a