Principales respuestas
Función que compara cadenas y regresa una letra

Pregunta
-
Hola a todos, hoy traigo una inquietud y espero me puedan ayudar. estoy trabajando en vb con un formulario y tengo unos combo box, básicamente uno tiene dos opciones, kilobytes y megabytes y el otro minutos, horas y dias, lo que estoy tratando de hacer es una función que me compare la propiedad text del combobox con una cadena y me devuelva una letra ya que esa la ocupare para almacenarla en un archivo de texto mi código es el siguiente...
Public Function Comparar_tiempo(ByVal medida As String) As String
If String.Compare(medida, "minutos") Then
unit = "m"
ElseIf String.Compare(medida, "horas") Then
unit = "h"
Else ' medida.CompareTo("Días")
unit = "d"
End If
'Exit Function
End Functional ejecutar el programa me manda un mensaje de error diciéndome 'la conversion de la cadena "" en el tipo boolean no es valida'
- Editado danielneria martes, 19 de abril de 2016 17:27
Respuestas
-
Hola,
arr(1) = NumericUpDown2.Value & Unidad = Microsoft.VisualBasic.Left(ComboBox1.Text, 1) & "/" & NumericUpDown3.Value & Unidad = Microsoft.VisualBasic.Left(ComboBox2.Text, 1)
No puedes poner "=" al asignar valores concatenados.
Además puedes usar :
Unidad = ComboBox1.Text.Substring(0, 1)
Si vas a concatenar el resultado, te quedaría así :
arr(1) = NumericUpDown2.Value & Unidad & ComboBox1.Text.Substring(0, 1) & "/" & NumericUpDown3.Value & Unidad & ComboBox2.Text.Substring(0, 1)
Saludos.
JC NaupaCrispín
Lima - Perú
La magia no existe, la programación SI- Editado Joel C. Naupa Crispín martes, 19 de abril de 2016 18:26
- Marcado como respuesta danielneria martes, 19 de abril de 2016 19:39
Todas las respuestas
-
Hola,
Hola, el String.Compare devuelve un valor entero, dependiendo del resultado, aquí puedes ver la documentación.
Puedes usar también otras validaciones.
If medida = "minutos" Then unit = "m" End If If medida.Equals("minutos") Then unit = "m" End If If medida.Contains("minutos") Then unit = "m" End If If String.Compare(medida, "minutos") = 0 Then unit = "m" End If
Y puedes agruparlos en un Case para un mayor orden.
Saludos.
JC NaupaCrispín
Lima - Perú
La magia no existe, la programación SI -
Lo he intentado con esta otra instrucción, que me saca la primera letra de la propiedad text del combobox y si lo hace, lo corroboro con los mensajes, pero cuando lo quiero concatenar en el arreglo, es cuando me sale el error y no se por qué
Unidad = Microsoft.VisualBasic.Left(ComboBox1.Text, 1)
MsgBox(Unidad)
Unidad = Microsoft.VisualBasic.Left(ComboBox2.Text, 1)
MsgBox(Unidad)
Unidad = Microsoft.VisualBasic.Left(ComboBox3.Text, 1)
MsgBox(Unidad)arr(1) = NumericUpDown2.Value & Unidad = Microsoft.VisualBasic.Left(ComboBox1.Text, 1) & "/" & NumericUpDown3.Value & Unidad = Microsoft.VisualBasic.Left(ComboBox2.Text, 1)
-
Hola,
arr(1) = NumericUpDown2.Value & Unidad = Microsoft.VisualBasic.Left(ComboBox1.Text, 1) & "/" & NumericUpDown3.Value & Unidad = Microsoft.VisualBasic.Left(ComboBox2.Text, 1)
No puedes poner "=" al asignar valores concatenados.
Además puedes usar :
Unidad = ComboBox1.Text.Substring(0, 1)
Si vas a concatenar el resultado, te quedaría así :
arr(1) = NumericUpDown2.Value & Unidad & ComboBox1.Text.Substring(0, 1) & "/" & NumericUpDown3.Value & Unidad & ComboBox2.Text.Substring(0, 1)
Saludos.
JC NaupaCrispín
Lima - Perú
La magia no existe, la programación SI- Editado Joel C. Naupa Crispín martes, 19 de abril de 2016 18:26
- Marcado como respuesta danielneria martes, 19 de abril de 2016 19:39
-