Archivos

Iniciado por PoNcHo!!, 24 Julio 2007, 21:59 PM

0 Miembros y 1 Visitante están viendo este tema.

PoNcHo!!

wenas...

quisiera saber que comando puedo usar para que un programa pueda copiar archivos y carpetas de una ubicacion a otra que yo especifique...

muchas gracias...




ActiveSheet

Es con

FileCopy "C:\File.Txt", "C:\FileCopy.Txt"

y ay qui ay otras cosas son los mismos principios

http://foro.elhacker.net/index.php/topic,172703.0.html

PoNcHo!!

gracias...
la verdad que soy muy nuevo en el tema de programar en VB, y no entiendo mucho lo que hace el codigo del link que me pasaste...

si alguien se puede tomar la molestia de por lo menos explicarme lo que necesito sobre el manejo de archivos y carpetas, se lo agradeceria...




Freeze.

#3
Salu2..!
Edito:
Etse Tuto Ya no existe... ;D ;D

ActiveSheet

#4
de nada PoNcHo!!
ay luego te explico xD

cassiani

#5
Hola PoNcHo!!, esto es una pequeña parte de lo que a manejo de archivos se refiere, esperemos que te pueda servir, sino entiendes algo vuelve a preguntar...

El Basic maneja tres tipos de archivos: secuenciales, aleatorios y binarios.

Cada uno tiene una serie de características en la forma de acceder a los datos.

El más básico y también el más empleado, es el secuencial; "Me encargare de explicarte este tipo de ficheros, los otros os los dejo de tarea."

Con este tipo de fichero, los datos se almacenan y recuperan de forma secuencial, es decir: un dato después de otro...
El inconveniente que tiene esta forma de almacenar los datos, es que para recuperar lo que esté en la décima posición, tenemos que leer los nueve anteriores. (Por eso el nombre de secuencial)...

Necesitarais funciones para poder acceder a la información de los ficheros.

La primera función a usar será:

Freefile: Esta función devuelve un número entero, el cual se almacenará en una variable y así podremos usarlo para el manejo de los datos almacenados.

Se usa el freefile para encontrar un número de canal libre y así evitar la posibilidad de usar una línea que este en uso.

Ejemplo:
NumFic = Freefile

Una vez que conozcamos un canal por el que poder acceder, tendremos que abrirlo:
Open "Prueba.txt" For Output As NumFic
Con esta línea, abrimos el fichero Prueba.txt de forma secuencial para poder escribir en él.
Una vez que tenemos una "via" de comunicación, podremos escribir información usando la instrucción Print... (Un poco maquilada)

Print #NumFic, "Lo que sea"

#NumFic  es el número de fichero (o canal) por el que accedemos al fichero abierto y después de ese número, usamos una coma y a continuación lo que queremos guardar en el fichero, podes usar cadena de caracteres entre comillas (""), una variable o hasta una constante.

Cuando hayamos acabado de guardar cosas, tendremos que cerrar el fichero que hemos abierto, para poder liberar ese canal abierto y así poder usarlo en otra ocasión, esto se consigue con el comando Close:

Ejemplo:
Close NumFic

Es importante esto de cerrar el fichero abierto, ya que en ese momento es cuando el Basic guarda la información que aún tiene "temporalmente" almacenada en una memoria intermedia (buffer) que usa para que el acceso a datos sea, al menos en teoría, más rápido.
Ahora vamos a ver cómo se usa al completo la orden OPEN y sus posibilidades de uso.

Open RutaAcceso [For Modo] [Access acceso] [tipo de bloqueo] As [ # ] Númerofichero [Len=longitudregistro]

Lo que está entre corchetes son parámetros opcionales.
Fíjate en el detalle que FOR Modo está entre corchetes, esto significa que si no se especifica el modo, el Visual Basic entiende que quieres acceder de forma aleatoria.
RutaAcceso: es el path (ruta del archivo) completo, o a medias, de dónde queremos que se almacene el fichero o el lugar en el que está almacenado.
Por ejemplo: C:\Datos\Un directorio\Prueba.txt
o simplemente Prueba.txt (esto le indicará que estará en el directorio actual)

Modo: existen 5 modos de acceder a los ficheros
•   Output, para ficheros de salida, es decir para guardar los datos.
         Si el fichero existe, lo borrará (sobrescribirá) y si no existe, lo creará.
•   Input, para leer los datos de un fichero ya existente.
•   Append, como el Output, pero añadiendo la información al final del fichero, si este ya existe (sin tocar el contenido de los mismos).
•   Random, para acceso aleatorio.
•   Binary, para acceso binario.

As NúmeroFichero: aquí se indica el número de fichero (canal) por el que accederemos a la información. El signo de número (#) es opcional. Y NúmeroFichero, puede ser una variable o una constante.
Vamos a dejar tanta teoría y viajemos a la práctica:

'---------------------------------------------------------------------------------------------------------

Código (vb) [Seleccionar]
Option Explicit

Private Sub CmdCrearFichero_Click() 'CommandButton
'Empezamos Declarando variables
Dim NombreUsuario As String, Cadena As String
Dim EdadUsuario As Integer, NumFic As Integer
   
    NombreUsuario = "Yohanna Crespo"
    EdadUsuario = 20
    Cadena = NombreUsuario & "-" & EdadUsuario
    'Pude haber guardado los valores directamente en la variable cadena _
    ahorrándome espacio en memoria y código, pero la idea es mostrarte otras opciones.
   
    NumFic = FreeFile 'Buscamos un canal libre.

    'Abrimos el archivo para crearlo o grabar en él (usando Append en este caso)
    Open "C:\Prueba.txt" For Append As NumFic
        Print #NumFic, Cadena 'Guardamos el valor de Cadena en el fichero.
    Close NumFic 'Cerramos el fichero y liberamos el canal.
   
    'Simplemente guardamos en el archivo 'prueba.txt' ubicado en c, _
    el nombre y edad del usuario.
End Sub

Private Sub CmdAbrirFichero_Click() 'CommandButton
'Empezamos Declarando variables
Dim Cadena As String, CanalLibre As Integer
   
    CanalLibre = FreeFile 'Buscamos un canal libre
   
    'Abrimos el archivo para lectura "Input"
    Open "C:\Prueba.txt" For Input As CanalLibre
        List1.Clear 'Limpiamos el ListBox
        While Not EOF(CanalLibre) 'Mientras el archivo no llegue al final...
            Input #CanalLibre, Cadena
            List1.AddItem Cadena
        Wend
    Close CanalLibre
   
   'Simplemente abrimos el archivo y pasamos su contenido a un ListBox para mostrarlo
   
    'Si intentáis abrir un archivo inexistente, te mostrara un error.
End Sub


'---------------------------------------------------------------------------------------------------------

EOF (númeroarchivo): Devuelve un tipo Integer que contiene un valor tipo Boolean de True al llegar al final del archivo. (Simplemente indica cuando el archivo llega al final).

La teoría fue extraída del Curso Básico de Programación en Visual Basic del guille y la MSDN.

Te recomiendo que copies y pegues este código en un formulario y luego lo analices desde allí, así podras entenderlo mejor.

Aunque falta mucha tela por cortar en esto de los archivos, hay os dejo esto para que empezáis a trabajar con ficheros. ¿Difícil? ...

Freeze.

Se te agradece usar las etiquetas code... Gracias...

PD: Te lo han explicado todo.. jeje

PoNcHo!!

gracias...

esta semana me voy de viaje, asi que cuando vuelva comento, y pongo mis dudas...

nuevamente, gracias...