Hola, explico brevemente el problema. Dentro de un código que manejo con cadenas de carácteres. Busqué como poder indexar los carácteres de una cadena, ya que en otros lenguajes se podía y encontré que era mediante la función Chars
La cosa es que quiero poder añadirle a una cadena un carácter, y nose si me da fallo al mezclar el tipo string con el tipo char, o porque :S
El caso es que al hacer esta sentencia:
ControlDecimal = ControlDecimal & chain.Chars(i)
Siendo ControlDecimal y chain dos strings.
Quiero añadirle a la cadena ControlDecimal el carácter "i" de la cadena chain.
Me salta un error señalándome "chain" como calificador no válido.
Que debo hacer?? Muchas gracias ;)
Pero tu estas usando VB6 o VB net? por q eso es VB net...
En vb net kedaria asi (aunke para vb net ya esta el subfoo de net :P )
Public Partial Class MainForm
Public Sub New()
Me.InitializeComponent()
Dim ControlDecimal As String, chain As String
chain = "Hola"
ControlDecimal = ControlDecimal & chain.Chars (3)
MessageBox.Show (ControlDecimal)
End Sub
End Class
Y te mostrará la "a" lógicamente, si lo kieres hacer en VB6, tendras q usar alguna función tipo mid, si no te sale te ayudo, pero define si kieres vb6 o net xDD
Salu2 E0N
Ah ok, ya decia yo :P Gracias por la aclaración. Esque busque por internet mil formas, y la que encontré fue esa. Y como tu dices ahora que me doy cuenta ponia que era en .net
Imagino que sera vb6, es un código dentro de access, y me señala vb6.3
Entonces para poder ver los caracteres con la funcion mid(a,b,c) (creo que es asi por lo que he mirado)
Siendo a la cadena, b el caracter donde comienzas a extraer la subcadena, y c los carácteres a coger a partir de b no?
Es un bucle donde trabaja esa sentencia, con lo cual para seleccionar un carácter tendria que poner:
ControlDecimal = ControlDecimal & Mid(chain, i, i)
Eso sería correcto? Si no? Porque le añadimos una cadena a otra cadena, aunque en este caso sea una substring de 1 carácter.
Muchas gracias por la aclaración E0N ;)
Weno, si lo q kieres es extraer letra a letra en el ultimo parametro pon un 1 no i ;)
Saludos
Ouch xD jaja Un pequeño gran despiste :P
Gracias!!
Como curiosidad aca les dejo otra forma de hacerlo, la unica diferencia es que funciona en base 0
Option Explicit
Private Sub Form_Load()
Debug.Print Split(StrConv("Test", vbUnicode), vbNullChar)(1)
End Sub
Edit:
Tambien ya que estamos si quieren convertir una cadena de caracteres a una matriz es una buena forma, no se la velocidad comparado al tipico for con el mid pero el code es mucho mas simple.
Private Sub Form_Load()
Dim svData() As String
svData = Split(StrConv("Test", vbUnicode), vbNullChar)
Dim i As Long
For i = 0 To UBound(svData) - 1
Debug.Print "Character " & i & " = " & svData(i); ""
Next
End Sub
Claro, a diferencia del ascii q escrbe toda la palabra seguida unicode deja las letras normales y corrientes con un 0 entre medias (con cero me refiero a \0 o NULL, ya nos entendemos ;))
Así "Hola" en ascii se kedaria igual, pero al pasarlo a unicode nos kedaria "H \0 \0 o \0 l \0 a \0"
(solo por acalrar conceptos :P)