Manejo de Archivos en Visual Basic y Funciones Propias

download Manejo de Archivos en Visual Basic y Funciones Propias

of 19

Transcript of Manejo de Archivos en Visual Basic y Funciones Propias

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Seccin de tutoriales y manualesvb

    Manejo de Archivos en visual basic - parte 7Volver al ndice

    En esta parte se describen losconceptos bsicos para eltratamiento y acceso a los archivosen visual basic

    ->> Contenido

    1 - introduccin

    2 - Sentencia Open

    3 - Archivos secuenciales

    4 - Diferentes tipos de acceso ( Append - Input Output )

    5 - Leer datos de un archivo utilizando Line Input

    6 - Ejemplo para leer un archivo de texto con Line Input

    7 - Leer el contenido de un archivo de texto con la funcin Input

    8 - Escribir datos en archivos de texto ( Print y Write )

    9 - Archivos de acceso aleatorios o directos

    10 - Grabar datos en archivos de acceso aleatorio ( Instruccin Put )

    11 - Leer datos en archivos aleatorios ( instruccin Get )

    12 - Posicionarse en un registro ( Seek )

    Inicio Ejemplos vb Ocx - Activex Api vb Tutoriales - Manuales Cdigo fuente

    Ejemplos vb.net

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    13 - Funciones propias de vb para el manejo de ficheros y directorios

    14 - Funcin Dir para buscar archivos y carpetas

    15 - Funcin FileCopy para copiar

    16 - Funcin MkDir para crear directorios

    17 - Funcin kill para eliminar

    18 - Funcin FileLen

    19 - Funcin Name

    20 - Funcin GetAttr y SetAttr para atributos

    21 - Funcin RmDir para renombrar

    1 -introduccin

    En esta seccin se ve un repaso bsico de las tres formas de trabajar con diferentes tipos dearchivos en visual basic: Archivos secuenciales, archivos aleatorios y archivos binarios.

    Por ltimo en el final de la seccin, se describe como utilizar sentencias y funciones propias devisual basic para trabajar con archivos y directorios del sistema operativo, como por ejemplo lasentencia Dir para buscar ficheros, Filecopy para copiar , ChDir, Mkdir para crear carpetas yalgunas otras funciones relacionadas.

    2 - Sentencia Open

    Esta sentencia es la encargada de abrir o crear un archivo, ya sea para leer datos del mismo,sobre escribirlos y/o para agregarle datos.

    Esta sentencia tiene una serie de parmetros que varan de acuerdo a lo que queramos hacer.

    Por ejemplo :

    Este ejemplo abre un archivo para poder acceder a los datos que contenga en su interior.cuando decimos abrir, estamos diciendo que se encuentra actualmente abierto y alojado en lamemoria ram para poder manipularlo.

    En el primer parmetro indicamos el path del archivo en el que queremos trabajar.

    Luego la palabra "As #1" indica el nmero de archivo que estamos utilizando. Este nmero loasignamos nosotros y va desde el rango 1 al 511. El "nmero de archivo" se utiliza para poderdiferenciar al archivo en el cdigo. Cada archivo que se encuentra abierto no se puede asignarun nmero de archivo igual, ya que nos dara un error en tiempo de ejecucin.

    Open "c:\prueba.txt" For Input As #1

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Por ejemplo no podramos hacer esto:

    Una vez que terminamos de trabajar con un archivo que se encuentra abierto y que no lovamos a utilizar mas, debemos cerrarlo. para ello se utiliza la sentencia Close seguido delnmero de archivo que lo identifica.

    Por ejemplo:

    Esto cerrar al archivo abierto que anteriormente le asignamos el nmero de archivo 2.Tambin si tengo 3 archivos abiertos podra hacer lo siguiente:

    Si utilizamos la sentencia Close sin ningn parmetro, o mejor dicho ningn nmero de archivo,se cerrarn todos los archivos cargados en memoria por nuestra aplicacin (los que nosotrosabrimos con Open).

    Por lo general, si trabajamos con varios archivos abiertos simultneamente, es aconsejableutilizar la sentencia Close sin ningn parmetro, de este modo cuando termine de ejecutarse elprocedimiento se cerrarn todos los archivos abiertos.

    Hay una funcin en Visual basic llamada FreeFile. Esta funcin lo que hace es darnos unnmero de archivo que est libre y que se pueda usar, para que de este modo no intentamosabrir uno est siendo utilizado, y evitar un error en tiempo de ejecucin. Para usar la funcines muy fcil, por ejemplo:

    3 - Archivos secuenciales

    Los archivos secuenciales se denominan de esta manera por que la forma de escribir y leer losdatos en un archivo es, desde el principio hasta el fin del archivo, es decir, si yo quisieraacceder a un determinado dato del archivo y este dato se encuentra en la mitad del archivo,para llegar a ese dato necesito pasar por todos los dems datos, de forma secuencial.

    Por lo general se suelen utilizar los archivos secuenciales, para trabajar con archivos quecontengan una estructura de datos no muy compleja. por que por ejemplo, si utilizramos unarchivo para almacenar 50000 nombres con sus respectivos datos (apellido, telfono, direccin

    Open "archivo1.txt" For Input As #1Open "otroarchivo1.txt" For Input As #1

    Close #2

    Close #1, #2, #3

    Dim NumeroArchivo As IntegerNumeroArchivo = FreeFileOpen "La ruta de un archivo" For Input As #NumeroArchivo

    usuarioHighlight

    usuarioHighlight

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    etc...) , este mecanismo resultara ineficiente, ya que si quisiera recuperar por ejemplo elregistro n 3650, para leer este dato tendra que pasar previamente por los 3649 registrosanteriores a este, haciendo mas lento el acceso y por lo tanto desperdiciando recursos delsistema.

    4 - Diferentes tipos de acceso

    Append: esta sentencia se utiliza para agregar informacin a un archivo de texto.

    Ejemplo :

    Si el archivo ya contiene datos, se le agregarn al mismo al final del archivo, si no contenadatos los agrega igual. Si el archivo no existe, lo crea y le agrega los datos.

    Input: la sentencia Input se utiliza para leer datos de un archivo de texto, ejemplo:

    Este ejemplo abre un archivo para leer los datos del mismo. En las prximas lneas veremosejemplos de como leer los datos , escribir y guardar.

    Una cosa importante con respecto a leer datos de un archivo con Input es que, si el archivoque queremos abrir, no existe, se producir un error en tiempo de ejecucin al intentar abrirun archivo que no existe, por eso debemos verificar la ruta del mismo siempre que est bienescrita en la sentencia Open y evitarnos dolores de cabeza, y simpre aadir algn manejador deerror para este caso

    Output: esta sentencia se utiliaza para crear un archivo de texto y grabar datos. Esta es igualque Append salvo por un gran detalle:

    Output crea el archivo y le agrega informacin, pero si el archivo exista y contena informacinprevia, sobre escribe todos los datos del archivo por los datos nuevos, perdiendo losanteriores datos.

    Si accedemos con Output a un archivo que no existe, no se produce un error, si no que se creadicho archivo.

    Conclusin : si vamos a aadir datos a un archivo existente (para actualizarlo por ejemplo) hayque utilizar la sentencia Append. si vamos a crear un archivo vaco y nuevo para grabarnuevos datos, hay que utilizar la sentencia Output. si vamos a abrir un archivo para leerdatos utilizamos la sentencia Input.

    5 - Leer datos de un archivo utilizando Line Input

    C omo se coment antes , para leer datos de un archivo se utiliza la sentencia Input.pero para leer los datos del archivo y poder utilizarlos en nuestro programa se utilizan 2sentencias o instrucciones: Line Input e Input.

    Ejemplo:

    Open "c:\miarchivo.txt" For Append As #1

    Open "c:\miarchivo.txt" For Input As #2

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    En el ejemplo anterior aparece una funcin nueva llamada EOF. Esta funcin significa End OfFile o fin de archivo.

    Cuando abrimos un archivo para leer informacin con Input, debemos saber en que momentollegamos al final del archivo, por que de lo contrario la sentencia Line Input o Input seguiraleyendo lneas donde no existen datos despus del fin del archivo, y por lo tanto se produciraun error en tiempo de ejecucin por querer leer un dato que no existe.

    Mediante la condicin Not Eof(1) leeremos los datos hasta que llegue al final del archivo, y encada pasada del bucle While se almacenar en la variable mivariable, lnea por lnea los datosdel mismo. Es evidente que como est planteado el ejemplo habra que manipular los datosledos y agregar otras instrucciones, por que en este ejemplo la variable mivariable soloalmacenara los datos de la lnea que est leyendo y borrando los datos de las lneas quealmacen anteriormente. Mas adelante veremos como solucionar esto.

    conclusin : para leer datos de un archivo se utiliza la sentencia Line Input y luego de la comadebemos poner una variable nuestra para almacenar los datos que se van leyendo de la lneaactual

    6 - Ejemplo para leer un archivo de texto utilizando Line Input

    Lo siguiente, lee un archivo de texto lnea por lnea, y carga el contenido en un control ListBox.colocar un control List1, un Command1 y un Text1 para indicar el path del archivo a leer:

    Dim mivariable As StringOpen "c:\nombres.txt" For Input As #1While Not EOF(1)Line Input #1, mivariableWendClose #1

    Line Input #1, nuestravariable

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Este otro ejemplo, lo que hace es leer un archivo de texto para contar las lneas del mismo

    Colocar un command1 en el formulario y pegar el siguiente cdigo fuente

    Option Explicit

    Private Sub Command1_Click()On Error GoTo errSubDim n_File As IntegerDim Linea As String 'Elimina el contenido del listbox List1.Clear 'Nmero de archivo libre n_File = FreeFile 'Abre el archivo para leer los datos Open text1.Text For Input As n_File 'Recorre linea a linea el mismo y aade las lineas al control List Do While Not EOF(n_File) 'Lee la linea Line Input #n_File, Linea List1.AddItem Linea Loop Exit SuberrSub:'errorMsgBox "Nmero de error: " & Err.Number & vbNewLine & _ "Descripcin del error: " & Err.Description, vbCriticalEnd SubPrivate Sub Form_Load()Command1.Caption = " Cargar en Listbox "End Sub

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    7 - Leer el contenido de un archivo de texto con la funcin Input

    La funcin input, a diferencia de Line Input que Lee por lnea, Input lee todo el contenido delarchivo de una sola ves, es decir no necesitamos, como en el ejemplo anterior, utilizar unbucle.

    El modo de usarlo es el siguiente:

    Primero se abre el archivo con Open, por ejemplo:

    Public Function Contar_Lineas(ByVal strTextFile As String) As Long Dim F As Integer Dim Lineas As Long Dim str_Linea As String ' Nmero de archivo libre F = FreeFile ' Abre el archivo de texto Open strTextFile For Input As #F 'Recorre todo el archivo de texto _ linea por linea hasta el final Do 'Lee una lnea Line Input #F, str_Linea ' Incrementa la cantidad de lineas leidas Lineas = Lineas + 1 ' Leer hasta que llegue al fin de archivo Loop While Not EOF(F) ' Cierra el archivo de texto abierto Close #F ' Retorna a la funcin el nmero de lineas del fichero Contar_Lineas = LineasEnd FunctionPrivate Sub Command1_Click() Dim Path As String Path = InputBox(" Ingrese la ruta de un archivo de texto ", _ " Contar lneas ") If Path = vbNullString Then Exit Sub MsgBox " Cantidad de lineas: " & Contar_Lineas(Path)End Sub

    Open Path_Archivo For Input As #1

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Luego se asigna a una variable, el contenido que devolver la funcin Input:

    Contenido = Input(LOF(1), #1)

    Un ejemplo:

    Lo siguiente lee el contenido de un archivo txt y lo carga en un textBox multilnea

    Colocar un TextBox llamado txt_Path ( para especificar la ruta del archivo ).

    El Textbox que mostrar los datos del fichero, colocarle el nombre txt_Contenido

    Cdigo en un botn:

    8 - Escribir datos en archivos de texto

    Para escribir datos en archivos de texto se utiliza la sentencia Print y Write.

    Ejemplo:

    On Error GoTo Err_SubDim n_File As IntegerDim Contenido As String

    'Nmero de archivo libre n_File = FreeFile 'Abre el archivo indicado Open txt_Path For Input As n_File 'Lee todo los datos del archivo y lo almacena en la variable Contenido = Input$(LOF(n_File), #n_File) 'Cierra el archivo abierto Close n_File 'Carga el contenido de la variable en el TextBox txt_Contenido = Contenido Exit SubErr_Sub: MsgBox Err.Description, vbCritical

    Dim nombre As String Dim edad As Integer Dim telefono As String Open "c:\miarchivo.txt" For Append As #1

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    En este ejemplo agregamos datos a un archivo existente llamado miArchivo.txt con lasentencia Print.

    Primero abrimos el archivo con Open. luego la sentencia Print lleva 2 parmetros. el primeroindica el archivo que estamos manipulando (el archivo n1, dentro del cdigo), el segundoparmetro indica los datos que se agregarn en el mismo. En el segundo parmetro podemosponer un dato directamente (una cadena, nmero, etc...),, por ltimo cerramos el archivo.

    Escribir datos con la sentencia Write

    A diferencia de Print, la sentencia Write escribe datos en un archivo separados por comas.

    Ejemplo:

    Como podemos ver la sentencia Write escribe los datos en el archivo separados por coma. En laprimera lnea escribir el contenido de las variables nombre y apellido . Tambin se puedenpasar los datos directamente a Write sin usar variables, por ejemplo:

    Nota importante: cuando escribimos datos con la sentencia Print se utiliza la sentencia LineInput para leer los datos del archivo. En cambio cuando escribimos datos separados por comascon la sentencia Write debemos utilizar la sencia Input

    Para que esta pgina no sea tan extensa, he armado 10 ejercicios que utilizan todo lo visto

    Print #1, "esta es una lnea" Print #1, "esta es otra lnea" Print #1, nombre, edad, telefonoClose #1

    Dim nombre As StringDim apellido As String apellido = "Peres"nombre = "Carlos"Open App.Path & "\Archivo.txt" For Output As #1Write #1, nombre, apellidoClose #1

    Write #1, "Un dato", "Otro dato", "Otro mas"

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    hasta aqu, o sea el tema relacionado a los archivos secuenciales. Dentro del cdigo seencuentra detallado cada paso y lo pods descargar al final de esta pgina.

    9 - Archivos aleatorios o directos

    A diferencia de los archivos secuenciales, los archivos aleatorios almacenan datos en formade registros. Como habamos dicho en el captulo anterior para leer datos de un archivosecuencial haba que leer todo el archivo, es decir que no podamos leer por ejemplo los datosque estuviesen en la lnea 35 del mismo sin antes pasar por todos los datos anteriores, por esosu nombre de archivo secuencial.

    En cambio los archivos aleatorios, tambin llamados archivos directos, almacenan los datos conuna estructura diferente. Los datos se guardan en registros mediante una estructura definida detipo Type (estructura definida por nosotros) tambin llamada UDT

    Por ejemplo si tuviesemos 25 registros, cada uno con datos (apellido, email, telefono,etc..), yquisiera acceder al registro 17, puedo leer los datos del registro 17 sin tener que leer los 16registros anteriores, ganando con ello mas velocidad y teniendo una estructura de datosdefinida.

    Para abrir un archivo aleatorio para trabajar con l, se utiliza la sentencia Open con algunoscambios en lo que se refiere a los archivos secuenciales

    Ejemplo:

    Como podemos ver para abrir un archivo de acceso aleatorio se utiliza la palabra Random(aleatorio). Luego debemos indicar el nmero de archivo para identificarlo, y por ltimo unaopcin nueva : Len.

    cada registro en el archivo, que es una estructura de datos Type, tiene que tener una longitudfija. Mediante la funcin Len de visual Basic debemos indicar el tamao de la estructura dedatos que vamos a utilizar. para que quede mas claro un ejemplo:

    Primero definimos una estructura de datos:

    Despus creamos una variable llamada clientes de tipo t_clientes

    open "elarchivo.dat" for random as #1 len = len(mivariable)

    Private Type t_clientesnombre As String * 20apellido As String * 15direccin As String * 30edad As IntegerEnd Type

    Dim clientes As t_clientes

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    ahora abrimos nuestro archivo, y en el parmetro de la funcin Len le pasamos la variable paraque visual basic calcule el tamao de la estructura t_clientes

    La estructura de datos debe tener un tamao fijo, no datos variables como en el caso de losarchivos secuenciales, de ah que se indicara en el Type en las variables mediante el asteriscoen el caso de los String.

    En cada campo de la estructura de datos debemos indicar el tamao de la variable. En el casodel campo nombre de tipo string le hemos asignado una longitud fija de 20 bytes, en elapellido 15 y en la direccin 30 bytes. La variable o el campo edad que es de tipo integer, nodebemos indicar el tamao de la variable, ya que sabemos que un nmero integer ocupa 2bytes.

    En total esta estructura t_clientes tiene una longitud de 67 bytes (30 + 20 + 15 + 2 ).

    Si no indicramos en la sentencia Open el tamao de la estructura, visual basic, por defectoasumira la estructura de un tamao de 128 bytes, y si nuestra estructura tendra mayortamao ocurrira un error en tiempo de ejecucin, por lo cual siempre debemos utilizar lafuncin len para calcular el tamao de la misma.

    10 - Grabar datos en archivos aleatorios

    Para grabar datos en un archivo de acceso aleatorio se utiliza la sentencia Put.

    Un ejemplo paso a paso:

    primero declaramos una estructura de datos que contendr la informacin de cada registro:

    Luego creamos una variable que sea de tipo t_empleados.

    Ahora abrimos el archivo e indicamos en la funcin Len el tamao de la estructura

    Ahora le asignamos un valor a cada campo de la estructura de esta forma:

    Open "datos.dat" For Random As #1 Len = Len(clientes)

    Private Type t_empleadosnombre As String * 15apellido As String * 15direccin As String * 30edad As IntegerEnd Type

    Dim empleados As t_empleados

    Open "datos.dat" For Random As #1 Len = Len(clientes)

    empleados.nombre = "Carlos"

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Ahora grabamos en el registro n1 del archivo los datos de esta forma:

    Si queremos grabar mas datos, por ejemplo en el registro n 2 del archivo hacemos losiguiente:

    como vemos ver la sentencia Put lleva 3 parmetros. El primero indica el numero de archivoabierto en el cual estamos trabajando. en el segundo debemos indicar el nmero de registro enel que se grabarn los datos. Si no ponemos el nmero de registro, los datos se grabarn en elltimo registro. Por ltimo en el tercer parmetro le pasamos la variable asociada con laestructura de datos.

    11 - Leer datos en archivos aleatorios

    Para leer los registros o datos de un archivo aleatorio se utiliza la sentencia Get. Estasentencia es exactamente igual que Put, pero la diferencia es que en vez de grabar los datoslos recupera para poder utilizarlos luego en el programa.

    12 - Posicionarse en un registro determinado

    Supongamos que tenemos un archivo aleatorio que contiene 452 registros. Ahora queremosrecuperar los datos del registro 258. Para posicionarse en un determinado registro hay unasentencia , hay una sentencia llamada Seek. Ejemplo:

    si queremos posicionarnos en un registro determinado, pero en vez de leer, queremos grabardatos, hacemos la misma operacin pero con la sentencia Put:

    empleados.apellido = "Martinez"empleados.direccin = "Avenida 9 de julio n 2054"empleados.edad = 45

    Put #1, 1, empleados

    empleados.nombre = "Mara"empleados.apellido = "Gonzales"empleados.direccin = "Avenida 13 n 1100"empleados.edad = 35Put #1, 2, empleadosClose #1

    Seek #1, 258Get #1, , mivariable

    Seek #1, 258

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Nota: Desde este enlace pods ver un simple cdigo fuente de una Agenda de contactosutilizando Archivos Directos - Aleatorios

    13 - Funciones propias de vb para el manejo de ficheros y directorios

    Visual basic posee varias funciones para manejar archivos y directorios de nuestro sistema. Lasprincipales son.

    14 - Funcin Dir

    La funcin Dir se utiliza o para buscar archivos y devuelve una cadena que representa elnombre de un archivo o directorio de acuerdo a un determinado patrn de bsqueda. Lasintaxis de la funcin es:

    En el parmetro ruta debemos indicar el path de un archivo, directorio o unidad. Si el path noexiste, la funcin Dir devuelve una cadena vaca.

    En el parmetro atributos podemos especificar los siguientes:

    vbnormal : cualquier atributo de archivo.

    vbreadonly : archivos de solo lectura.

    vbhidden: archivos ocultos

    vbsystem : archivos de sistema

    vbvolume : etiqueta de volumen de una unidad

    vbdirectory : directorios

    Ejemplo:

    Si el archivo existe Dir devuelve "autoexec.bat"

    Tambin podemos utilizar los comodines * y ? para filtrar bsquedas.

    En este ejemplo devuelve el primer archivo exe que encuentra, si es que existe.

    Put #1, , mivariable

    Dir (ruta, atributos)

    Archivoabuscar = Dir("c:\autoexec.bat")

    Archivoabuscar = Dir("c:\windows\*.exe")

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    En este ejemplo la funcin Dir devuelve directorios adems de archivos

    El nico inconveniente de esta funcin es que siempre devuelve el primer archivo queencuentra. Para que contine buscando los dems archivos debemos poner la funcin sinparmetros. Ejemplo

    En el ejemplo anterior buscar todos los archivos exe en el directorio c:\. cuando ya noencuentre mas devolver una cadena vaca y saldr del bucle While.

    Este otro ejemplo verifica si un archivo existe:

    El siguiente enlace muestra un ejemplo de como utilizar la funcin Dir para buscar archivos ytambin ordenarlos enforma alfabtica y luego agregar la lista en un control Listbox

    Este otro enlace muestra como buscar ficheros mediante el Api de windows

    15 - Funcin FileCopy

    FileCopy nos permite copiar archivos. Esta funcin es muy fcil de usar. ejemplo:

    Archivoabuscar = Dir("c:\, vbdirectory")

    Dim archivo As Stringarchivo = Dir("c:\*.exe")While archivo ""archivo = DirWend

    Private Function Verificar_Existe(path) As Boolean If Len(Trim$(Dir$(path))) Then Verificar_Existe = True Else Verificar_Existe = False End If MsgBox Verificar_Existe End FunctionPrivate Sub Form_Load()Call Verificar_Existe("c:\autoexec.bat")End Sub

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    FileCopy "origen", "destino"

    Nota: si el archivo existe la funcin lo sobre escribe.

    16 - Funcin MkDir

    Esta funcin se utiliza para crear directorios, pero crea un directorio por vez, es decir que nocrea varios niveles al mismo tiempo. La sintaxis es:

    MkDir "Ruta directorio"

    para poder crear un Directorio que contiene varios subdirectorios, podemos hacer lo siguiente:

    El ejemplo despliega un InputBox para ingresar el path a crear:

    Private Sub Command1_Click()Dim i As IntegerDim Array_Dir As VariantDim Sub_Dir As StringDim El_Path As StringEl_Path = InputBox("Escriba la ruta del directorio a crear" & _ "con los subdirectorios", " Crear varios niveles de directorios") If El_Path = vbNullString Then Exit Sub 'Desglosa el path Array_Dir = Split(El_Path, "\") El_Path = vbNullString 'Recorre el array anterior para ir creando uno por uno For i = LBound(Array_Dir) To UBound(Array_Dir) Sub_Dir = Array_Dir(i) If Len(Sub_Dir) > 0 Then El_Path = El_Path & Sub_Dir & "\" If Right$(Sub_Dir, 1) ":" Then ' Verificamos que no exista If Dir$(El_Path, vbDirectory) = vbNullString Then 'Crea la carpeta Call MkDir(El_Path) End If End If End If

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    17 - Funcin kill

    La funcin kill se utiliza para eliminar archivos. Tambin es muy fcil de utilizar, y el nicoparmetro que lleva es la ruta del archivo que queremos eliminar. Si queremos eliminar variosarchivos de un directorio podemos utilizar el comodn"*", y si queremos excluir ciertos archivosutilizamos el comodn "?".

    18 - Funcin FileLen

    E sta funcin nos devuelve el tamao en bytes de un archivo.

    Ejemplo:

    FileLen es muy til para trabajar con archivos aleatorios, ya que si queremos conocer lacantidad de registros que tiene el archivo, debemos dividir el tamao del archivo por el tamaode la estructura.

    Ejemplo:

    19 - Funcin Name

    Next iEnd Sub

    kill "c:\*.txt"

    Dim tamao As Longtamao = FileLen("c:\windows\system32\control.exe")MsgBox tamao & " bytes"

    Private Type t_personasnombre As String * 20apellido As String * 20End TypeDim cant_reg As LongPrivate Sub Form_Load()cant_reg = FileLen("c:\miarchivo.dat") / Len(t_personas)End Sub

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Name se utiliza para renombrar archivos y directorios. Esta funcin no se puede utilizar pararenombrar archivos abiertos.

    Ejemplo:

    Name "path del archivo viejo a renombrar" as "path y nombre nuevo del archivo"

    Tambin con esta sentencia podemos mover archivos y directorios a otra ubicacin. para ellodebemos cambiar en el segundo parmetro la ruta del archivo.

    20 - Funcin GetAttr y SetAttr

    La funcin Getattr permite recuperar informacin sobre los atributos de un archivo o directorio.Ejemplo:

    los valores devueltos por la funcin pueden ser los siguientes:

    0 - normal

    1 - solo lectura

    2 - oculto

    4 - archivo de sistema

    16 - directorio

    32 - archivo modificado

    El siguiente ejemplo lo que hace es mostrar en un MsgBox los atributos de un archivo. Colocarun TextBox llamado Text1 y un Command1.

    GetAttr "ruta del archivo"

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Cdigo en el formulario:

    La funcin SetAttr lo que hace es establecer los atributos de un archivo .

    Ejemplo:

    21 - Funcin RmDir

    RmDir elimina directorios o carpetas. Pero antes de eliminar directorios tenemos que estarseguros que la carpeta no contiene archivos, de lo contrario nos dar un error en tiempo deejecucin. Si el directorio contiene archivos debemos eliminarlos previamente con la sentenciakill.

    Ejemplo:

    Option ExplicitPrivate Sub Command1_Click()Dim ret As LongDim Atributos As String ret = GetAttr(Text1.Text) If ret And vbNormal Then Atributos = " Normal = Si" & vbNewLine Else Atributos = " Normal = No" & vbNewLine End If If ret And vbReadOnly Then Atributos = Atributos & " Solo Lectura = Si" & vbNewLine Else Atributos = Atributos & " Solo Lectura = No" & vbNewLine End If If ret And vbHidden Then Atributos = Atributos & " Oculto = Si" & vbNewLine Else Atributos = Atributos & " Oculto = No" & vbNewLine End If If ret And vbSystem Then Atributos = Atributos & " Sitema = Si" & vbNewLine Else Atributos = Atributos & " Sitema = No" & vbNewLine End If If ret And vbDirectory Then Atributos = Atributos & " Directorio = Si" & vbNewLine Else Atributos = Atributos & " Directorio = No" & vbNewLine End If 'Muestra los atributos del archivo elegido MsgBox Atributos, vbInformation, " Atributos " End Sub

    SetAttr "ruta del archivo", valores de los atributos

  • Manejo de Archivos en visual basic y Funciones propias

    http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico7.htm[03/08/2011 03:56:21 p.m.]

    Descarga de ejemplos sobre el manejo de archivos en vb - cdigo fuente

    Ejemplos sobre el manejo de Archivos secuenciales y aleatorios en Visual Basic

    Volver

    Buscar en Recursos vb

    Recursos visual basic - Buscar - Privacidad - Copyright 2005 - 2009 -www.recursosvisualbasic.com.ar

    RmDir "path del directorio a remover"

    Almacenamiento850 Storage Locations NationwideReserve Today, Get 1st Month Free!www.ExtraSpace.com

    www.recursosvisualbasic.com.arManejo de Archivos en visual basic y Funciones propias

    90dXRvcmlhbC1iYXNpY283Lmh0bQA=: form1: q: sa:

    90dXRvcmlhbC1iYXNpY283Lmh0bQA=: form609: q: sa: