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

Guardar y abrir archivos TXT en un Textbox

Estas en el tema de Guardar y abrir archivos TXT en un Textbox en el foro de Visual Basic clásico en Foros del Web. Hola, necesito que cuando mi form se cargue se abra un archivo txt en un TextBox y que cuando pulse algún boton se guarde. He ...
  #1 (permalink)  
Antiguo 07/09/2009, 01:19
 
Fecha de Ingreso: agosto-2008
Mensajes: 89
Antigüedad: 15 años, 8 meses
Puntos: 1
De acuerdo Guardar y abrir archivos TXT en un Textbox

Hola, necesito que cuando mi form se cargue se abra un archivo txt en un TextBox y que cuando pulse algún boton se guarde.
He encontrado los siguientes códigos, pero no se como aplicarlos:
ABRIR:
Código:
Sub AbrirArchivo(Ruta As String, Texto As TextBox)
Dim fnum As Integer
On Error GoTo Ninguno
fnum = FreeFile
Open Ruta For Input As fnum
Do While Not EOF(fnum)
Line Input #fnum, txt
Texto.Text = Texto.Text & vbCrLf & txt
Loop
Close fnum
Ninguno:
End Sub


CERRAR:
Código:
Sub GuardarArchivo(Ruta As String, Texto As TextBox)
Dim fnum As Integer
On Error GoTo Ninguno
fnum = FreeFile
Open Ruta For Output As fnum
Print #fnum, Texto.Text
Close fnum
Exit sub
Ninguno:
Msgbox “Error al guardar el archivo”
End Sub
Utilizo VB.Net
Muchas gracias

Editado:

(El tema es que no se donde poner cada parte del código.....)
  #2 (permalink)  
Antiguo 07/09/2009, 02:27
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Guardar y abrir archivos TXT en un Textbox

Voy a ver si te lo explico que es facil

Sub AbrirArchivo(Ruta As String, Texto As TextBox)

Dim fnum As Integer
' tienes que asignar un numero a cada fichero que abres.
' el primer fichero lleva el numero 0, el segundo 1, etc,
' asi que para guardarlo creas esta variable

On Local Error GoTo Ninguno ' si da error es que no se ha podido abrir y saltamos a Ninguno

fnum = FreeFile ' esto es una ayuda al programador.
'freefile devuelve el siguiente numero vacío que puedes usar para abrir un fichero,
'de modo que no tienes que llevar la cuenta de cuantos has abierto,
' ya que al cerrarlo, el sistema lo descuenta.

' abrimos el fichero, donde Ruta es un string
' que debes cargar con la ruta completa y nombre
' del fichero de texto.
Open Ruta For Input As fnum
' como ves, fnum tambien se usa ahí, para asignar el numero al fichero
' esto hace un bucle hasta que se llegue al final del fichero
Do While Not EOF(fnum)

' vas sacando líneas y añadiendolas a tu textbox.
' usas fnum para referirte al fichero abierto.
Line Input #fnum, txt
' y la línea sacada se carga en txt

' pegas la linea en el textbox 'Texto'
Texto.Text = Texto.Text & vbCrLf & txt

' y asi tantas veces como lineas haya
Loop

Close fnum
' al final cierras el fichero y freefile podra usar el numero de nuevo en otro.

' esto lo añado yo
Goto FinSub

' si hay error
Ninguno:
' mostramos el error
msgbox Err.Number & " - " & Err.Description

Err.Clear
' y limpiamos el error

on local error resume next

FinSub:

on local error goto 0
'quitamos el control de errores
' y salimos

End Sub

Espero haber sido de ayuda. La otra sub te la dejo para que la estudies.

Saludos.
  #3 (permalink)  
Antiguo 07/09/2009, 03:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 89
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Guardar y abrir archivos TXT en un Textbox

No termino de entender lo de limpiar el error. Hasta donde se muestra todo va perfecto.

El problema que tengo es que no tengo experiencia en VBnet y no se aplicarlo! Por favor, dime donde lo tengo que meter para que pueda ir probandolo!
(Quiero que se cargue con el arranque...on load)

Muchas gracias!
  #4 (permalink)  
Antiguo 07/09/2009, 03:28
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Guardar y abrir archivos TXT en un Textbox

El caso es que no sé como adaptar el código para .NET, pero para el uso en VB6 sería:
En el Form_Load

AbrirArchivo "CaminoYNombreDelFicheroTXT", NombreDelControlTextBoxQueQuieresCargar

y al salir lo haces en el Form_Unload o en el Form_QueryUnload, o en la sub de un botón "Salir" que tenga el form, etc.

GuardarArchivo "CaminoYNombreDelFicheroTXT", NombreDelControlTextBoxQueQuieresGuardar

Si no te funcionan las subs, yo hice una conversión de un VB6 a .NET creo que con VB.NET 2003 y la tengo que tener por ahí. Ese proyecto por lo que sé, escribía textos, así que igual, editandolo con el bloc de notas, encuentro una sub que te funcione.
  #5 (permalink)  
Antiguo 07/09/2009, 03:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 89
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Guardar y abrir archivos TXT en un Textbox

El tema es que lo estoy probando y me saltan errores por todas partes!
He limpiado más o menos el código para ir probando y mira....

Sub AbrirArchivo(ByVal Ruta As String, ByVal Texto As TextBox)

Dim fnum As Integer
' tienes que asignar un numero a cada fichero que abres.
' el primer fichero lleva el numero 0, el segundo 1, etc,
' asi que para guardarlo creas esta variable

fnum = FreeFile() ' esto es una ayuda al programador.
'freefile devuelve el siguiente numero vacío que puedes usar para abrir un fichero,
'de modo que no tienes que llevar la cuenta de cuantos has abierto,
' ya que al cerrarlo, el sistema lo descuenta.

' abrimos el fichero, donde Ruta es un string
' que debes cargar con la ruta completa y nombre
' del fichero de texto.
OpenNo se declaró open c:\precios\diesel.txt Error de sintaxisFor Input As fnum
' como ves, fnum tambien se usa ahí, para asignar el numero al fichero
' esto hace un bucle hasta que se llegue al final del fichero
Do While Not EOF(fnum)

' vas sacando líneas y añadiendolas a tu textbox.
' usas fnum para referirte al fichero abierto.
Line Input #fnum, txt
' y la línea sacada se carga en txt

' pegas la linea en el textbox 'Texto'
Texto.Text = Texto.Text & vbCrLf & txt

Loop

Close(fnum)
' al final cierras el fichero y freefile podra usar el numero de nuevo en otro.

End Sub

y asi me salen veintemil errores más.....
  #6 (permalink)  
Antiguo 07/09/2009, 03:34
 
Fecha de Ingreso: agosto-2008
Mensajes: 89
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Guardar y abrir archivos TXT en un Textbox

Vale, yo creo que el problema es que necesito adaptarlo totalmente a VB.Net
Porque por lo que he leido hay muchos errores de expresiones que en VB eran así pero que en VB.Net varian.
Alguien me podría ayudar¿?
  #7 (permalink)  
Antiguo 07/09/2009, 03:53
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Guardar y abrir archivos TXT en un Textbox

Algo he encontrado.

La primera sub, en .NET, creo que sería así:

Sub AbrirArchivo(Ruta As String, Texto As TextBox)

Dim fnum As Integer
' tienes que asignar un numero a cada fichero que abres.
' el primer fichero lleva el numero 0, el segundo 1, etc,
' asi que para guardarlo creas esta variable

On Error GoTo Ninguno ' si da error es que no se ha

podido abrir y saltamos a Ninguno

fnum = FreeFile() ' esto es una ayuda al programador.
'freefile devuelve el siguiente numero vacío que puedes

usar para abrir un fichero,
'de modo que no tienes que llevar la cuenta de cuantos has

abierto,
' ya que al cerrarlo, el sistema lo descuenta.

' abrimos el fichero, donde Ruta es un string
' que debes cargar con la ruta completa y nombre
' del fichero de texto.
FileOpen(fnum, Ruta, OpenMode.Input)
' como ves, fnum tambien se usa ahí, para asignar el numero

al fichero.

' esto hace un bucle hasta que se llegue al final del

fichero
Do Until EOF(fnum)

' vas sacando líneas y añadiendolas a tu textbox.
' usas fnum para referirte al fichero abierto.
txt = LineInput(fnum)
' y la línea sacada se carga en txt

' pegas la linea en el textbox 'Texto'
Texto.Text = Texto.Text & vbCrLf & txt

' y asi tantas veces como lineas haya
Loop

FileClose(fnum)
' al final cierras el fichero y freefile podra usar el

numero de nuevo en otro.

' esto lo añado yo
Goto FinSub

' si hay error
Ninguno:
' mostramos el error
msgbox Err.Number & " - " & Err.Description

Err.Clear
' y limpiamos el error

on error resume next

FinSub:

on error goto 0
'quitamos el control de errores
' y salimos

End Sub


La segunda no he encontrado equivalente, ya que guarda todo el textbox en una sola orden, y mi programa guardaba ListBox, con lo que lo hacía línea alínea así:
PrintLine(NumFichero, "TextoAGuardar")

Pero posiblemente te sirva así:

Sub GuardarArchivo(Ruta As String, Texto As TextBox)
Dim fnum As Integer
On Error GoTo Ninguno
fnum = FreeFile()
FileOpen(fnum, Ruta, OpenMode.OutPut)
PrintLine(NumFichero, Texto.Text)
FileClose(fnum)
Goto FinSub

Ninguno:
Msgbox “Error al guardar el archivo”
Err.Clear
On Error Resume Next

FinSub:

On Error Goto 0

End Sub

Espero que te sirvan así.

Lo de el control de errores es costumbre (o manía) mía.

Siempre declaro todas las variables y uso a mi manera el control de errores, pero no puedo decir que sea la manera correcta por que soy auto-didacta y las cosas las entiendo a mi modo y pocas veces hay quién pueda corregirme.
Si te interesa puedo hacerte un resumen, pero no voy a decir que sea el uso correcto.
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 03:57.