Jump to content

[Resolvido] For Each está dando problemas


User LoL

Recommended Posts

Estou com um código que tem que varrer 3 listbox, e salvar os valores, acontece que não estou conseguindo conciliar os 3 for each ao mesmo tempo,o código é esse:

For Each leo As String In Me.ListBox1.Items
		    For Each leo2 As String In Me.ListBox2.Items
			    For Each leo3 As String In Me.ListBox3.Items
				    Salvar.WriteLine(" linha " & leo & " posicao " & leo2 & " caracter " & leo3 & " fim ")
			    Next
		    Next
	    Next

se os 3 listbox tem somente um item,salva normalente, mas se tem 2,ja salva 3 vezes cada item, porque,como faço pra corrigir isso? Não da pra colocar um Salvar.WriteLine depois do next, porque os valores tem que estar na mesma linha,conforme o codigo acima

Link to comment
Share on other sites

Por cada item da ListBox1 vais analisar todos os elementos da ListBox2, e por cada elemento da ListBox2 vais analisar todos os da ListBox3.

Não entendo bem o que pretendes. Tens 3 ListBoxes. Queres que, tendo ambas o mesmo nº de elementos, ter a associação entre cada nº elemento das listas? Tipo isto?

LB1:
Lin1
Lin2

LB2:
Pos1
Pos2

LB3:
Car1
Car2

ASSOCIAÇÃO (resultado pretendido):
linha "Lin1" posicao "Pos1" caracter "Car1" fim
linha "Lin2" posicao "Pos2" caracter "Car2" fim

Knowledge is free!

Link to comment
Share on other sites

Não,na verdade a sequencia logica seria essa:

For Each leo As String In Me.ListBox1.Items
Next
For Each leo2 As String In Me.ListBox2.Items
Next
For Each leo3 As String In Me.ListBox3.Items
Next
Salvar.WriteLine(" linha " & leo & " posicao " & leo2 & " caracter " & leo3 & " fim ")

esse código aqui também nao esta funcionando.

Oque ele deveria fazer e varrer os itens do listbox1,listbox2 e listbox 3, Para linha existente no listbox, ele cria uma linha no documento do savedialog

Edited by User LoL
Link to comment
Share on other sites

Há ai qualquer coisa mal explicada sobre o propósito de cada lista.

Queres passar uma vez em cada item de cada lista?

Porque não poes o Salvar.WriteLine dentro de cada foreach?

Vejo que a lista1 tem linhas, a 2 tem a posicao e a 3 tem caracteres.

Queres mostrar só os selecionados de cada lista?

Mostra lá o resultado que pretendias que o WriteLine mostrasse

Link to comment
Share on other sites

Vou explicar melhor, Estou armazenando valores diferentes em cada listbox e quero colocar os valores da linha 1 em sequencia, da linha 2 em outra sequencia,e assim por diante. mais ou menos assim:

esse seria os 3 listbox, cada um com seu respectivo valor:

listbox1 listbox2 listbox3

item X item Y item Z

itemX2 item Y2 itemZ2

teste testando 99

Agora, quero que salve exatamente assim:

esse e o "Item X" e também salvamos o "item Y" e aqui o "item Z"

esse e o "item X2" e também salvamos o "item Y" e aqui o "item Z"

esse e o "teste" e também salvamos o "testando" e aqui o "99"

Link to comment
Share on other sites

E as listboxes têm sempre o mesmo número de elementos?

Não tenho o VB.NET instalado e nao me lembro se o primeiro elemento em vb.net é o 0 ou o 1, mas podes fazer algo assim:

For index as Integer = 0 to Me.ListBox1.Items.Count-1
  Salvar.WriteLine("esse e o " & ListBox1.Items(index) & " e também salvamos o " & ListBox2.Items(index) & " e aqui o " & ListBox3.Items(index))
Next

Convem certificares-te que as listboxs têm o mesmo número de items antes de fazeres isso (e que a listbox1 tem pelo menos 1 item)

Edited by nelsonr
Link to comment
Share on other sites

O código que eu tentei adaptar ficou assim

For Each leo As String In Me.ListBox1.Items
		    For i = 0 To Me.ListBox1.Items.Count - 1
			    Salvar.WriteLine("esse e o " & ListBox1.Items(i) & " tambem temos o " & ListBox2.Items(i) & " e aqui o  " & ListBox3.Items(i) )
		    Next
	    Next

O problema é esse: se os listbox tem 2 itens ele escreve duas vezes cada item, se tem 5 ele escreve 5 vezes cada um dos itens, porque?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.