Exportar e importar contenido de varios textbox

Iniciado por rapbyone, 17 Octubre 2014, 16:30 PM

0 Miembros y 2 Visitantes están viendo este tema.

rapbyone

Amigos, aqui de nuevo con algunas consultas de un pequeño proyecto que estoy desarrollando, el tema es el siguiente.

Tengo 3 textbox, lo que quiero es poder almacenar a traves de un command button el contenido de cada textox en una linea de un archivo de texto luego a través de otro command button recuperar esa información y volver a rellenar los 3 textbox.

con este código, solo consigo hacerlo de a uno a la ves:

Private Sub Command3_Click()
   Dim mitexto As Integer
   mitexto = FreeFile
   Open "C:\ejemplo.txt" For Output As #mitexto
       Print #mitexto, Text1
   Close #mitexto
End Sub


Gracias por su ayuda amigos :D

XresH

Hola, agrega lineas a medida que vayas queriend agregar, como son pocos sumale algo asi:

Código (vb) [Seleccionar]
       Print #mitexto, Text2
       Print #mitexto, Text3


Eso para escribir en el txt.

si fueran muchos mas podrias usar otro tipo de estructuras pero no es necesario complicarse mas.
Para recuperar los datos es similar, si compartis como lo tenes hecho te ayudo a acomodarlo, pero basicamente la idea es la misma.

Saludos.
[ - Si eres programador y quieres que tus proyectos esten en mi blog(con o sin source), consúltame! - ]
Entra A Mi Blog De Programación | | Dudas en este post :| | >>Clic para ir al Post<<

MCKSys Argentina

Hola!

Puedes guardar los 3 en 1 linea, pero necesitarás un char que haga de separador:

Código (vb) [Seleccionar]

Private Sub Command3_Click()
    Dim mitexto As Integer
    Dim linea as string
    Dim sep as string

    sep = "|" 'separador. deberia ser un char que NO esperas que este en los textboxes
    mitexto = FreeFile
    Open "C:\ejemplo.txt" For Output As #mitexto
        linea = Text1.text + sep + Text2.text + sep + Text3.text
        Print #mitexto, linea
    Close #mitexto
End Sub


Para recuperar, lees la linea, usas Split() sobre la misma usando el separador y en la matriz resultante tendrás los 3 strings de los textos.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


rapbyone

#3
Cita de: MCKSys Argentina en 17 Octubre 2014, 17:01 PM
Hola!

Puedes guardar los 3 en 1 linea, pero necesitarás un char que haga de separador:

Código (vb) [Seleccionar]

Private Sub Command3_Click()
   Dim mitexto As Integer
   Dim linea as string
   Dim sep as string

   sep = "|" 'separador. deberia ser un char que NO esperas que este en los textboxes
   mitexto = FreeFile
   Open "C:\ejemplo.txt" For Output As #mitexto
       linea = Text1.text + sep + Text2.text + sep + Text3.text
       Print #mitexto, linea
   Close #mitexto
End Sub


Para recuperar, lees la linea, usas Split() sobre la misma usando el separador y en la matriz resultante tendrás los 3 strings de los textos.

Saludos!

Estimado, gracias por tu ayuda logre lo que quería gracias a la función que me diste combinándola con el control "CommonDialog" para elegir el nombre y donde guardar el archivo.

El problema es que no logro hacer funcionar el Split() a través de "CommonDialog" para poder importar manualmente el archivo, estaba intentando con este código:

Dim Datos As String
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
Datos = CommonDialog1.FileName
End If

     
   Info = Split(Datos, "|")

   Text1.Text = Info(0)
   Text2.Text = Info(1)


Pero me genera un error. Es lo ultimo y no molesto mas  :-\

Gracias amigos

rapbyone

lo conseguí, de una manera muy engorrosa, pero efectiva, aquí les dejo el código y la explicación:

'Se busca la ruta del archivo que contiene el contenido de los textbox
CommonDialog1.Filter = "Archivos de texto (*.txt)|*.txt"
CommonDialog1.ShowOpen
           
If CommonDialog1.FileName = "" Then Exit Sub

        Text11.Text = CommonDialog1.FileName
' Se abre el archivo usando la ruta obtenida     
Canal = FreeFile 'Buscando un canal libre
   
    'Abriendo el archivo --> "Input"
    Open Text11.Text For Input As Canal
        'Pasando los datos al TexBox
        Text22.Text = Input$(LOF(Canal), #Canal)
    Close Canal 'Cerrando el archivo
' A través de split el archivo es dividido en los textbox   
    Dim Datos As String
    Datos = Text22.Text

Dim Nombre As String
Dim Apellido As String

    Info = Split(Datos, "|")

    Text1.Text = Info(0)
    Text2.Text = Info(1)


Se que debe haber un código mucho mas sencillo y practico, pero a nada :D
muchas gracias