Página 1 de 1
AYUDA, Necesito obtener los nombres de muchos archivos txt
Publicado: 20 Oct 2015, 10:15
por smjars
Hola a todos.
Ayudenme por favor
Tengo muchos archivos txt, y quiero obtener solo los nombres y meterlos en una variable.
ejemplo:
tengo un archivo llamado MontosAgosto2015.txt
yo necesito algo que me saque solo el nombre del archivo
$x = MontosAgosto2015
para meter el nombre de muchos archivos en un un solo .txt
no crean que quiero que me hagan el script.
solo necesito saber como le saco los nombres a los archivos sin la extencion ni ubicación.
Ayuda Por Favor
, solo eso necesito.
Re: AYUDA, Necesito obtener los nombres de muchos archivos t
Publicado: 20 Oct 2015, 21:01
por Dany
Ahi te dejo un ejemplo.
Código: Seleccionar todo
#include <File.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>
_CreateRamdomFiles("\Directorio-de-Prueba") ;Solo para crear una carpeta con archivos aleatorios
Listtxt();esta es la parte que te importa mira dentro de la funcion
Func Listtxt()
Local $aFileList = _FileListToArray(@ScriptDir & "\Directorio-de-Prueba", "*.txt")
If @error = 1 Then
MsgBox($MB_SYSTEMMODAL, "", "Path was invalid.")
Exit
EndIf
If @error = 4 Then
MsgBox($MB_SYSTEMMODAL, "", "No file(s) were found.")
Exit
EndIf
_ArrayDisplay($aFileList, "Con la extension")
;Esta es la parte importante para mostrar solo los nombres
For $i = 1 To $aFileList[0]
$aFileList[$i] = StringMid($aFileList[$i], 1, StringInStr($aFileList[$i], ".txt") - 1)
Next
_ArrayDisplay($aFileList, "Sin la extension")
EndFunc ;==>Listtxt
;Solo para crear Un directorio con archivos aleatorios
Func _CreateRamdomFiles($sDir, $Etentions = ".txt|.exe|.doc|.com|.html", $nFiles = 100)
Local $aExt = StringSplit($Etentions, "|")
DirCreate(@ScriptDir & $sDir)
For $i = 1 To $nFiles
ConsoleWrite(@ScriptDir & $sDir & "\" & RandomName() & $aExt[Random(1, $aExt[0], 1)] & @CRLF)
FileWrite(@ScriptDir & $sDir & "\" & RandomName() & $aExt[Random(1, $aExt[0], 1)], @ScriptDir & $sDir & "\" & RandomName() & $aExt[Random(1, $aExt[0], 1)])
Next
EndFunc ;==>_CreateRamdomFiles
;para crear nombres aleatorios
Func RandomName()
Local $cadena = ""
$cadena = Chr(Random(65, 90, 1))
For $i = 1 To 6
$cadena &= Random(0, 9, 1)
Next
$cadena &= Chr(Random(97, 122, 1))
Return $cadena
EndFunc ;==>RandomName
Saludos
Re: AYUDA, Necesito obtener los nombres de muchos archivos t
Publicado: 21 Oct 2015, 19:28
por smjars
Muchas gracias dany, de verdad te lo agredezco
.
el ejemplo que me pusiste, me va ayudar a hacer de mejor manera lo que quiero, ademas eso de crear archivos random tampoco lo sabia.
De verdad estoy emocionado con el potencial de autoit y me alegra tener apoyo en el foro para ir descubriendo mas funciones
.
Mi gran problema es el Ingles, y que muchas veces me cuesta entender los ejemplos de la ayuda de autoit.
ayer logre hacer lo de los nombres con esto:
#include <Array.au3>
#include <File.au3>
$aBusquedadearchivos = FileFindFirstFile("*.*")
While 1
$aBusquedadearchivos = FileFindNextFile("*.*")
Local $sUnidad = "", $sDirecciontotal = "", $sNombredelarchivo = "", $sExtencion = ""
Local $aPathSplit = _PathSplit($aBusquedadearchivos, $Unidad, $sDirecciontotal, $sNombredelarchivo, $sExtencion)
_ArrayDisplay($aPathSplit, "_PathSplit de " & $aBusquedadearchivos)
WEnd
y luego con con $aPathSplit[3] conseguí solo el nombre.
Gracias por ejemplo, me quedo mas claro que el agua y me servirá mucho
.
Re: AYUDA, Necesito obtener los nombres de muchos archivos t
Publicado: 21 Oct 2015, 21:37
por Dany
Hola. Ahí te corregí el ejemplo que muestras.
Código: Seleccionar todo
#include <Array.au3>
#include <File.au3>
Local $sRuta = "C:\"
Local $ahBusqueda = FileFindFirstFile($sRuta & "*.*")
Local $aPathSplit = 0
Local $sUnidad = "", $sDirecciontotal = "", $sNombredelarchivo = "", $sExtencion = ""
While 1
$aBusquedadearchivos = FileFindNextFile($ahBusqueda)
If @error Then ExitLoop
$aBusquedadearchivos = $sRuta & $aBusquedadearchivos
$aPathSplit = _PathSplit($aBusquedadearchivos, $sUnidad, $sDirecciontotal, $sNombredelarchivo, $sExtencion)
_ArrayDisplay($aPathSplit, "_PathSplit de " & $aBusquedadearchivos)
WEnd
Saludos
Re: AYUDA, Necesito obtener los nombres de muchos archivos t
Publicado: 22 Oct 2015, 07:59
por smjars
Mucha Gracias Dany, me sirve mucho esa corrección, necesito hacer las cosas ordenadas como tu y también tengo mas claros los bucles y simplificarme la vida metiendo cadenas en variables cortitas.
Estoy de verdad emocionado con autoit, intente aprender a programar con php pero me aburro rapido, autoit es tan bonito que voy aprendiendo sin darme cuenta, eso de manejar matrices era japones para mi.
Gracias por el apoyo.
Re: AYUDA, Necesito obtener los nombres de muchos archivos t
Publicado: 29 Nov 2015, 14:11
por AMFC
Por si sirve de ayuda, me gustaría aportar esto...
La función: _FileListToArrayRec() permite ajustar mas aún lo que se debe buscar. Tan solo hay que darle como parámetros Dónde y Qué queremos buscar y nos devuelve en una matriz de datos (array) todo lo que encuentra.
En el ejemplo os muestro cómo buscar en el directorio raiz de C:\ y todos sus subdirectorios (carpetas), pero excluyendo: \Windows , todos los ficheros de extensión ".txt"
Código: Seleccionar todo
; EJEMPLO *************************************************************************************************
#include <Array.au3>
#include <File.au3>
; Preparando la busqueda
$Directorio="C:\"
$Mascara="*.txt||Windows" ; ficheros a buscar... todos los .TXT||Excluir el SubDirectorio Windowss.
$iReturn=1 ; Qué Buscar... 0=Todo 1=solo Ficheros 2=solo Directorios +4=Sin Ocultos +8=Sin deSistema +16=Sin Links
$iRecur=1 ; Mirar en... 0=Sin Subcarpetas 1=Todas las Subcarpetas -3=Solo las Subcarpetas del 3 nivel
$iSort=0 ; Reordenar la salida... 0=No 1=Si
$iReturnPath=1 ; Dato de salida... 0=Solo Nombre 1=Desde el Path dado 2=Path y Nombre completos
; lanzar la busqueda
$ENCONTRADOS =_FileListToArrayRec($Directorio,$Mascara,$iReturn,$iRecur,$iSort,$iReturnPath)
; Ver el resultado
_ArrayDisplay($ENCONTRADOS,"ENCONTRADO en "&$Directorio)
Espero que el ejemplo quede claro.
Saludos
Re: AYUDA, Necesito obtener los nombres de muchos archivos t
Publicado: 29 Nov 2015, 22:30
por smjars
Muchas Gracias AMFC, hay funciones que se pueden personalizar más de lo que yo sabia. En este momento estoy full metido con autoit y mysql, tal vez en países como España, Saber autoit no es nada, pero aquí en Honduras, Hice un script para ayudar a mi jefe con varias tareas que necesita estar revisando, y se las puse todas en una interfaz super simple, y me quedo viendo como hubiere visto a Bill Gates nacer.
Gracias por tu aporte, y compartir conocimiento.
Re: AYUDA, Necesito obtener los nombres de muchos archivos t
Publicado: 08 Dic 2015, 15:08
por AMFC
Me alegra haberte sido de ayuda.
Yo también uso AUTOIT para facilitar el trabajo y me entusiasma ver que "la globalización" permite buscar ayuda entre muchas mas personas. Hace años cuando tenía una duda echaba mano de libros caros y escasos, que al final no solían resolver el problema concreto.
Aplaudo este foro y a personas como CHEFITO que hacen una labor magnífica de compartir conocimiento.
Saludos.
Re: AYUDA, Necesito obtener los nombres de muchos archivos t
Publicado: 08 Dic 2015, 19:35
por Chefito
Muchas gracias. Da gusto saber que todo lo que respondo y lo que explico les enseña y soluciona cosas a otras personas
.
Sigo intentando participar siempre que puedo, pero por varios motivos no puedo. Además, hay gente nueva (o no tan nueva) que sabe mucho más que yo y os ayudará, como dany
. Y por supuesto estáis todos vosotros que os apoyáis unos a otros.
Respecto al tema de la utilidad de autoit....es muy útil, pero en mi caso apenas lo utilizo. Es como casi siempre ha sido para mi la programación, un hobby
.
Seguir así.
Saludos.