Filtro para Listbox

29/05/2008

0

Ae preciso de um codigo para filtrar linhas num Listbox
por exemplo:

tenho uma url : [b:731366c885]www.devmedia.com.br/index.php?act=post&do=teste&olha=campo[/b:731366c885]

quando o filtro passase ficaria em 3 linhas assim:

[b:731366c885]www.devmedia.com.br/index.php?act=post&do=teste&olha=

www.devmedia.com.br/index.php?act=post&do=

www.devmedia.com.br/index.php?act=[/b:731366c885]

Alguem tem ideia como se fazer ?


Bertu

Bertu

Responder

Posts

29/05/2008

Bertu

e claro adicionar as 3 linhas filtradas no Listbox e Remover a Linha principal.
Alguma ideia ?


Responder

30/05/2008

Bertu

??


Responder

30/05/2008

Marco Salles

tente isto :

procedure TForm1.Button1Click(Sender: TObject);
var
i,posini,posFim,contador:integer;
s:String;
begin
for i:=0 to ListBox1.Count-1 do
  begin
   s:=listBox1.Items.Strings[i];
   for contador:=1 to 3 do
     begin
       posFim:=Pos(´=´,s);
       While (PosFim <> 0) do
         begin
          posIni:=PosFim;
          PosFim:=PosEx(´=´,s,posIni+1);
         end;
        s:=copy(s,1,posIni-1);
        listBox2.Items.Add(s+´=´);
     end;
  end;
end;



Responder

30/05/2008

Bertu

Vlw Marcos... sua dica funcionou porem se tiver duas url uma com 3 = e outra com 4, ele so filtra 3 por causa do contador.
ex.

www.devmedia.com.br/index.php?act=post&do=teste&olha=campo

www.devmedia.com.br/index.php?act=post&do=teste&olha=campo&marcos=&sales=

no primeiro link filtra certim , no segundo ja nao filtra tudo :)


Responder

30/05/2008

Marco Salles

Vlw Marcos... sua dica funcionou porem se tiver duas url uma com 3 = e outra com 4, ele so filtra 3 por causa do contador.


de acordo com suas especificaçoes...

Generalize para Um Numero Qualquer de ´=´

Exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
i,posini,posFim:integer;
s:String;
begin
for i:=0 to ListBox1.Count-1 do
  begin
   s:=listBox1.Items.Strings[i];
    posIni:=pos(´=´,s);
   while posini <> 0 do
     begin
       posFim:=Pos(´=´,s);
       While (PosFim <> 0) do 
         begin
          posIni:=PosFim;
          PosFim:=PosEx(´=´,s,posIni+1);
         end;
        s:=copy(s,1,posIni-1);
        listBox2.Items.Add(s+´=´);
        posIni:=pos(´=´,s);
     end;
  end;
end;



Responder

30/05/2008

Bertu

Perfeito Muito Obrigado


Responder

30/05/2008

Marco Salles

Que bom que lhe fui útil...


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar