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

Desconcatenar!

Estas en el tema de Desconcatenar! en el foro de Visual Basic clásico en Foros del Web. Hola!! Amigos gracias por la ayuda hasta el momento ahora tengo una duda... Por ejemplo tengo 5 text text1 text2 text3 text4 text5 Si a ...
  #1 (permalink)  
Antiguo 31/03/2008, 10:35
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Busqueda Desconcatenar!

Hola!!

Amigos gracias por la ayuda hasta el momento ahora tengo una duda...

Por ejemplo tengo 5 text
text1
text2
text3
text4
text5

Si a eso text les escribo informacion y la guardo en la base de datos concatenados, luego si kiero solo mostrarlos "desconcatenados" como se hace :(

Nada de lo capturado en esos text sera mi criterio de busqueda realmente, asi que no me preocupa.
La situacion es q quiero que luego cuando haga una busqueda pueda mostrarlo separado no un solo campo.

No se si me explique..
Alguien me ayuda?
Gracias
  #2 (permalink)  
Antiguo 31/03/2008, 10:44
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Desconcatenar!

Hola!!

Eso depende de cómo los guardes en la base de datos, si los guardas sin separador

text1text2text3text4text5

veo muy dificil que después puedas recuperar los datos por separado ( ano ser que la longitus de cada TextBox sea exactamente igual), pero si los guardas con un separador (coma, dos puntos, espacio.. etc)

text1,text2,text3,text4,text5

los puedes recuperar utilizando la función Split.
  #3 (permalink)  
Antiguo 31/03/2008, 10:47
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Si pretendo guardarlo usando "," o espacio.

Como funciona el split??

Me guias? gracias eres un sol
  #4 (permalink)  
Antiguo 31/03/2008, 10:54
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Desconcatenar!

Mira el ejemplo, suponemos que la variable "s" es el campo donde guardaste los TextBox separados por comas:

Código:
Private Sub Command1_Click()
Dim s As String
s = "text1,text2,text3,text4,text5"
Dim a() As String
a = Split(s, ",")
For i = LBound(a) To UBound(a)
    List1.AddItem a(i)
Next i
End Sub
a = Split(s, " ")

Si los separaste con espacios sólo sustituye esta línea de código
  #5 (permalink)  
Antiguo 31/03/2008, 10:55
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

digamo q en lugar de colocarlo en un listbox kiero colocarlo cada linea nuevamente en su text ??¡
  #6 (permalink)  
Antiguo 31/03/2008, 10:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: Desconcatenar!

Cita:
Iniciado por Kitty_05 Ver Mensaje
digamo q en lugar de colocarlo en un listbox kiero colocarlo cada linea nuevamente en su text ??¡
Creo que sería más práctico en ese caso tener TextBox indexados...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 31/03/2008, 11:01
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Desconcatenar!

A ver así:

Código:
a = Split(s, ",")
Text1 = a(0)
Text2 = a(1)
Text3 = a(2)
' ....  etc
  #8 (permalink)  
Antiguo 31/03/2008, 11:04
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Disculpa si molesto pero no entendi lo ultimo que quisiste decirme ... :(
  #9 (permalink)  
Antiguo 31/03/2008, 11:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Re: Desconcatenar!

Cita:
Iniciado por Kitty_05 Ver Mensaje
Disculpa si molesto pero no entendi lo ultimo que quisiste decirme ... :(
Puedes seguir el ejemplo que te puso Avellaneda...
Código:
 
Text1 = a(0)
'... etc.
Creo que eso entendiste...

Lo que te quise decir es que sería más práctico usar TextBox indexados, pues así podrías crear un bucle For que recorra cada Text...
Código:
 
For Looping = 0 To Text1.Count - 1
      Text1(Looping) = a(Looping)
Next Looping
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 31/03/2008, 11:11
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Mi idea es la siguiente te explico

Private Sub CmdGuardar_Click()

Set RecSQL = New ADODB.Recordset
RecSQL.Open "select * from datos", BD, adOpenStatic, adLockOptimistic

RecSQL.AddNew
RecSQL.Fields(1).Value = Text1 & " " & Text2 & " " & Text3 & " " & Text4 & " " & Text5 & " "
RecSQL.Update
RecSQL.Close
Set RecSQL = Nothing

End Sub

Private Sub CmdMostrar_Click()
Set RecSQL = New ADODB.Recordset
RecSQL.Open "select * from datos", BD, adOpenStatic, adLockOptimistic
---- HASTA AQUI PUEDO ABRIR LA BASE DE DATOS -----
Luego com hago para mostrar por separado todo lo que esta en el
RecSQL.Fields(1)

End Sub
  #11 (permalink)  
Antiguo 31/03/2008, 11:15
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Desconcatenar!

Hola,o sea primero lo guardas en el campo de la base de datos todo concatenado:

Código:
Private Sub Command1_Click()
Dim s As String, a() As String
s = Text1(0) & "," & Text1(1) & "," & Text1(2) & "," & Text1(3) & "," & Text1(4)
a = Split(s, ",")
End Sub
y despues para desconcatenarlo usas los index de los textbox para acceder tambien al indice de la matriz guardada,y asi mostrar cada dato de la matriz en su correspondiente textbox...

Código:
For i = LBound(a) To UBound(a)
Text1(i) = a(i)
Next i
saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #12 (permalink)  
Antiguo 31/03/2008, 11:23
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Perdon por ser tan cabeza dura pero no comprendo ..... :( entiendo perfectamente como guardarlos juntos todos ...
lo coloque

RecSQL.Fields(1) = Text1 & " " & Text2 & " " & Text3 & " " & Text4 & " " & Text5
a = Split(s, ",") no comprendo porq m as bien..

luego si kiero buscar tendria q indexar la buskeda no comprendo bien esa parte

y lo hizo sin mayor problema
no comprendo donde podria--

For i = LBound(a) To UBound(a)
Text1(i) = a(i)
Next i
  #13 (permalink)  
Antiguo 31/03/2008, 11:30
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Desconcatenar!

jeje bueno,a ver primero tenes que tener en tu formulario una matriz de textbox creada de 5 elementos.o sea text1(0),text1(1)....text1(4).

despues vos escribis los datos en los textbox y los guardas concatenados por un simbolo por ejemplo la ","

Código:
RecSQL.Fields(1).Value = Text1(0) & "," & Text1(1) & "," & Text1(2) & "," & Text1(3) & "," & Text1(4)
y despues guardas en una matriz los datos...

Código:
a = Split(s, ",")
con eso lo guardas..

despues para mostrar,los datos en su correspondiente textbox:

Código:
For i = LBound(a) To UBound(a)
Text1(i) = a(i)
Next i
mas explicado que eso no puedo jeje.

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #14 (permalink)  
Antiguo 31/03/2008, 11:36
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Jajjajajajaj

Disculpa gracias lo voy a intentar como lo pones...
a eso debo ponerle un for?
  #15 (permalink)  
Antiguo 01/04/2008, 07:23
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

i = LBound(a) To UBound(a) -------------------------------> que significan estos dos parametros lbound y ubound
  #16 (permalink)  
Antiguo 01/04/2008, 07:25
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Desconcatenar!

Inicio y final de los elementos de la matriz.

o primero y último

un saludo
  #17 (permalink)  
Antiguo 01/04/2008, 07:31
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Ademas intente guardar
RecSQL.Fields(1).Value = Text1(0) & "," & Text1(1) & "," & Text1(2) & "," & Text1 y me mando error
  #18 (permalink)  
Antiguo 01/04/2008, 07:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Re: Desconcatenar!

Cita:
Iniciado por Kitty_05 Ver Mensaje
Ademas intente guardar
RecSQL.Fields(1).Value = Text1(0) & "," & Text1(1) & "," & Text1(2) & "," & Text1 y me mando error
Donde colocas Text1 sin un elemento de matriz está mal...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 01/04/2008, 07:40
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Mi sentencia es la siguiente

Código:
RecSQL.Open "select * from provs", BD, adOpenStatic, adLockOptimistic
RecSQL.AddNew
RecSQL.Fields(1).Value = Text1(0) & " " & Text2(1) & " " & Text3(2) & " " & Text4(3) & " " & Text5(4) & " " & Text6(5) & " " & Text7(6) & " " & Text8(7) & " " & Text9(8) & " " & Text10(9) & " " & Text11.Text & " " & Text12.Text
a = Split(s, " ")

me manda error no logro guardarlo ....
  #20 (permalink)  
Antiguo 01/04/2008, 07:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Re: Desconcatenar!

Cita:
Iniciado por Kitty_05 Ver Mensaje
Mi sentencia es la siguiente

Código:
RecSQL.Open "select * from provs", BD, adOpenStatic, adLockOptimistic
RecSQL.AddNew
RecSQL.Fields(1).Value = Text1(0) & " " & Text2(1) & " " & Text3(2) & " " & Text4(3) & " " & Text5(4) & " " & Text6(5) & " " & Text7(6) & " " & Text8(7) & " " & Text9(8) & " " & Text10(9) & " " & Text11.Text & " " & Text12.Text
a = Split(s, " ")

me manda error no logro guardarlo ....
La forma como colocas los TextBox está mal. Debería ser:
Código:
 
Text1(0) & Text1(1) & Text1(2) ' y así sucesivamente
¿Cuál es el error que manda?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #21 (permalink)  
Antiguo 01/04/2008, 07:49
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Y si no le pongo q su separador sera el " " como hago para desconcatenarlo :(
  #22 (permalink)  
Antiguo 01/04/2008, 08:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: Desconcatenar!

Cita:
Iniciado por Kitty_05 Ver Mensaje
Y si no le pongo q su separador sera el " " como hago para desconcatenarlo :(
El separador es lo de menos (a no ser que dentro de lo escrito en el TextBox haya un carácter igual). Sólo debes colocar en el Split el carácter que usas como separador...

P.S.: Creo que sería bueno que puedas entender qué es lo que hace el código, así no tendrás problemas para programar cosas más complicadas...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #23 (permalink)  
Antiguo 01/04/2008, 08:27
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Gracias de todo eres muyyyy amable al aclarar mis dudas...
  #24 (permalink)  
Antiguo 01/04/2008, 08:50
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

David disculpa la pregunta ,... pero si uso a = split (s, ",") debo declarar "a" como array cierto ? ...
ese array tendra dimensiones?
  #25 (permalink)  
Antiguo 01/04/2008, 09:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Re: Desconcatenar!

Cita:
Iniciado por Kitty_05 Ver Mensaje
David disculpa la pregunta ,... pero si uso a = split (s, ",") debo declarar "a" como array cierto ? ...
ese array tendra dimensiones?
Sí, debes declararlo como array:
Código:
 
Dim a() As String
Puedes declararlo sin dimensiones...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #26 (permalink)  
Antiguo 01/04/2008, 09:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

hola kitty, la variable a deve ser un array de string y ese array se llena despues que se ejecuta el split lo que produce que el array se redimensione y en cada posicion se guarde un valor de tipo string que sera el resultado de la operacion
ej
dim a as string="1?2?3?4"
dim s() as string
s=split(a,"?")
el resultado es el siguiente:
s(0)=1
s(1)=2
s(2)=3
s(3)=4
  #27 (permalink)  
Antiguo 01/04/2008, 09:06
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Desconcatenar!

Te muestro mi codigo no logro hacer que funcione :( ... me manda error apenas le doy click al boton :(




Código:
Private Sub Command2_Click()
Dim BD As ADODB.Connection
Dim RecSQL As ADODB.Recordset
Dim a() As String, s As String, x() As String, y As String

Set BD = CONECTAR()
Set RecSQL = New ADODB.Recordset
RecSQL.Open "select * from provs", BD, adOpenStatic, adLockOptimistic
RecSQL.AddNew
RecSQL.Fields(1).Value = Text1.Text(0) & Text2.Text(1) & Text3.Text(2) & Text4.Text(3) & Text5.Text(4) & Text6.Text(5) & Text7.Text(6) & Text8.Text(7) & Text9.Text(8) & Text10.Text(9)
s = RecSQL.Fields(1).Value
a = Split(s, ",")

RecSQL.Fields(2).Value = Text14.Text(0) & Text15.Text(1) & Text16.Text(2) & Text17.Text(3) & Text18.Text(4) & Text19.Text(5) & Text20.Text(6) & Text21.Text(7) & Text22.Text(8) & Text23.Text(9) & Text24.Text(10)
x = RecSQL.Fields(2).Value
y = Split(x, ",")

RecSQL.Fields(4).Value = Text30.Text
RecSQL.Fields(5).Value = Text31.Text
RecSQL.Fields(3).Value = Text26.Text

RecSQL.Update
RecSQL.Close
Set RecSQL = Nothing

End Sub
  #28 (permalink)  
Antiguo 01/04/2008, 09:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Re: Desconcatenar!

¿Cuál es el error y en qué linea?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #29 (permalink)  
Antiguo 01/04/2008, 12:03
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Desconcatenar!

fijate bien,estas haciendo un split "," a una cadena que no esta concatenada con el "," te falto poner el "," entre cada textbox........y aparte esta mal puesto,no se escribe Text1.Text(0),se escribe Text1(0).Text...
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
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 23:21.