Quase como o sorted!
Eu estou com um problema para colocar uma lista em ordem alfabetica, pois a minha lista é assim:
Esta lista está carregada em um listbox, mas eu não posso utilizar o sorted para ordenar esta lista, pq eu gostaria que ele não leva-se em conta o numero inicial da linha e sim depois do caractere ´:´ para colocar em ordem alfabetica, está sendo uma tortura o código, se puderem me ajudar...
Obrigado!
1456: Andre
120: Joaquin
3489: Ricardo
12: Marcos
...
Esta lista está carregada em um listbox, mas eu não posso utilizar o sorted para ordenar esta lista, pq eu gostaria que ele não leva-se em conta o numero inicial da linha e sim depois do caractere ´:´ para colocar em ordem alfabetica, está sendo uma tortura o código, se puderem me ajudar...
Obrigado!
Dan
Curtidas 0
Respostas
Cebikyn
28/12/2003
Use o SuperSort:
http://paginas.terra.com.br/informatica/cebikyn/SuperSort.pas
depois de fazer o download, declare SuperSort no uses de sua unit e coloque o seguinte código para ordenar os items:
Se quiser colocar na ordem inversa, basta substituir [strIgnoreCase] por [strIgnoreCase,srtDescending]
Se quiser que sejam levadas em consideração maiúsculas e minúsculas, substitua a parte citada por [].
Qualquer problema, deixe uma msg.
http://paginas.terra.com.br/informatica/cebikyn/SuperSort.pas
depois de fazer o download, declare SuperSort no uses de sua unit e coloque o seguinte código para ordenar os items:
var SS: TSuperSort; begin SS := TSuperSort.Create; SS.SortStrings(ListBox1.Items,[´-f 1´,´-d :´],[strIgnoreCase]); SS.Free end;
Se quiser colocar na ordem inversa, basta substituir [strIgnoreCase] por [strIgnoreCase,srtDescending]
Se quiser que sejam levadas em consideração maiúsculas e minúsculas, substitua a parte citada por [].
Qualquer problema, deixe uma msg.
GOSTEI 0
Cebikyn
28/12/2003
Para fazer o download é necessário clicar no link com o botão direito do mouse e selecionar ´Salvar destino do link como...´ (ou opção equivalente, dependendo do browser).
GOSTEI 0
Dan
28/12/2003
Muito obrigado cebikyn, mais uma vez vc me dá uma foça...
Valeu!
Valeu!
GOSTEI 0
Dan
28/12/2003
Pensei que ia dar certo mas deu um erro com o parte [b:5cc5ff3080]strIgnoreCase[/b:5cc5ff3080], não deu para compilar!
O que acha que deu errado?
[Error] Unit1.pas(506): Undeclared identifier: ´strIgnoreCase´
[Error] Unit1.pas(506): Incompatible types: ´TSuperSortOptions´ and ´Integer´
[Fatal Error] Browser.dpr(5): Could not compile used unit ´Unit1.pas´
O que acha que deu errado?
GOSTEI 0
Dan
28/12/2003
Mesmo assim não era para levar em consideração maiúsculas e minúsculas na lista. utilizando apelas [] para mim já foi a solução para o meu problema...
Obrigado!
Obrigado!
GOSTEI 0
Cebikyn
28/12/2003
Eu que escrevi errado :oops: , o certo é [b:effb8a51c2]s[color=red:effb8a51c2]rt[/color:effb8a51c2]IgnoreCase[/b:effb8a51c2]
Só um detalhe: strIgnoreCase é para [b:effb8a51c2]não[/b:effb8a51c2] levar em consideração maiúsculas e minúsculas: Ignore = Ignorar; Case = Caixa (vem de caixa alta ou baixa (maiúsc. e minúsc. respectivamente)).
Só um detalhe: strIgnoreCase é para [b:effb8a51c2]não[/b:effb8a51c2] levar em consideração maiúsculas e minúsculas: Ignore = Ignorar; Case = Caixa (vem de caixa alta ou baixa (maiúsc. e minúsc. respectivamente)).
GOSTEI 0