Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: rapbyone en 17 Octubre 2014, 16:30 pm



Título: Exportar e importar contenido de varios textbox
Publicado por: rapbyone en 17 Octubre 2014, 16:30 pm
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:

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


Título: Re: Exportar e importar contenido de varios textbox
Publicado por: XresH en 17 Octubre 2014, 16:47 pm
Hola, agrega lineas a medida que vayas queriend agregar, como son pocos sumale algo asi:

Código
  1.        Print #mitexto, Text2
  2.        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.


Título: Re: Exportar e importar contenido de varios textbox
Publicado por: 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
  1. Private Sub Command3_Click()
  2.    Dim mitexto As Integer
  3.    Dim linea as string
  4.    Dim sep as string
  5.  
  6.    sep = "|" 'separador. deberia ser un char que NO esperas que este en los textboxes
  7.    mitexto = FreeFile
  8.    Open "C:\ejemplo.txt" For Output As #mitexto
  9.        linea = Text1.text + sep + Text2.text + sep + Text3.text
  10.        Print #mitexto, linea
  11.    Close #mitexto
  12. End Sub
  13.  

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!


Título: Re: Exportar e importar contenido de varios textbox
Publicado por: rapbyone en 21 Octubre 2014, 14:07 pm
Hola!

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

Código
  1. Private Sub Command3_Click()
  2.    Dim mitexto As Integer
  3.    Dim linea as string
  4.    Dim sep as string
  5.  
  6.    sep = "|" 'separador. deberia ser un char que NO esperas que este en los textboxes
  7.    mitexto = FreeFile
  8.    Open "C:\ejemplo.txt" For Output As #mitexto
  9.        linea = Text1.text + sep + Text2.text + sep + Text3.text
  10.        Print #mitexto, linea
  11.    Close #mitexto
  12. End Sub
  13.  

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:

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


Título: Re: Exportar e importar contenido de varios textbox
Publicado por: rapbyone en 21 Octubre 2014, 16:28 pm
lo conseguí, de una manera muy engorrosa, pero efectiva, aquí les dejo el código y la explicación:

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