Visual Basic - Renombrar archivo en vb6

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Renombrar archivo en vb6

Publicado por Andres (17 intervenciones) el 15/02/2024 08:48:24
Tengo que renombrar un archivo automáticamente todos los días. y el nombre del archivo cambia dependiendo de la hora, Por ejemplo

PRODUCCION_20240215 211003.txt

DONDE 20240215 ES LA FECHA EN LA QUE SE CREA
Y 211003 ES LA HORA EN LA QUE SE CREA

La fecha es conocida, ya que se crea diariamente, pero la hora puede variar.

Yo quero renombrarlo todos los días PRODUCCION_20240215 211003 A PRODUCCION_20240215.txt

lo he intentado así:
name "PRODUCCION_20240215*.TXT" AS "PRODUCCION_20240215.TXT"
Ose suprimir la hora del nombre del fichero, pero me da error.

¿Alguna idea que me sirva?


Muchas gracias de antemano y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo

Renombrar archivo en vb6

Publicado por Leonardo (14 intervenciones) el 15/02/2024 18:04:20
Este código te puede servir:
1
2
3
4
5
6
7
Public Sub RenombrarInforma(ByVal Fecha As Date, ByVal Ruta as String)
    Dim D As String
 
    If Right(Ruta,1)<>"\" then Ruta = Ruta & "\"
    D = Dir(Ruta & "PRODUCCION_" & Format(Fecha, "yyyymmdd") & "*.txt")
    If D <> "" Then Name Ruta & D As Ruta & Left(D, 19) & ".txt"
End Sub


Si los informes quedaran en C:\Informes, , por ejemplo, y quieres cambiar el nombre al de HOY, lo puedes hacer así:
1
RenombrarInforme Now, "C:\Informes"


Espero te sea de utilidad. Saludos :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo

Renombrar archivo en vb6

Publicado por Leonardo (14 intervenciones) el 15/02/2024 18:25:20
Fé de Errata:
Dice:
1
Public Sub RenombrarInforma(ByVal Fecha As Date, ByVal Ruta as String)

Debe decir:
1
Public Sub RenombrarInforme(ByVal Fecha As Date, ByVal Ruta as String)

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Renombrar archivo en vb6

Publicado por Andres (17 intervenciones) el 16/02/2024 13:16:29
Hola, gracias por tu respuesta, pero soy muy novato y no se indicar como enviar a ese public sub

Pruebo con :

RenombrarInforma

tambien con call RenombrarInforma

y me responde "el argumento no es opcional"

muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Renombrar archivo en vb6

Publicado por Antoni Masana (558 intervenciones) el 15/02/2024 20:52:53
Si entiendo bien hay una parte del nombre del fichero que es fija y otra que cambia cada día y la quieres recortar.

Se e ocurre lo siguiente:

1
2
3
4
5
6
7
Dim Nombre As String, Fichero As String
 
Nombre = "PRODUCCION_" & Format(Date, "YYYYMMDD")
Fichero = Dir(Nombre & "*.TXT")
If Len(Fichero) > 0 Then
    name Fichero AS Nombre & ".TXT"
End If

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Renombrar archivo en vb6

Publicado por Andres (17 intervenciones) el 16/02/2024 13:12:41
he provado tu codigo y tengo el mismo problema que con el mio

name "PRODUCCION_20240215*.TXT" AS "PRODUCCION_20240215.TXT"

no cambia el nombre del archivo y creo que es por el *
muchas gracias, sigo probando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Renombrar archivo en vb6

Publicado por 5ahid Ra (191 intervenciones) el 19/02/2024 20:03:08
saludos, el problema que veo es aqui

1
name "PRODUCCION_20240215*.TXT" AS "PRODUCCION_20240215.TXT"

le estas pidiendo que cambie todos los archivos que concuerden con tu búsqueda a un mismo archivo

1
2
3
PRODUCCION_20240215 211003.txt -- > PRODUCCION_20240215.txt (OK)
PRODUCCION_20240215 211014.txt -- > PRODUCCION_20240215.txt (Error el archivo ya existe)
PRODUCCION_20240215 211025.txt -- > PRODUCCION_20240215.txt (Error el archivo ya existe)

te recomendaría que al final remplaces el formato (hora, minuto y segundo) lo dejes así para el
registro o en todo caso renombrar uno a uno por un numero consecutivo.

1
2
3
PRODUCCION_20240215 211003.txt -- > PRODUCCION_20240215_1.txt (OK)
PRODUCCION_20240215 211014.txt -- > PRODUCCION_20240215_2.txt (OK)
PRODUCCION_20240215 211025.txt -- > PRODUCCION_20240215_3.txt (OK)

recuerda que para un recorrido de archivos ocupas el comando Dir o hacer uso del control FileListBox

saludos y Felices lineas de programac10n.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Renombrar archivo en vb6

Publicado por Antoni Masana (558 intervenciones) el 19/02/2024 23:00:24
Andres no se que has probado para que te de el mismo error ni cual es el error.

Tanto el código de Leonardo como el mío buscan un fichero, repito UN FICHERO para una fecha, es decir el código solo es válido si recibes un solo fichero cada día independientemente de a qué hora lo recibes.
Dicho de otra forma este código solo lo puedes ejecutar UNA SOLA VEZ cada 24 horas.

Ahora bien si como supone 5ahid Ra tienes varios ficheros en un mismo día primero hemos de saber si los quieres renombrar y conservar:
[_] todos
[_] solo el primero
[_] solo el último

En cada caso hay una codificación diferente. Este último detalle no lo especificas.

saludos.
\\//_
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Renombrar archivo en vb6

Publicado por Andres (17 intervenciones) el 22/02/2024 08:44:10
Muchas gracias a todos por vuestras respuestas.
Al final lo he conseguido, aquí os pongo el programa de donde he sacado mi idea, he modificado algunas cosas para que se adapte a lo que yo quiero, pero el programa esta muy bien para renombrar cantidad de ficheros, luego ya cada cual que lo adapte a su manera.

Saludos y espero que os sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar