• Viernes 26 de Abril de 2024, 21:46

Autor Tema:  Problema con Strings (o eso creo)  (Leído 3589 veces)

Cormac

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Problema con Strings (o eso creo)
« en: Viernes 9 de Abril de 2010, 00:15 »
0
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

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

Código: Visual Basic
  1. Private Sub extraeInfo(color As String, seccion As String, cadena As String)
  2.  
  3.     Dim i As Integer
  4.    
  5.     i = 0
  6.    
  7.     Do While cadena.Chars(i) <> Chr(32) And cadena.Chars(i) <> vbTab
  8.    
  9.         i = i + 1
  10.        
  11.     Loop
  12.    
  13.    
  14.     color = Left(cadena, i)
  15.    
  16.    
  17.     Do While cadena.Chars(i) = Chr(32) Or cadena.Chars(i) = vbTab
  18.    
  19.         i = i + 1
  20.        
  21.     Loop
  22.    
  23.    
  24.     seccion = Mid(cadena, i, Len(cadena) - i - 1)
  25.        
  26.  
  27. End Sub
  28.  

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
  1. Public Sub cargaTramos(tramos As String)
  2.  
  3.     Dim sup As Integer
  4.     Dim inf As Integer
  5.  
  6.        
  7.     inf = 0
  8.     sup = 0
  9.    
  10.     For sup = 0 To tramos.Length - 1
  11.        
  12.         If tramos(sup) = vbCr Then
  13.        
  14.             insertaTramo tramos.Substring(inf, sup - inf)
  15.            
  16.             cont_tr = cont_tr + 1
  17.             inf = sup + 1
  18.            
  19.         End If
  20.            
  21.     Next sup
  22.    
  23.     insertaTramo tramos.Substring(inf, sup - inf + 1)
  24.    
  25. End Sub
  26.  

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

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema con Strings (o eso creo)
« Respuesta #1 en: Viernes 9 de Abril de 2010, 01:45 »
0
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
  1. cadena.Chars(i)
  2.  

debes usar una funcion ejemplo
Código: Visual Basic
  1. mid(cadena,i,1)
  2.  

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

Código: Visual Basic
  1. tramos=mid(tramos(inf, sup - inf))
  2.  

Esto no se hace en VB
Código: Text
  1. tramos.Length
  2.  

debes usar una funcion ejemplo
Código: Visual Basic
  1. len(tramos)
  2.  


etc

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Cormac

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Problema con Strings (o eso creo)
« Respuesta #2 en: Lunes 12 de Abril de 2010, 12:17 »
0
gracias por la aclaración, ahora mi aplicación va perfecta  :)