GARANTIR DESCONTO

Fórum Localizar Index em uma StringList #289822

28/07/2005

0

Olá pessoal,

gostaria de saber como faço pra pesquisar em uma StringList através do Index. Eu inseri os registros e atribuí um Index pra cada registro que inseri. Agora em uma outra situação, preciso verificar se nessa StringList existe um determinado Index, só que não estou conseguindo...
Só consigo através da função Find, mas nela tenho que passar o Value e o Index... Espero que possam me ajudar.

[ ]s,


Marceloneox

Marceloneox

Responder

Posts

28/07/2005

Beppe

Oi!

Seria SL[Indice]?


Responder

Gostei + 0

28/07/2005

Marceloneox

Oi! Seria SL[Indice]?


Seria mais ou menos assim...
se SL localizar o index ´i´ então...

Espero ter sido claro.


Responder

Gostei + 0

28/07/2005

Beppe

Como atribui os ´index´?


Responder

Gostei + 0

28/07/2005

Marceloneox

Como atribui os ´index´?


Eu usei o comando Insert e passei pra ele um Index e Value específico.


Responder

Gostei + 0

28/07/2005

Beppe

Mas um TStrings não é uma lista associativa. Os índices variam conforme vc insere ítems. Veja:

SL.Insert(0, ´A´);
SL.Insert(0, ´B´);

´A´ ficará com índice 1 agora.


Responder

Gostei + 0

28/07/2005

Marceloneox

Mas um TStrings não é uma lista associativa. Os índices variam conforme vc insere ítems. Veja: SL.Insert(0, ´A´); SL.Insert(0, ´B´); ´A´ ficará com índice 1 agora.


Entendi... Tem algum outro recurso que posso utilizar que atenda o que citei? Desde já agradeço.


Responder

Gostei + 0

28/07/2005

Rjun

O que realmente vc quer fazer?


Responder

Gostei + 0

28/07/2005

Marceloneox

O que realmente vc quer fazer?


Quero inserir registros em uma lista e definir o Index e o Value da mesma, pra que eu possa pesquisar nesta lista pelo Index.
Ex: Inserir valores de uma tabela e definir o Index como o Código e o Value o Nome. Depois verificar nessa lista se existe o Index(nesse caso passarei o código), se encontrar então recebe o Nome, senão recebe outro valor.

Entendeu?


Responder

Gostei + 0

28/07/2005

Rjun

Entendi o que você quer, mas acho que o TStringList não seria adequado para isso. Ja pensou em utilizar uma classe com essas propriedades em conjunto com TList?


Responder

Gostei + 0

28/07/2005

Marceloneox

Entendi o que você quer, mas acho que o TStringList não seria adequado para isso. Ja pensou em utilizar uma classe com essas propriedades em conjunto com TList?


Acho que vou criar um ClientDataSet temporário pra fazer isso, vai ser mais fácil. Valeu pela ajuda de todos!

[ ]s


Responder

Gostei + 0

28/07/2005

Adriano Santos

Você pode usar um array também. O problema é pesquisar dentro dele. Vai precisar ficar fazendo loop. Acredito que a melhor solução seja um clientdataset temporário.


Responder

Gostei + 0

29/07/2005

Beppe

Acho que vou criar um ClientDataSet temporário pra fazer isso, vai ser mais fácil. Valeu pela ajuda de todos!

Se quiser, acho que ainda pode insistir no StringList. Claro que ClientDataSet é mais flexível, mas é mais pesado tbm.

SL.Count := NumeroDeItems;
Sl[0] := ´A´;
Sl[1] := ´B´;
Sl[2] := ´C´;
...
Sl[NumeroDeItems - 1] := ´Z´;



Responder

Gostei + 0

30/07/2005

José Henrique

É possível criar uma lista associativa com StringList tal como
maçã=vermelha
limão=verde
uva=roxa

e depois usar o método .Values(´maçã´) que retornará ´vermelha´. A associação deve ser feita com o sinal de igual sem espaços.


Responder

Gostei + 0

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

Aceitar