Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando
-- Tutorial de iniciación a Autoit --
Volver al índice del tutorial
____________________________
24.- Archivos.
archivos.exe
- Vamos a trabajar con archivos y directorios.
- Con los archivos podemos realizar todas estas funciones que podemos ver en la ayuda de AutoIt.
Ayuda de AutoIt
- Para hacer los siguientes ejemplos simplemente copia el código y ejecútalo.
______________________________________________________
1.- Crear un directorio.
- Crea un directorio en el disco C, llamado "Carpeta de AutoIt"
- Crea un directorio en el Escritorio del usuario, llamado "La carpeta de AutoIt"
- Recuerda que @DesktopDir es una variable macro, las puedes ver en: https://www.autoitscript.com/autoit3/docs/macros.htm
crea_directorio.au3 |
DirCreate("C:/Carpeta de AutoIt/")
DirCreate(@DesktopDir & "/La carpeta de Autoit")
|
- El directorio del usuario actual lo obtenemos mediante @HomeDrive y @HomePath
- Si ejecutamos MsgBox(0, "Directorios", @HomeDrive & @HomePath)
- Obtendría C:\Users\Juan
- Recuerda que & se utiliza para unir textos.
______________________________________________________
2.- Borrar un directorio.
borrar_directorio.au3 |
DirRemove("C:/Carpeta de AutoIt/", 1)
DirRemove (@DesktopDir & "/La carpeta de Autoit", 1)
|
- El 1 significa que borrará el directorio con el contenido que tenga dentro.
- Si ponemos un 0, solo borrará el directorio si está vacío, es decir si no tiene nada dentro.
- Mover un directorio completo:
DirMove("C:\Esta carpeta\", "C:\Otro sitio\Aquí se moverá", 1 )
______________________________________________________
3.- Crear archivo vacío.
- Crea la carpeta "C:/Carpeta de AutoIt/" y dentro de ella crea al archiov "prueba.txt"
crear_archivo_vacio.au3 |
$carpeta = "C:/Carpeta de AutoIt/"
DirCreate($carpeta)
$archivo = FileOpen($carpeta & "prueba.txt", 1) |
- Cuidado con las barras /, a veces equivocadamente se ponen más de la cuenta.
- Hay que tener en cuenta si vamos a utilizar el archivo para leerto o para escribirlo. Eso lo establecemos según pongamos 0 o 1
- Si ponemos un 2 será para sobre escribrir en lo que ya esté escrito.
0 = Modo de lectura
1 = Modo de escritura (adjunta al final de la línea del archivo)
2 = Modo escritura 2 (borra el contenido previo del archivo)
Modos 1 y 2 (de escritura) pueden ser creados si el archivo no existe.
______________________________________________________
4.- Crear archivo y escribir un texto.
crear_archivo_escribir_texto.au3 |
$carpeta = "C:/Carpeta de AutoIt/"
DirCreate($carpeta)
$archivo = FileOpen($carpeta & "prueba.txt", 1)
FileWrite($archivo, "Esta es la línea 1" & @CRLF)
FileWrite($archivo, "Esta es la línea 2" & @CRLF)
FileWrite($archivo, "Esta es la línea 3" & @CRLF)
FileWriteLine ($archivo, "Otra línea 4")
FileWriteLine ($archivo, "Otra línea 5")
FileWriteLine ($archivo, "Otra línea 6")
FileClose($archivo)
|
- @CRLF es para que cambie de renglón.
- Una vez que terminemos con el código del archivo es conveniente cerrarlo con FileClose($archivo)
- Si en vez de FileWrite lo hacemos con FileWriteLine, automáticamente añade una nueva línea.
- Vamos a consultarlo en el Bloc de notas.
- Cada vez que ejecutamos el Script se añade nuevo texto.
- Si pusiéramos $archivo = FileOpen($carpeta & "prueba.txt", 2)
- se borraría todo el texto anterior y se escribiría uno nuevo.
______________________________________________________
5.- Leer parte de un archivo.
- Tenemos que abrirlo en modo lectura, con el parámetro 0
- $archivo = FileOpen($carpeta & "prueba.txt", 0)
- FileRead($archivo, 12) lee 12 caracteres de ese archivo.
leer_archivo.au3 |
$carpeta = "C:/Carpeta de AutoIt/"
$archivo = FileOpen($carpeta & "prueba.txt", 0)
$texto = FileRead($archivo, 12)
MsgBox(0, "Lectura", $texto)
FileClose($archivo)
|
______________________________________________________
6.- Leer un archivo completo. Tres métodos.
A.- Carácter a carácter con FileRead.
- Leemos el archivo completo, es decir hasta llegar a OEF (Fin De Archivo)
- Con FileRead, en un bucle va leyendo caracter a caracter hasta llegar al Fin De Archivo.
- @error = -1 significa que ha llegado a Fin De Archivo y que salga del bucle.
- Presenta el texto completo en un MsgBox.
leer_archivo_completo.au3 |
;;;;;;;;;;;;;;;;; Con FileRead ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$carpeta = "C:/Carpeta de AutoIt/"
$archivo = FileOpen($carpeta & "prueba.txt", 0)
$completo = ""
While 1
$letra = FileRead($archivo, 1)
$completo = $completo & $letra
if @error = -1 Then ExitLoop
Wend
MsgBox(0, "El archivo completo con FileRead", $completo)
FileClose($archivo)
|
B.- Línea a línea con FileReadLine.
- Con FileReadLine, en un bucle va leyendo línea a línea hasta llegar al Fin De Archivo.
- @error = -1 significa que ha llegado a Fin De Archivo y que salga del bucle.
- Presenta el texto completo en un MsgBox.
leer_archivo_completo_linea.au3 |
;;;;;;;;;;;;;;; Con FileReadLine ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$carpeta = "C:/Carpeta de AutoIt/"
$archivo = FileOpen($carpeta & "prueba.txt", 0)
$completo = ""
While 1
$linea = FileReadLine($archivo)
$completo = $completo & $linea & @CRLF
if @error = -1 Then ExitLoop
Wend
MsgBox(0, "El archivo completo con FileReadLine", $completo)
FileClose($archivo)
|
C.- Con FileRead sin bucle.
leer_archivo_completo.au3 |
;;;;;;;;;;;; Con FileReadLine sin bucle ;;;;;;;;;;;
$carpeta = "C:/Carpeta de AutoIt/"
$archivo = FileOpen($carpeta & "prueba.txt", 0)
$completo = FileRead($archivo)
MsgBox(0, "Archivo completo.", $completo)
FileClose($archivo)
|
______________________________________________________
7.- Borrar archivo.
borrar_archivo.au3 |
$carpeta = "C:/Carpeta de AutoIt/"
FileDelete($carpeta & "prueba.txt")
|
- Archivo a la Papelera de reciclaje:
FileRecycle ( $carpeta & "prueba.txt")
FileRecycleEmpty () ; Vaciar la papelera.
______________________________________________________
8.- Comprobar si un archivo existe.
comprobar.au3 |
$carpeta = "C:/Carpeta de AutoIt/"
$archivo = FileOpen($carpeta & "prueba.txt", 1)
If $archivo = -1 Then
MsgBox(0, "Error", "El archivo no existe o no se pudo abrir.")
Exit
EndIf
|
______________________________________________________
9.- Copiar archivo.
copiar_archivo.au3 |
$carpeta = "C:/Carpeta de AutoIt/"
FileCopy($carpeta & "prueba.txt", @DesktopDir & "/La carpeta de Autoit")
|
- Para moverlo:
-
FileMove("origen", "destino")
______________________________________________________
10.- FileOpenDialog. FileSaveDialog. FileSelectFolder.
- Mediante estas funciones podemos sacar una ventana para elegir archivos y carpetas.
FileOpenDialog.au3 |
$message = "Presionar Ctrl o Shift para seleccionar más de uno."
$var = FileOpenDialog($message, "C:\Windows\", "Imagenes (*.jpg;*.bmp)", 1 + 4 )
If @error Then
MsgBox(4096,"","No hay archivos seleccionados")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096,"","Seleccionado: " & $var)
EndIf
|
FileSaveDialog.au3 |
$MyDocsFolder = "::{450D8FBA-AD25-11D0-98A8-0800361B1103}"
$var = FileSaveDialog( "Choose a name.", $MyDocsFolder, "Scripts (*.aut;*.au3)", 3)
; option 3 = dialog remains until valid path/file selected
If @error Then
MsgBox(4096,"","Save cancelled.")
Else
MsgBox(4096,"","You chose " & $var)
EndIf
|
FileSelecFolder.au3 |
$archivo = FileSelectFolder("Eslegir un archivo.", "", 0)
|
______________________________________________________
11.- Comodines.
- Se puede utilizar el * como comodín.
$carpeta = "C:/Carpeta de AutoIt/"
FileRecycle($carpeta & "*.*")
________________________________________________
- Comentarios.
_________________
- Propuesta.
-
|