Programación General > VBA

 Problema con Strings (o eso creo)

(1/1)

Cormac:
Hola,

estoy escribiendo una aplicación en VBA usando el IDE de Visual Basic incorporado en el AutoCAD 2009, y en uno de los procedimientos el compilador me informa del siguiente error:


--- Citar ---Error de compilación:

Calificador no válido
--- Fin de la cita ---

referido al parámetro cadena de tipo String. El código del procedimiento es el siguiente :


--- Código: Visual Basic ---Private Sub extraeInfo(color As String, seccion As String, cadena As String)     Dim i As Integer        i = 0        Do While cadena.Chars(i) <> Chr(32) And cadena.Chars(i) <> vbTab            i = i + 1            Loop            color = Left(cadena, i)            Do While cadena.Chars(i) = Chr(32) Or cadena.Chars(i) = vbTab            i = i + 1            Loop            seccion = Mid(cadena, i, Len(cadena) - i - 1)         End Sub 
En concreto el error se produce en la primera utilización del parámetro cadena, justo en la linea del primer Do. Creo que el fallo está en algo que no alcanzo a comprender sobre la manipulación de Strings y su paso como parámetros, puesto que no es el primer caso en que el compilador me reporta ese mismo error:


--- Código: Visual Basic ---Public Sub cargaTramos(tramos As String)     Dim sup As Integer    Dim inf As Integer             inf = 0    sup = 0        For sup = 0 To tramos.Length - 1                If tramos(sup) = vbCr Then                    insertaTramo tramos.Substring(inf, sup - inf)                        cont_tr = cont_tr + 1            inf = sup + 1                    End If                Next sup        insertaTramo tramos.Substring(inf, sup - inf + 1)    End Sub 
Aquí obtengo el mismo mensaje de error, sólo que referido a la primera utilización del parámetro tramos (For sup = 0 To tramos.Length - 1). Parece que se da exactamente la misma situación, pero como soy programador novato y autodidacta de Visual Basic no soy capaz de dar con la solución  :ouch:

Gracias por adelantado y un saludo.

F_Tanori:
En VB / VBA String es un tipo de dato, no una clase como lo estas suponiendo

Esto no se hace en VB

--- Código: Text ---cadena.Chars(i)  
debes usar una funcion ejemplo

--- Código: Visual Basic ---mid(cadena,i,1) 

--- Código: Text ---tramos.Substring(inf, sup - inf) 

--- Código: Visual Basic ---tramos=mid(tramos(inf, sup - inf)) 
Esto no se hace en VB

--- Código: Text ---tramos.Length 
debes usar una funcion ejemplo

--- Código: Visual Basic ---len(tramos) 

etc

Saludos

Cormac:
gracias por la aclaración, ahora mi aplicación va perfecta  :)

Navegación

[0] Índice de Mensajes

Ir a la versión completa