Filtro para Listbox
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 ?
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
Curtidas 0
Respostas
Bertu
29/05/2008
e claro adicionar as 3 linhas filtradas no Listbox e Remover a Linha principal.
Alguma ideia ?
Alguma ideia ?
GOSTEI 0
Bertu
29/05/2008
??
GOSTEI 0
Marco Salles
29/05/2008
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;
GOSTEI 0
Bertu
29/05/2008
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 :)
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 :)
GOSTEI 0
Marco Salles
29/05/2008
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;
GOSTEI 0
Bertu
29/05/2008
Perfeito Muito Obrigado
GOSTEI 0
Marco Salles
29/05/2008
Que bom que lhe fui útil...
GOSTEI 0