Consulta sobre problema de código en visual basic en las sentencias condicionales if

Hola quisiera saber porque no entra en el segundo if pese a que convar si es igual a un dato de la estructura PR no realiza las instrucciones dentro del if, por favor ayúdenme es urgente, de antemano MUCHA GRACIAS
If j = Linea.Length Then
For i = 0 To PR.Length - 1
If convar = PR(i).Lexema Then 
bandera = 1
ListBox1.Items.Add(PR(i).Tipo & " " & contLinea & " " & 0 & " " & PR(i).Lexema)
convar = " " 
End If 
Next 
End If
Respuesta
1
Para que funcione convar debe ser del mismo tipo que PR(i). Lexema
Hola gracias por la ayuda pero convar es de tipo string y PR(i). Lexema también t dejo el código más extenso a ver si me puedes ayudar, gracias
Private Structure Pal_Reser
Dim Lexema As String
Dim Tipo As Integer
End Structure
v_alfa = Split(Alfa)
v_tnum = Split(t_num)
Do While Not (Linea Is Nothing)
contLinea += 1
For j = 1 To Linea.Length
caracter = Mid(Linea, j, 1)
val_carac = Asc(caracter)
If (val_carac >= 32 And val_carac <= 126) Then
If ((val_carac >= 65 And val_carac <= 90) Or (val_carac >= 97 And val_carac <= 122) Or (val_carac >= 48 And val_carac <= 57) Or (val_carac = 95)) And concadena = " " And connum = " " Then
carac2 = Mid(Linea, j + 1, 1)
If carac2 <> "" Then
val_carac2 = Asc(carac2)
End If
If ((val_carac >= 65 And val_carac <= 90) Or (val_carac >= 97 And val_carac <= 122)) Then
convar = convar & caracter
If Not ((val_carac2 >= 65 And val_carac2 <= 90) Or (val_carac2 >= 97 And val_carac2 <= 122) Or (val_carac2 >= 48 And val_carac2 <= 57) Or (val_carac2 = 95)) Or (val_carac2 = val_carac) Then
For i = 0 To PR.Length - 1
If convar = PR(i).Lexema Then
banderav = 1
ListBox1.Items.Add(PR(i).Tipo & " " & contLinea & " " & "0" & " " & PR(i).Lexema)
convar = " "
End If
Next
If banderav = 0 Then
For i = 0 To TS.Length - 1
If convar = TS(i).Lexema Then
banderav = 1
ListBox1.Items.Add(TS(i).Tipo & " " & contLinea & " " & TS(i).Direccion & " " & TS(i).Lexema)
convar = " "
End If
Next
End If
If banderav = 0 Then
ReDim Preserve TS(TS.Length)
TS(TS.Length).Tipo = (tipo = dir + 1)
TS(TS.Length).Direccion = (dir = dir + 1)
TS(TS.Length).Lexema = convar
ListBox1.Items.Add(TS(cont = +1).Tipo & " " & contLinea & " " & TS(cont = +1).Direccion & " " & TS(cont = +1).Lexema)
banderav = 0
convar = " "
End If
banderav = 0
End If
End If
No entra al if de las instrucciones en negritas pese a que el valor de convar es igual a uno de los de la estructura PR(i). Lexema
Gracias
Probablemente no son iguales las cadenas, uno tiene espacios al inicio o la final y el otro no
Verifica eso.
Verifica si los valores no son exactamente iguales por espacios, por ejemplo, puedes utilizar Trim para eliminar los espacios
Gracias cheque pero ni eso es, tal vez sea que eh tenido problemas con visual de repente me saca, porque definitivamente no encuentro el error.
Gracias por laa ayuda, cuidate

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas