Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: HJZR4 en 11 Octubre 2007, 22:30 pm



Título: Separar cadenas de un TextBox
Publicado por: HJZR4 en 11 Octubre 2007, 22:30 pm
Me preguntaba que si se podria separar una cadena en dos en un textbox. Por ejemplo:

En un textBox tengo: "Hola, HJZR4"
¿Podría separar "Hola de "HJZR4", y guardarlas cada una en una variable...

Gracias.


Título: Re: Separar cadenas de un TextBox
Publicado por: yofoxD en 11 Octubre 2007, 23:07 pm
usando un split aqui te va un ejemplo:

Código:
Dim cadenacompleta As String
Dim cadenacorta
cadenacompleta = "01-Hola Mundo"
cadenacorta = Split(cadenacompleta, "-")
MsgBox cadenacorta(0)
MsgBox cadenacorta(1)


Título: Re: Separar cadenas de un TextBox
Publicado por: HJZR4 en 11 Octubre 2007, 23:53 pm
un msgBox muestra 01 y el otro Hola mundo, los separa "-" no? :p


Título: Re: Separar cadenas de un TextBox
Publicado por: ~~ en 12 Octubre 2007, 14:20 pm
Si, eso es lo q hace la funcion split, mirate esto:
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/51.htm


Título: Re: Separar cadenas de un TextBox
Publicado por: HJZR4 en 17 Octubre 2007, 23:26 pm
Pues ya temenos estos problemas que te sacan de quicio...

Código:
Private Sub Command1_Click()
Dim Datos As String
    Datos = "Amador/Roldán"
   
Dim Nombre As String
Dim Apellido As String

    Info = Split(Datos, "/")
        Info(0) = Nombre
        Info(1) = Apellido
   

    Text1.Text = Nombre
    Text2.Text = Apellido
End Sub

Alguien puede explicarme porque Text1.Text y Text2.Text muestran el texto en blanco? Osea, nada.. xD


Título: Re: Separar cadenas de un TextBox
Publicado por: Lambda en 17 Octubre 2007, 23:30 pm
Pues ya temenos estos problemas que te sacan de quicio...

Código:
Private Sub Command1_Click()
Dim Datos As String
    Datos = "Amador/Roldán"
   
Dim Nombre As String
Dim Apellido As String

    Info = Split(Datos, "/")
        Info(0) = Nombre
        Info(1) = Apellido
   

    Text1.Text = Nombre
    Text2.Text = Apellido
End Sub

Alguien puede explicarme porque Text1.Text y Text2.Text muestran el texto en blanco? Osea, nada.. xD

Prueba asi

Código
  1. Private Sub Command1_Click()
  2. Dim Datos As String
  3.    Datos = "Amador/Roldán"
  4.  
  5. Dim Nombre As String
  6. Dim Apellido As String
  7.  
  8.    Info = Split(Datos, "/")  
  9.  
  10.    Text1.Text = Info(0)
  11.    Text2.Text = Info(1)
  12. End Sub


Título: Re: Separar cadenas de un TextBox
Publicado por: HaDeS, - en 17 Octubre 2007, 23:47 pm
man:
Código
  1.    Info = Split(Datos, "/")
  2.        Info(0) = Nombre
  3.        Info(1) = Apellido
  4.  
supuestamente estas dando valores al array "Info" con un split, y luego estas volviendo a darle valores que son nulos Info(0) = nulo, Info(1) = nulo...

para que te funcione tenes que darle es el valor a las variables:
Código
  1.    Info = Split(Datos, "/")
  2.        Nombre = Info(0) ''''= Nombre
  3.        Apellido = Info(1) ''''= Apellido
  4.  

saludos ;)


Título: Re: Separar cadenas de un TextBox
Publicado por: HJZR4 en 17 Octubre 2007, 23:47 pm
Correcto! Funciona... Puedes explicarme el porqué? :S:S:S


Título: Re: Separar cadenas de un TextBox
Publicado por: HaDeS, - en 17 Octubre 2007, 23:54 pm
Correcto! Funciona... Puedes explicarme el porqué? :S:S:S
xD a quien preguntas? a Lambda o a mi?  :-X, weno aunque no me preguntes a mi te respondo :P

checa de nuevo tu codigo
Código
  1. Private Sub Command1_Click()
  2. Dim Datos As String
  3.    Datos = "Amador/Roldán"
  4.  
  5. Dim Nombre As String
  6. Dim Apellido As String
  7.  
  8.    Info = Split(Datos, "/")
  9.        Info(0) = Nombre
  10.        Info(1) = Apellido
  11.  
  12.  
  13.    Text1.Text = Nombre
  14.    Text2.Text = Apellido
  15. End Sub
  16.  

mira en la linea donde haces el split
Código
  1.  
  2.    Info = Split(Datos, "/")
  3.        Info(0) = Nombre
  4.        Info(1) = Apellido
  5.  
y hagamos un debuggeo:

Info = Split(Datos,"/")
en esta parte quedaria que:
Info(0) = "Amador"
Info(1) = "Roldán"

si haces un msgbox ubound(Info), te das cuenta que se llena la variable Info como un array de datos de 2 elementos : "0" y "1", que ya estan asignados correctamente

aca viene el error:
        Info(0) = Nombre
        Info(1) = Apellido
Estas volviendo a sobreescribir los elementos con variables que estan nulas
como nombre y apellido no tiene ningun valor, entonces Info(0) e Info(1) queda con un valor nulo...

si al iniciar el codigo pones Nombre = "1" y Apellido = "2", y lo ejecutas tal cual, en los campos de texto aparecera 1 y 2 respectivamente.

para corregir el problema tenes que darle es el valor del array a las variables:
Nombre = Info(0)
Apellido = Info(1)

creo que es todo :P, saludos ;)


Título: Re: Separar cadenas de un TextBox
Publicado por: HJZR4 en 18 Octubre 2007, 00:46 am
Muy cierto... Por mi parte, muy torpe xDDD
Gracias. Duda resuelta :D


Título: Re: Separar cadenas de un TextBox
Publicado por: Surfiction en 18 Octubre 2007, 02:31 am
Dim Guardar(3) As String

'Suponiendo que se ingreso en el textbox "Nombre ApellidoPaterno ApellidoMaterno"

Private Sub Command1_Click()

Guardar(0)=TextBox1.Text.Split(" ")(0)
Guardar(1)=TextBox1.Text.Split(" ")(1)
Guardar(2)=TextBox1.Text.Split(" ")(2)

Msgbox("Tu nombre es: " + Guardar(0) + " Tu Apellido Paterno Es: "  + Guardar(1) + " Tu Apellido Materno Es: " + Guardar(2))

End Sub


Título: Re: Separar cadenas de un TextBox
Publicado por: HaDeS, - en 18 Octubre 2007, 02:49 am
Te complicas demasiado xD

Código
  1. Private Sub Command1_Click()
  2. Dim guardar(3) As String
  3. If UBound(Split(Text1.Text, " ")) < 2 Then Exit Sub
  4. MsgBox "Tu nombre es: " & Split(Text1.Text, " ")(0) & " Tu apellido paterno es: " & Split(Text1.Text, " ")(1) & " Tu apellido materno es: " & Split(Text1.Text, " ")(2)
  5. End Sub
  6.  

y bueno, que pasa si tiene dos nombres?? hahaha o si es adoptado y no tiene apellidos, nadie sabe...

saludos ;)