Archivos en Visual Basic – Proyectos Archivos

Anuncio
EEssccuueellaa ddee C
Coom
meerrcciioo M
MA
AR
RTTÍÍN
N ZZA
APPA
ATTA
A
TTaallleerr ddee O
Oppeerraacciioonneess IInnffoorrm
mááttiiccaass -- 22000088
VISUAL BASIC – Archivos en Visual Basic – Proyectos Archivos
Este proyecto aborda el tratamiento de archivos planos en Visual Basic. Se trata de tres proyectos
en los cuales se muestra el manejo de este tipo de archivos. También se ve el tratamiento de las
estructuras de datos en base a la definición de tipos definidos por el usuario y la utilización de los
controles CommonDialog.
Archivos 1
Este formulario tiene un
procesador de texto muy simple
(un TextBox con la propiedad
multiline a true y con ambas
barras de desplazamiento), cinco
botones de comando que
permiten manejar archivos de
texto. Según si la casilla de
verificación Escritura está tildada
o no el archivo se abrirá para
escritura o para lectura. El
archivo por omisión (incluido en
el código) se llama Prueba1.txt
No se ha agregado tratamiento
de errores en este proyecto, de modo tal que si el archivo se abre para escritura se deberá escribir
en el área de texto y luego pulsar el botón Write y luego el botón Close. Si por el contrario se
desea leer el archivo habrá que abrirlo para lectura y pulsar el botón Input.
Seguidamente se lista el código fuente de este formulario:
Option Explicit
Dim strArchi As String
Dim intPuerto As Integer
Private Sub cmdArchi_Click(Index As Integer)
Select Case (Index)
Case 0:
If Check1.Value = vbChecked Then
Open App.Path & "\Prueba1.txt" For Append As #intPuerto
Else
Open App.Path & "\Prueba1.txt" For Input As #intPuerto
End If
lblEstado = "Estado Archivo: " & cmdArchi(Index).Tag
Case 1:
Close #intPuerto
lblEstado = "Estado Archivo: " & cmdArchi(Index).Tag
Case 2:
txtArea.Text = Input(LOF(intPuerto), #intPuerto)
lblEstado = "Estado Archivo: " & cmdArchi(Index).Tag
Case 3:
Write #intPuerto, txtArea.Text
lblEstado = "Estado Archivo: " & cmdArchi(Index).Tag
Case Else:
txtArea.Text = ""
End Select
End Sub
Private Sub Form_Load()
intPuerto = FreeFile
End Sub
Se ha resaltado en cyan el código específico de tratamiento de archivos.
Profesora Laura Noussan Lettry
página 1 de 6
EEssccuueellaa ddee C
Coom
meerrcciioo M
MA
AR
RTTÍÍN
N ZZA
APPA
ATTA
A
TTaallleerr ddee O
Oppeerraacciioonneess IInnffoorrm
mááttiiccaass -- 22000088
Archivos 2
Este formulario cuenta también con un
editor de texto y es similar al anterior
salvo por el hecho de que utiliza un tipo
de datos definido por el usuario; es decir
una estructura de datos que permite
obtener datos de la tabla Cargos y
exportar los mismos a un archivo de
texto.
A continuación se lista el código fuente y
se da una pequeña explicación del
mismo.
Option Explicit
Dim intPuerto As Integer
Dim strArchi As String
Dim i As Integer
Estructura de datos. Tipo nuevo,
definido por el usuario.
Se basa en la estructura de la tabla
Cargos.
Luego se define una variable de
este tipo llamada DatosCargos
Private Type DatosCargos
IdCargo As Integer
NbreCargo As String * 12 'utiliza un campo fijo de 12 caracteres
MinSal As Double
MaxSal As Double
End Type
Se abre para
Dim uddtCargos As DatosCargos
escritura (desde el
inicio del archivo, si
Private Sub cmdArchi_Click(Index As Integer)
no existe lo crea)
Select Case (Index)
Case 0:
Open strArchi For Output As #intPuerto
Case 1:
Se lee cada registro del
With datCargos.Recordset
Recordset datCargos (del
Do While Not .EOF
control Data) y se escribe en el
uddtCargos.IdCargo = .Fields("idcargo")
archivo con la sentencia Write
uddtCargos.NbreCargo = .Fields("nbrecargo")
uddtCargos.MinSal = .Fields("minsal")
uddtCargos.MaxSal = .Fields("maxsal")
Write #intPuerto, uddtCargos.IdCargo, uddtCargos.NbreCargo, _
uddtCargos.MinSal, uddtCargos.MaxSal
.MoveNext
Loop
Se abre lectura
End With
Case 2:
Close #intPuerto
Se lee el archivo y
Case 3:
se muestra en el
Open strArchi For Input As #intPuerto
área de texto.
Case 4:
txtArea.Text = Input(LOF(intPuerto), #intPuerto)
End Select
End Sub
Private Sub Form_Load()
intPuerto = FreeFile
strArchi = App.Path & "\cargos.txt"
End Sub
Profesora Laura Noussan Lettry
Al cargar el formulario
se averigua el puerto
del sistema
disponible (FreeFile)
página 2 de 6
EEssccuueellaa ddee C
Coom
meerrcciioo M
MA
AR
RTTÍÍN
N ZZA
APPA
ATTA
A
TTaallleerr ddee O
Oppeerraacciioonneess IInnffoorrm
mááttiiccaass -- 22000088
Archivos 3
Este formulario lleva a cabo el
manejo de archivos con una
interfaz más amigable para el
usuario. Utiliza tres controles
CommonDialog: uno para
seleccionar las opciones de
color de fondo del editor de
texto; otro para establecer la
fuente del texto y otro para
poder manejar los diálogos Abrir
Archivo y Guardar Como.
[Para este tema vea las páginas
58 a 61 de Aprenda Visual
Basic 6.0 como... ]
A continuación se muestra el código fuente .
Option Explicit
Dim intPuerto As Integer
Dim strArchi As String
Private Sub cmdArchi_Click(Index As Integer)
Select Case (Index)
Case 0:
intPuerto = FreeFile
cdlgArchi.DefaultExt = "*.txt"
cdlgArchi.ShowOpen
Open cdlgArchi.FileName For Input As #intPuerto
strArchi = cdlgArchi.FileName
txtArea.Text = Input(LOF(intPuerto), #intPuerto)
Case 1:
Close #intPuerto
Open strArchi For Output As #intPuerto
Write #intPuerto, txtArea.Text
Close #intPuerto
Case 2:
Close #intPuerto
intPuerto = FreeFile
cdlgArchi.ShowSave
Open cdlgArchi.FileName For Output As #intPuerto
Write #intPuerto, txtArea.Text
Close #intPuerto
Case 3:
Close #intPuerto
Case 4:
txtArea.Text = ""
End Select
End Sub
ABRIR ARCHIVO
• Se averigua el puerto disponible
• Se especifica que el cuadro de
diálogo sólo muestre archivos de
texto
• Se muestra el cuadro de diálogo
• Se abre el archivo
• Se captura el nombre del archivo
seleccionado por el usuario
• Se muestra el contenido del
GUARDAR
• Se cierra el archivo
• Se abre para escritura
• Se escribe en él lo que el usuario
escribió en el área de texto.
• Se cierra el archivo
GUARDAR COMO ...
• Se cierra el archivo
• Se averigua el puerto disponible
• Se muestra el cuadro de diálogo
• Se abre un nuevo archivo para
escritura
• Se escribe en este archivo
• Se cierra el archivo
Private Sub mnuFormato_Click(Index As Integer)
Select Case (Index)
Case 0:
cdlgFuente.Flags = cdlCFEffects Or cdlCFBoth
cdlgFuente.ShowFont
txtArea.FontName = cdlgFuente.FontName
txtArea.FontBold = cdlgFuente.FontBold
txtArea.FontItalic = cdlgFuente.FontItalic
txtArea.FontSize = cdlgFuente.FontSize
Profesora Laura Noussan Lettry
página 3 de 6
EEssccuueellaa ddee C
Coom
meerrcciioo M
MA
AR
RTTÍÍN
N ZZA
APPA
ATTA
A
TTaallleerr ddee O
Oppeerraacciioonneess IInnffoorrm
mááttiiccaass -- 22000088
txtArea.FontStrikethru = cdlgFuente.FontStrikethru
txtArea.FontUnderline = cdlgFuente.FontUnderline
txtArea.ForeColor = cdlgFuente.Color
Case 1:
cdlgColor.Flags = cdlCCFullOpen
cdlgColor.ShowColor
txtArea.BackColor = cdlgColor.Color
End Select
End Sub
Un ejemplo Ejecución del formulario:
Se escribe en el editor
Se selecciona el título de menú
Fuente y se establecen estas
propiedades
Así queda el editor
Profesora Laura Noussan Lettry
página 4 de 6
EEssccuueellaa ddee C
Coom
meerrcciioo M
MA
AR
RTTÍÍN
N ZZA
APPA
ATTA
A
TTaallleerr ddee O
Oppeerraacciioonneess IInnffoorrm
mááttiiccaass -- 22000088
Se guarda el trabajo utilizando la opción Guardar Como... que ocasiona que aparezca el cuadro
de diálogo Guardar Como...
Abrimos el documento: al pulsar el botón Abrir Archivo aparece el cuadro de diálogo Abrir:
Profesora Laura Noussan Lettry
página 5 de 6
EEssccuueellaa ddee C
Coom
meerrcciioo M
MA
AR
RTTÍÍN
N ZZA
APPA
ATTA
A
TTaallleerr ddee O
Oppeerraacciioonneess IInnffoorrm
mááttiiccaass -- 22000088
El contenido del archivo se muestra en el editor. Se nota que se utilizó la función Input puesto que
el texto aparece encerrado entre
comillas dobles:
Vamos a modificar el color de fondo del editor para lo cual seleccionamos el título de menú Color:
El cuadro de diálogo ha sido establecido
de modo que el usuario pueda
seleccionar también las opciones de los
colores personalizados.
Así es como se ve el Editor de Texto:
Profesora Laura Noussan Lettry
página 6 de 6
Descargar