elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Duda con cadenas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con cadenas  (Leído 2,538 veces)
_LooSeR_

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Duda con cadenas
« en: 31 Marzo 2008, 17:27 pm »

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:

Código:
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 ;)


En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Duda con cadenas
« Respuesta #1 en: 31 Marzo 2008, 17:42 pm »

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 )
Código
  1. Public Partial Class MainForm
  2. Public Sub New()
  3. Me.InitializeComponent()
  4.  
  5. Dim ControlDecimal As String, chain As String
  6. chain = "Hola"
  7. ControlDecimal = ControlDecimal & chain.Chars (3)
  8. MessageBox.Show (ControlDecimal)
  9. End Sub
  10. 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


En línea

_LooSeR_

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: Duda con cadenas
« Respuesta #2 en: 31 Marzo 2008, 17:55 pm »

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:
Código
  1. 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 ;)
En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Duda con cadenas
« Respuesta #3 en: 31 Marzo 2008, 18:02 pm »

Weno, si lo q kieres es extraer letra a letra en el ultimo parametro pon un 1 no i ;)

Saludos
En línea

_LooSeR_

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: Duda con cadenas
« Respuesta #4 en: 31 Marzo 2008, 18:02 pm »

Ouch xD jaja Un pequeño gran despiste :P

Gracias!!
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Duda con cadenas
« Respuesta #5 en: 31 Marzo 2008, 18:15 pm »

Como curiosidad aca les dejo otra forma de hacerlo, la unica diferencia es que funciona en base 0

Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.    Debug.Print Split(StrConv("Test", vbUnicode), vbNullChar)(1)
  5. 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.

Código
  1. Private Sub Form_Load()
  2.    Dim svData() As String
  3.    svData = Split(StrConv("Test", vbUnicode), vbNullChar)
  4.  
  5.    Dim i As Long
  6.    For i = 0 To UBound(svData) - 1
  7.       Debug.Print "Character " & i & " = " & svData(i); ""
  8.    Next
  9. End Sub
« Última modificación: 31 Marzo 2008, 18:22 pm por cobein » En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Duda con cadenas
« Respuesta #6 en: 31 Marzo 2008, 18:21 pm »

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)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda de cómo se introducen cadenas en la pila (manualmente). « 1 2 3 »
Análisis y Diseño de Malware
black_flowers 25 12,804 Último mensaje 4 Abril 2011, 10:39 am
por black_flowers
[Duda] Colas en C (Con cadenas).
Programación C/C++
Alan2104 1 3,432 Último mensaje 7 Noviembre 2013, 01:48 am
por edr89
Duda copia cadenas diferente tipo.
Programación C/C++
cartorami 4 2,309 Último mensaje 2 Septiembre 2016, 15:34 pm
por cartorami
Duda cadenas C
Programación C/C++
juanpalomo098 4 2,029 Último mensaje 7 Diciembre 2016, 01:04 am
por juanpalomo098
Cadenas
Programación C/C++
monther 5 3,398 Último mensaje 4 Noviembre 2020, 04:34 am
por monther
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines