Fórum separar itens ListBox #295419
14/09/2005
0
Minha dúvida é a seguinte: Tenho um listbox onde recebo em uma mesma linha as informações [b:19f16bee92]TELEFONE IP USER[/b:19f16bee92], gostaria de estar pegando essa linha de informações e guardando cada item em uma variável. Como fazer isso???
Exemplo:
a:= telefone
b:= ip
c:= user
Gostaria de quebrar essas informações!!!
Desde já muito obrigado!!!
Castor Troy
Curtir tópico
+ 0Posts
14/09/2005
Bruno Belchior
Gostei + 0
14/09/2005
Castor Troy
Desde já muito obrigado
Gostei + 0
14/09/2005
Cabelo
Desde já muito obrigado[/quote:80b4d2b406]
:shock: ?????
[quote:80b4d2b406=´Bruno Belchior´]mas esses dados vem concatenados em uma string?[/quote:80b4d2b406]
[quote:80b4d2b406=´Castor Troy´]Não, eles estão dentro de um listbox normal. Eu tenho várias linhas que contém o TELEFONE IP USER, e gostaria de separá-los, pois pretendo guradar em um banco essas informações.
Desde já muito obrigado[/quote:80b4d2b406]
Então eles vem em um só string..
Se é assim como vc diz.. vc terá que ´fatiar´ a string.. para poder armazenar os dados.. ou armazená-los previamente em três list box distintos..
Gostei + 0
14/09/2005
Castor Troy
Muito obrigado pela atenção
Gostei + 0
14/09/2005
Cabelo
Muito obrigado pela atenção[/quote:bd65801896]
uma opção, seria na hora de ´popular´ o list box, vc colocar os labels..
exe :
Nome : Teste 1 IP : 192.168.1.1 User : T
Nome : Teste2 IP : 192.168.1.2 User : T2
desta forma vc iria ter uma referência para usar a função POS do delphi..
senão.. pq vc não ´popula´ 3 listbox independentes..?
um para cada opção..
aí quando precisar armazenar os dados.. vc usaria o número do item de cada listbox selecionado.. mas sempre usando a mesma linha nos três list..
espero ter ajudado..
Gostei + 0
14/09/2005
Castor Troy
Muito obrigado
Gostei + 0
14/09/2005
Bruno Belchior
Gostei + 0
14/09/2005
Cabelo
se não funcioner deve ser algum ajuste pequeno..
for v_i := 0 to ListBox1.Items.Count - 1 do
begin
if POS(´Nome :´, ListBox1.Items.Strings[v_i]) > 0 then
begin
v_nome := Copy(ListBox1.Items.Strings[v_i],
POS(´Nome :´, ListBox1.Items.Strings[v_i]) + 7,
POS(´IP :´, ListBox1.Items.Strings[v_i]) -
POS(´Nome :´, ListBox1.Items.Strings[v_i]));
end;
if POS(´IP :´, ListBox1.Items.Strings[v_i]) > 0 then
begin
v_nome := Copy(ListBox1.Items.Strings[v_i],
POS(´IP :´, ListBox1.Items.Strings[v_i]) + 5,
POS(´USER :´, ListBox1.Items.Strings[v_i]) -
POS(´IP :´, ListBox1.Items.Strings[v_i]));
end;
if POS(´USER :´, ListBox1.Items.Strings[v_i]) > 0 then
begin
v_nome := Copy(ListBox1.Items.Strings[v_i],
POS(´USER :´, ListBox1.Items.Strings[v_i]) + 7,
Length(ListBox1.Items.Strings[v_i]) -
POS(´USER :´, ListBox1.Items.Strings[v_i]));
end;
end;
até +
Gostei + 0
14/09/2005
Castor Troy
Muito obrigado!!
Gostei + 0
14/09/2005
Cabelo
Não daria certo, pois se a string quando for populada contiver espaços em branco, seria entendido como ´nó´ no TStrings, e isto iria acarretar um erro de alocação de memória..
lembre-se que você deve utilizar o TStrings como um vetor, que ocupa posições e não uma matriz que ocupam linha e posições..
Gostei + 0
14/09/2005
Bruno Belchior
Gostei + 0
14/09/2005
Bruno Belchior
Gostei + 0
15/09/2005
Cabelo
mas daria muito trabalho usar o TObject.
Não seria mais fácil armazená-los em um vetor do tipo record, somente string com o nome, ip e USER, e depois armazenar somente as linhas do vetor que coincidirem com as linhas selecionadas no listBox??
acredito ser mais leve, rápido e mais fácil de desenvolver..
Gostei + 0
15/09/2005
Bruno Belchior
Gostei + 0
15/09/2005
Cabelo
O vetor tipo record, tem index...
assim como o listbox..
é só implementar ele de acordo com o listbox..
depois usa o index do listbox, para gravar os dados do record no BD..
E fica muito mais leve, pois estaria criando um vetor de string, que seria melhor que mexer com persistências..
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)