Localizar Index em uma StringList
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,
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
Curtidas 0
Respostas
Beppe
28/07/2005
Oi!
Seria SL[Indice]?
Seria SL[Indice]?
GOSTEI 0
Marceloneox
28/07/2005
Oi!
Seria SL[Indice]?
Seria mais ou menos assim...
se SL localizar o index ´i´ então...
Espero ter sido claro.
GOSTEI 0
Beppe
28/07/2005
Como atribui os ´index´?
GOSTEI 0
Marceloneox
28/07/2005
Como atribui os ´index´?
Eu usei o comando Insert e passei pra ele um Index e Value específico.
GOSTEI 0
Beppe
28/07/2005
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.
SL.Insert(0, ´A´);
SL.Insert(0, ´B´);
´A´ ficará com índice 1 agora.
GOSTEI 0
Marceloneox
28/07/2005
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.
GOSTEI 0
Rjun
28/07/2005
O que realmente vc quer fazer?
GOSTEI 0
Marceloneox
28/07/2005
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?
GOSTEI 0
Rjun
28/07/2005
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?
GOSTEI 0
Marceloneox
28/07/2005
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
GOSTEI 0
Adriano Santos
28/07/2005
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.
GOSTEI 0
Beppe
28/07/2005
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´;
GOSTEI 0
José Henrique
28/07/2005
É 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.
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.
GOSTEI 0