QUEUE Busqueda repitencias
Publicado por Cristian (136 intervenciones) el 13/12/2021 05:26:20
Hola:
Tengo una QUEUE la cual contiene una lista de archivos de una carpeta. Estos archivos son backup de la base de datos. Cada archivo posee el formato "BackupANNO_MES_DIA_X.BAK" donde anno es el año de 4 digitos, mes es el numero de mes, dia, es el numero de dia, y X seria un numero entero que se incrementa en caso de que se realice mas de una copia de seguridad durante el dia.
Por ejemplo, si el 28-11-2021 realizo una copia la misma tiene el nombre "backup20211128_1.bak", si ese dia realizo otra copia, deberia tener el nombre "backup20211128_2.bak", y asi. La cuestion es que no logro encontrar la forma de hacerlo.
He programado el siguiente codigo sin exito
GLO:ContadorArchivosBackup = 1
GLO:NombreBackup = 'BACKUP'&CLIP(GLO:AnnoParaBackup)&CLIP(GLO:MesParaBackup)&CLIP(GLO:DiaParaBackup)&'_'&CLIP(GLO:ContadorArchivosBackup)&'.BAK'
GLO_Archivos_Backups = GLO:NombreBackup
LOOP
GET(GLO_ListaArchivosBackups,GLO_Archivos_Backups)
MESSAGE ('LISTA: '&GLO_ListaArchivosBackups,GLO_Archivos_Backups)
MESSAGE ('NOMBRE GENERADO: '&GLO:NombreBackup)
IF CLIP(GLO_ListaArchivosBackups.GLO_Archivos_Backups) = CLIP(GLO:NombreBackup) THEN
MESSAGE('YA EXISTE ARCHIVO: '&clip(GLO_ListaArchivosBackups.GLO_Archivos_Backups)&'/'&CLIP(GLO:NombreBackup))
GLO:ContadorArchivosBackup = GLO:ContadorArchivosBackup + 1
GLO:NombreBackup = 'BACKUP'&CLIP(GLO:AnnoParaBackup)&CLIP(GLO:MesParaBackup)&CLIP(GLO:DiaParaBackup)&'_'&CLIP(GLO:ContadorArchivosBackup)&'.BAK'
GLO_Archivos_Backups = GLO:NombreBackup
DISPLAY()
ELSE
MESSAGE('NO EXISTE ARCHIVO: ')
!GLO:ContadorArchivosBackup = GLO:ContadorArchivosBackup + 1
GLO:NombreBackup = 'BACKUP'&CLIP(GLO:AnnoParaBackup)&CLIP(GLO:MesParaBackup)&CLIP(GLO:DiaParaBackup)&'_'&CLIP(GLO:ContadorArchivosBackup)&'.BAK'
GLO_Archivos_Backups = GLO:NombreBackup
ADD(GLO_ListaArchivosBackups)
BREAK
END
END
Tengo una QUEUE la cual contiene una lista de archivos de una carpeta. Estos archivos son backup de la base de datos. Cada archivo posee el formato "BackupANNO_MES_DIA_X.BAK" donde anno es el año de 4 digitos, mes es el numero de mes, dia, es el numero de dia, y X seria un numero entero que se incrementa en caso de que se realice mas de una copia de seguridad durante el dia.
Por ejemplo, si el 28-11-2021 realizo una copia la misma tiene el nombre "backup20211128_1.bak", si ese dia realizo otra copia, deberia tener el nombre "backup20211128_2.bak", y asi. La cuestion es que no logro encontrar la forma de hacerlo.
He programado el siguiente codigo sin exito
GLO:ContadorArchivosBackup = 1
GLO:NombreBackup = 'BACKUP'&CLIP(GLO:AnnoParaBackup)&CLIP(GLO:MesParaBackup)&CLIP(GLO:DiaParaBackup)&'_'&CLIP(GLO:ContadorArchivosBackup)&'.BAK'
GLO_Archivos_Backups = GLO:NombreBackup
LOOP
GET(GLO_ListaArchivosBackups,GLO_Archivos_Backups)
MESSAGE ('LISTA: '&GLO_ListaArchivosBackups,GLO_Archivos_Backups)
MESSAGE ('NOMBRE GENERADO: '&GLO:NombreBackup)
IF CLIP(GLO_ListaArchivosBackups.GLO_Archivos_Backups) = CLIP(GLO:NombreBackup) THEN
MESSAGE('YA EXISTE ARCHIVO: '&clip(GLO_ListaArchivosBackups.GLO_Archivos_Backups)&'/'&CLIP(GLO:NombreBackup))
GLO:ContadorArchivosBackup = GLO:ContadorArchivosBackup + 1
GLO:NombreBackup = 'BACKUP'&CLIP(GLO:AnnoParaBackup)&CLIP(GLO:MesParaBackup)&CLIP(GLO:DiaParaBackup)&'_'&CLIP(GLO:ContadorArchivosBackup)&'.BAK'
GLO_Archivos_Backups = GLO:NombreBackup
DISPLAY()
ELSE
MESSAGE('NO EXISTE ARCHIVO: ')
!GLO:ContadorArchivosBackup = GLO:ContadorArchivosBackup + 1
GLO:NombreBackup = 'BACKUP'&CLIP(GLO:AnnoParaBackup)&CLIP(GLO:MesParaBackup)&CLIP(GLO:DiaParaBackup)&'_'&CLIP(GLO:ContadorArchivosBackup)&'.BAK'
GLO_Archivos_Backups = GLO:NombreBackup
ADD(GLO_ListaArchivosBackups)
BREAK
END
END
Valora esta pregunta
0