Usuário com melhor resposta
Dificuldades com SPLIT

Pergunta
-
Olá,
Estou com o seguinte problema relacionado ao SPLIT:
Imagine que em um ComboBox, você possa selecionar tanto "MX-84 - 885,00" quanto "Bordô - 52,00"
Se eu perguntar "Se o Split (1) é numérico e o Split (2) é numérico, então varItem = Split (2)" vou conseguir fazer com que o valor de 885,00 do primeiro item seja detectado, mas se eu selecionar o segundo item, não há "Split (2)" e ele da erro.
o código que tenho por enquanto é esse:
Dim item As String Dim valor As Decimal If Me.Label6.Text = "" Then Me.Label6.Text = "0" End If total = Label6.Text If IsNumeric(cboxModelo.Text.Split("-")(1).Trim) And IsNumeric(cboxModelo.Text.Split("-")(2)) Then item = cboxModelo.Text.Split("-")(2).Trim ElseIf IsNumeric(cboxModelo.Text.Split("-")(1).Trim) Then item = cboxModelo.Text.Split("-")(1).Trim ElseIf IsNumeric(cboxModelo.Text.Split("-")(2).Trim) Then item = cboxModelo.Text.Split("-")(2).Trim End If valor = total + Convert.ToDecimal(item) Me.Label6.Text = Format(valor, "R$ 0.00")
Quero fazer com que seja possível pegar o valor do ("MX-84 - 885,00") e o do ("Bordô - 52,00")- Editado Salomão sábado, 1 de maio de 2010 23:55 Correção
Respostas
-
Amigo tenta pegar sempre o ultimo item:
Dim matriz() As String Dim texto As String = "Bordô - 52,00" matriz = texto.Split("-") varItem = matriz(matriz.GetUpperBound(0))
msn: poseidonfba@hotmail.com- Marcado como Resposta Salomão terça-feira, 4 de maio de 2010 11:53
-
Salomão segue novo exemplo.
Dim matriz() As String = {"MX-84 - 885,00", "Bordô - 52,00"} Dim valor As Decimal For Each texto As String In matriz ' Busca apenas o valor valor = Strings.Right(texto, Strings.StrReverse(texto.ToString).IndexOf(" ")) 'Exibe na tela o valor com formato "R$ 0,00" MessageBox.Show(valor.ToString("C2")) Next
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino- Marcado como Resposta Salomão terça-feira, 4 de maio de 2010 11:53
Todas as Respostas
-
http://www.homeandlearn.co.uk/net/nets7p7.html
http://dotnetperls.com/split-examples-vbnet
Just Be Humble Malange!- Sugerido como Resposta Leonardo Bruno LimaModerator segunda-feira, 3 de maio de 2010 13:56
- Não Sugerido como Resposta Salomão terça-feira, 4 de maio de 2010 11:53
-
Desculpe.. Tenho pouca experiência com programação.
Não entendi muito bem o que os sites explicavam, mas tentei aquilo do "New Char" e não funcionou. Mostra erro.
Seria possível me explicar alguma lógica de como usar o Split corretamente neste caso? -
O meu problema, se me expressei mal, é o seguinte:
Tenho um único ComboBox, no qual posso escolher tanto "MX-84 - 885,00" quanto "Bordô - 52,00". No entanto, tenho que aplicar uma única lógica para detectar o preço, pois também há outros produtos que podem ser escolhidos.
A lógica q apliquei foi a seguinte:
Se o Split (1) é numérico e o Split (2) é numérico, entãovarItem = Split (2)
'vou conseguir fazer com que o valor de 885,00 do primeiro item seja detectado, mas se eu selecionar o segundo item,que é o "Bordô - 52,00", não há "Split (2)" e ele da erro. Usei essa lógica pois estou com problemas com a pergunta "se é numérico, então...". No produto MX-84, o "84" também é numérico e isso me traz problemas.
-
Amigo tenta pegar sempre o ultimo item:
Dim matriz() As String Dim texto As String = "Bordô - 52,00" matriz = texto.Split("-") varItem = matriz(matriz.GetUpperBound(0))
msn: poseidonfba@hotmail.com- Marcado como Resposta Salomão terça-feira, 4 de maio de 2010 11:53
-
-
Salomão segue novo exemplo.
Dim matriz() As String = {"MX-84 - 885,00", "Bordô - 52,00"} Dim valor As Decimal For Each texto As String In matriz ' Busca apenas o valor valor = Strings.Right(texto, Strings.StrReverse(texto.ToString).IndexOf(" ")) 'Exibe na tela o valor com formato "R$ 0,00" MessageBox.Show(valor.ToString("C2")) Next
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino- Marcado como Resposta Salomão terça-feira, 4 de maio de 2010 11:53
-