Buenas, Ray.
No es tan complicado como parece.
Crea un nuevo proyecto.
_______________________________________
Añade los siguientes controles en el formulario:
TextBox llamado txtFileName
TextBox llamado txtData
CommandButton llamado cmdLoad
CommandButton llamado cmdSave
_______________________________________
Establece las siguientes propiedades del control TextBox llamado txtData:
MultiLine=True
ScrollBars= 2 -Vertical
Copia y pega este código en el editor de código del formulario:
'código ---------------------------------------------------------------------------------------
'-------------------------------
'Nombre: GuardarCargar_Texto.VBP
'Creador: Zoto - www.lawebdelprogramador.com | Foro Visual Basic
'Descripción: Ejemplo para Guardar/Cargar un archivo de texto
'Copyright: Puedes utilizar este código en tus aplicaciones y modificarlo.
' No puedes compilarlo ni distribuirlo.
' Si quieres publicar este código fuente en algun sitio Web,
' contacta primero conmigo:
'
[email protected]
'Espero que te sea de ayuda.
'-------------------------------
Dim nF As Long 'Variable que contiene el número de archivo (FreeFile)
Private Sub cmdLoad_Click()
On Error GoTo LOAD_ERROR 'Nos dirigimos a tal etiqueta en caso de error
Dim Data As String
nF = FreeFile 'Se rellena la variable global nF con FreeFile
'Para abrir un archivo es necesario su nombre (en este caso se encuentra en txtFileName) y su número
'de archivo.
'El número de archivo es como un dorsal en un equipo de basquet.
'El proyecto es el equipo. En un mismo equipo no puede haver dos o más dorsales iguales.
'Entonces en un mismo proyecto no pueden haver dos o más números de archivo (identificadores) iguales.
'En este caso no pasa nada si usamos un número cualquiera.
'FreeFile devuelve un número de archivo libre, es decir, uno que no se ha utilizado aún en el proyecto
'(un dorsal sin jugador).
'En este caso, que solo abrimos un solo archivo en un mismo procedimiento,
'no es necesario llamar a FreeFile. Podría haver escrito 1 como número de archivo.
'No obstante, es muy recomendable acostumbrarse a llamar a FreeFile porque, si en un futuro tenemos
'que abrir más de un archivo a la vez nos será muy útil (evitará repeticiones de números y nos
'ahorrará errores).
'Se comprueba que el archivo existe.
'Si, pasando el archivo, la función Dir devuelve nulo, NO existe. Por lo tanto, se abandona el procedimiento.
If Dir(txtFileName.Text) = "" Then MsgBox "El archivo no existe.", vbCritical + vbOKOnly, "Archivo inexistente": Exit Sub
Open txtFileName.Text For Binary As #nF
Data = Space(LOF(nF)) 'Se rellena la variable con un número de espacios (" ")
'igual al tamaño del archivo. La función LOF() devuelve el
'tamaño del archivo abierto, pasando su número, en este caso nF (FreeFile).
Get #nF, 1, Data 'La variable Data, que actual como Buffer, recoge un número de Bytes del archivo
'igual a su número de carácteres (es decir, todo el archivo, ya que la hemos rellenado
'con una cantidad de espacios igual al tamaño del archivo).
'El uno escrito antes de Data, sirve para indicar a partir de qué Byte empezar
'a recoger datos (en este caso 1, desde el principio del archivo).
Close #nF
'Ahora, la variable Data, ya contiene TODOS los datos del archivo seleccionado (txtFileName.Text).
'Simplemente, los pasamos al TextBox llamado txtData para mostrarlos al usuario:
txtData.Text = Data
'Ya sabemos cargar un archivo de forma binaria (en principio para archivos de texto, pero
'sirva para ARCHIVOS DE CUALQUIER EXTENSIÓN).
MsgBox "Archivo cargado.", vbInformation + vbOKOnly, "Cargado" 'Se informa del éxito
Exit Sub
LOAD_ERROR: 'En caso de error se muestra ventana comunicando al respecto.
MsgBox "Error al cargar archivo de texto.", vbCritical + vbOKOnly, "Error nº " & Err
Err = 0
End Sub
Private Sub cmdSave_Click()
On Error GoTo SAVE_ERROR 'Nos dirigimos a tal etiqueta en caso de error
'(mira cmdLoad_Click para información sobre esto, ya que la mayoría se repite).
Dim Data As String
nF = FreeFile
Data = txtData.Text 'Se asigna a la variable Data el texto del TextBox llamado txtData
'Aquí se abre el archivo pero con la instrucción Append, es decir,
'para el simple propósito de añadir datos al archivo.
Open txtFileName.Text For Append As #nF
Print #nF, Data 'Se añade todo el contenido de la variable Data al archivo (se usa la instrucción Print, que, muy importante,
'deja automáticamente un cambio de línea (vbCrLf) al final de los datos añadidos).
Close #nF
'Ya sabemos guardar un archivo de forma binaria (en principio para archivos de texto, pero
'sirva para ARCHIVOS DE CUALQUIER EXTENSIÓN).
MsgBox "Archivo guardado.", vbInformation + vbOKOnly, "Guardado" 'Se informa del éxito
Exit Sub
SAVE_ERROR: 'En caso de error se muestra ventana comunicando al respecto.
MsgBox "Error al guardar archivo de texto.", vbCritical + vbOKOnly, "Error nº " & Err
Err = 0
End Sub
'código ---------------------------------------------------------------------------------------
Como ves, el código está ampliamente comentado y no tiene, en principio, pérdida alguna.
Si tienes, no obstante, alguna duda o problema con él, coméntamelo.
Espero que esto te ayude.
Nos vemos,
Zoto