Quase como o sorted!

Delphi

28/12/2003

Eu estou com um problema para colocar uma lista em ordem alfabetica, pois a minha lista é assim:

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

Dan

Curtidas 0

Respostas

Cebikyn

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:

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

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

Dan

28/12/2003

Muito obrigado cebikyn, mais uma vez vc me dá uma foça...

Valeu!


GOSTEI 0
Dan

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!

[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

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!


GOSTEI 0
Cebikyn

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)).


GOSTEI 0
POSTAR