Shell   05-10-2023, 14:10
#1
Buenas!.

Me ha tocado crear un ejemplo en Gambas en el que tengo que renombrar un grupo de archivos.
La rutina que lo hace me quedó de esta forma. Es casi la de la ayuda online.

Código:
....
 aarchivos = Dir(directorio, "*.jpg", gb.File).Sort()

  For Each nombre In aarchivos

    'La idea del ejemplo es eliminar el guion del nombre del archivo
    nomtemp = Replace(nombre, "-", "")

    Try Move directorio &/ nombre To directorio &/ nomtemp
    If Error Then
      Try Copy directorio &/ nombre To directorio &/ nomtemp
      If Not Error Then Kill directorio &/ nombre
    Endif
  Next

Se supone que move ( el solo ) debería cumplir con la tarea y en caso de error
se haría las siguientes instrucciones.

"Creo" que si falla la primera manera, probablemente fallará la segunda.
Los directorios están especificados en ambos correctamente (no hay otro en este caso ).

Por cierto si vemos la ayuda en español del comando move (no parece correcta), distinto a la versión inglesa.

Ah, este ejemplo es un aplicación para consola. Cuando estoy escribiendo la ruta del archivo, parece que no se va completando,
lo hago todo manualmente. Creo que eso no pasa cuando se usa un proyecto de formulario.

Move

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   05-10-2023, 23:16
#2
La rutina tiene un problema copiará ó moverá "siempre". Aunque el archivo ya no contenga un guion.
Con lo que antes habrá que comprobar si el nombre del archivo contiene un guion.

Código:
....
For Each nombre In aarchivos
    
    'Para evitar la copia de nombres de archivos que no contienen "-"
    'se comprueba ante si existe el guion en el nombre del archivo
    
    If InStr(nombre, "-") >= 1 Then
      
      'La idea del ejemplo es eliminar el guion
      nomtemp = Replace(nombre, "-", "")
      Try Move directorio &/ nombre To directorio &/ nomtemp
      If Error Then
        Try Copy directorio &/ nombre To directorio &/ nomtemp
        If Not Error Then Kill directorio &/ nombre
      Endif
    Endif

  Next
....

Imaginen que una vez realizada la operación, se han cambiado los nombres de los archivos y se vuelve a ejecutar la misma tarea.
En este caso es que todos los archivos contenían un guion, pero no tiene por que ser así.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.