Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[SOLUCIONADO] Conversión de Datos en VB y arreglo de caracteres

Estas en el tema de Conversión de Datos en VB y arreglo de caracteres en el foro de Visual Basic clásico en Foros del Web. Hola Muchachos, espero tener una respuesta en este tema, por que la verdad ya ando desesperado. Bueno al grano, la verdad son dos cuestiones: 1-Estoy ...
  #1 (permalink)  
Antiguo 01/10/2010, 10:38
Avatar de eaanillol  
Fecha de Ingreso: septiembre-2010
Ubicación: Bogota - Colombia
Mensajes: 25
Antigüedad: 13 años, 7 meses
Puntos: 0
De acuerdo Conversión de Datos en VB y arreglo de caracteres

Hola Muchachos, espero tener una respuesta en este tema, por que la verdad ya ando desesperado.

Bueno al grano, la verdad son dos cuestiones:
1-Estoy trabajando en vb 2005 con Microsoft office 2003 con arrays, hice pruebas con los distintos tipos de datos, por ejemplo:

Sub pruebaConversion()

Dim c(1 To 5) As String
Dim i As Integer

For i = 1 To 5
c(i) = "" & i
Next i

MsgBox "" & c(1)
End Sub

Y me funciona perfecto. La cosa se pone fea cuando intento usar caracteres. La primera cosa rara que sucede es que cuando creo el arreglo, al momento de asignar el tipo de la variable,entre las sugerencias del V.B. no me sale Char sino:
Characters
Chart
Chats
Chart Objects
entre otras

y si uso cualquiera de ellas con el siguiente código:

Sub pruebaConversion()

Dim c(1 To 5) As Chart
Dim i As Integer

For i = 1 To 5
c(i) = "" & i
Next i

MsgBox "" & c(1)
End Sub

me sale "variable de objeto o bloque with no establecido", le pongo el with y me sale: "El objeto with debe ser un tipo definido por el usuario"

Si alguien sabe como crear arreglos con caracteres seria de gran ayuda.

2- La segunda cuestión es que necesito hacer lo anterior debido a que voy a convertir un String en un arreglo de caracteres pero no se como hacerlo. Busque y encontré pero el código no me sirve, uso funciones como CType con:
Sub pruebaConversion()

Dim testNumber As Long
testNumber = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single
testNewType = CType(testNumber, Single)

End Sub

y me dice error de sintaxis, y uso también esta:
Sub pruebaConversion()

Dim a As String
Dim b As Chart
a = "g"
b = CType(a, Chart)

End Sub

pero me dice que la funcion CType no la he definido.
  #2 (permalink)  
Antiguo 01/10/2010, 12:43
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Conversión de Datos en VB y arreglo de caracteres

Hola, por el contenido de tu pregunta, veo que eres muy, muy nuevo en esto, y creo que ni siquiera has perdido mucho tiempo con los manuales puesto que los TIPOS DE VARIABLES es lo primero que aparece en ellos.

En este momento parece que tu duda esta en el tipo STRING ya que los tipos Char... que estas intentando utilizar son por pura intuicion y esto no va así.

Te dejo un enlace a un MANUAL con el cual puedes entretenerte y aprender, nuestra intención al participar en el foro es ayudar a resolver dudas con el código, con algún objeto, razonar algún proceso, etc, pero evidentemente no podemos empezar por enseñar VB desde cero, para eso están los manuales.

Si me haces caso y le das un vistazo al enlace verás como en un futuro cercano me lo agradecerás.

Manual de Visual Basic

El capítulo concreto para tu pregunta es Variables y Tipos de Datos

Un saludo y Bienvenido entre nosotros.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 01/10/2010, 12:52
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Conversión de Datos en VB y arreglo de caracteres

Hola!!
"CHART" es tabla o grafico, por eso no te sale... hasta donde sé, un "STRING" es uno o varios caracteres (hasta 255).

Que es lo que quieres convertir? de un Integer a String?
Cuando dices que "voy a convertir un String en un arreglo de caracteres", te refieres a que cada posicion en el arreglo contendrá un caracter del string?

Intenta esto:

Código vb:
Ver original
  1. FOR I=0 TO LEN(strSTRING)
  2.    C(I)=MID(strSTRING,I+1,1)
  3. NEXT I
  #4 (permalink)  
Antiguo 01/10/2010, 13:35
Avatar de eaanillol  
Fecha de Ingreso: septiembre-2010
Ubicación: Bogota - Colombia
Mensajes: 25
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Conversión de Datos en VB y arreglo de caracteres

Bueno primero para Erbuson:
La verdad llevo programando en VB desde hace 2 meses y hasta el momento no había tenido problemas con ninguna aplicación hecha en VB , ni siquiera haciendo conexiones en BD, por que la verdad soy nuevo en lenguaje pero no programando. Sin embargo leí lo que me sugeriste, la pagina es buena y ya la había visitado antes, Gracias.

Ahora para Lokoman, compadre gracias por ser mas comprensivo. Y la respuesta es SI!!! eso es lo que quiero, tratar el STRING como si fuera un arreglo. Voy aprobarlo y enseguida posteo si me sirve. Otra cosa, en esta pagina puedo calificar a los usuarios o las respuestas??
  #5 (permalink)  
Antiguo 01/10/2010, 13:46
Avatar de eaanillol  
Fecha de Ingreso: septiembre-2010
Ubicación: Bogota - Colombia
Mensajes: 25
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Conversión de Datos en VB y arreglo de caracteres

Excelente era lo que necesitaba.
Gracias

  #6 (permalink)  
Antiguo 01/10/2010, 14:48
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Funcion que convierte Cadena en Array

Hola de nuevo, al parecer mi duda fue un problema de comprensión de tu mensaje, y al ver como utilizabas el código mas simple de una manera, digamos algo inadecuada, no se porque se me ocurrio que no tenias demasiada experiencia en VB

Por ejemplo cuando haces c(i) = "" & i en VB suele hacerse c(i) = cstr(i) ya que resulta mas fácil de 'leer'

De otra parte en vez de MsgBox "" & c(1) lo normal es poner MsgBox c(1)

Y desde luego, no se me ocurrió pensar que lo que pretendías era convertir una cadena de caracteres en un Array ya que de lo contrario te habría aconsejado que utilizaras una funcion genérica incorporada a un módulo o formulario como la siguiente que es similar al Split de VB

Código vb:
Ver original
  1. Public Function StringToChar(Cadena As String) As String()
  2.   ' Convierte Cadena en Array (Elemento 0 no se utiliza)
  3.  ReDim ArrayTemp(Len(Cadena)) As String
  4.   Dim Caracter As Integer
  5.   For Caracter = 1 To Len(Cadena)
  6.     ArrayTemp(Caracter) = Mid$(Cadena, Caracter, 1)
  7.   Next
  8.   StringToChar = ArrayTemp
  9. End Function

Esta funcion se utiliza de la siguiente manera por ejemplo.

Dim Caracteres() As String
Caracteres = StringToChar("Prueba")

y te devuelve
Caracteres(1)="P"
Caracteres(2)="r"
Caracteres(3)="u"
Caracteres(4)="e"
Caracteres(5)="b"
Caracteres(6)="a"

Saludos y disculpa si entendi mal.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #7 (permalink)  
Antiguo 01/10/2010, 15:39
Avatar de eaanillol  
Fecha de Ingreso: septiembre-2010
Ubicación: Bogota - Colombia
Mensajes: 25
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Funcion que convierte Cadena en Array

Bueno esta respuesta es un poco mas elegante y completa, responde mas de lo que necesitaba saber, pero con la anterior era suficiente, Sin embargo voy aprobarla. Si me funciona te aviso.
Gracias

Etiquetas: caracteres, vb, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:41.