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
Hola, agrega lineas a medida que vayas queriend agregar, como son pocos sumale algo asi:
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.
Hola!
Puedes guardar los 3 en 1 linea, pero necesitarás un char que haga de separador:
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!
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:
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
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