FoxPro/Visual FoxPro - Buscar archivos XML de fecha de creación o modificación

 
Vista:

Buscar archivos XML de fecha de creación o modificación

Publicado por Zamora (77 intervenciones) el 31/05/2019 20:35:03
Buen día de antemano les agradezco sus atenciones

Estoy vinculando la información de los archivos XML's con una base de datos, identifico los XML's con esta rutina:

STORE '"*.XML"' TO _RUTA

STORE ADir(arrat, &_RUTA) TO nTotF

FOR I = 1 To nTotF
INSERT INTO XMLS WITH ALLTRIM(arrat[i,1])
NEXT I

Esto para identificar los archivos, lo que me gustaría identificar es, a partir de una fecha ya sea de "Modificación" o "Creación" del archivo para no tardar tanto tiempo y revisar u omitir los que ya se habían revisado.

De antemano agradezco sus apoyo
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

Buscar archivos XML de fecha de creación o modificación

Publicado por Zamora (77 intervenciones) el 31/05/2019 21:16:35
Agradezco ya lo resolví con este comando nativo de FoxPro el unico inconveniente que veo es que tiene que recorrer todos los archivos cada vez

1
2
3
4
5
6
7
STORE FDATE(&ARCH,1) TO _FDATE
 
IF TTOD(_FDATE) >=  DTOC('FECHA DE VERIFICACION')
    MESSAGEBOX('HOLA MUNDO',48,'AVISO')
ELSE
    MESSAGEBOX('ARCHIVO ANTERIOR',64,'AVISO')
ENDIF

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
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Buscar archivos XML de fecha de creación o modificación

Publicado por Fidel José (657 intervenciones) el 31/05/2019 23:49:42
Puedes evitar la función FDATE() que es muy lenta y a veces problemática utilizando las posición 3 y 4 del array creado con la función Date_Time_to_DateTime(ldFecha, lcTime ,lnHours)

1
2
3
4
5
6
7
8
ldVerify = Fecha_Verificacion
lnFiles = ADIR(laFiles,ADDBS(lcPath)+"*.xml","",1)
FOR i = 1 TO m.lnFiles
	ldTime = Date_Time_to_DateTime(laFiles[i,3],laFiles[i,4])
	IF m.ldTime > m.ldVerify
		INSERT INTO XMLS VALUES (laFiles[i,1])
	ENDIF
NEXT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
PROCEDURE Date_Time_to_DateTime
* ----------------------------------------
* Convertir un valor Date (tdFecha)
* y un valor Time (tcTime)
* en un DateTime (Valor Retornado)
* ----------------------------------------
LPARAMETERS tdFecha,tcHora,tnHours
* tdFecha: Valor tipo Date
* tcHora: Valor tipo Time (character) (formatos: "00:00" o "00:00:00"
* tnHours: (numéric) 12 o 24 (default)
TRY
 
	LOCAL lnSep,;
		lnAdd,;
		ltReturn,;
		lcString,;
		loex as Exception
 
	LOCAL ARRAY laHora(1)
 
 
	ltReturn = {//::}
 
	* Fecha
	IF VARTYPE(m.tdFecha)#"D"
		tdFEcha = {}
	ENDIF
 
	* Hora
	IF VARTYPE(m.tcHora)#"C" OR EMPTY(m.tcHora)
		tcHora = "00:00:00"
	ENDIF
	tcHora = UPPER(m.tcHora)
	lnAdd=IIF(AT("PM",tcHora)>0,12,0)
 
	* hours
	IF VARTYPE(tnHours)#"N" OR !BETWEEN(m.tnHours,12,24)
		tnHours = 24
	ENDIF
 
	SET HOURS TO tnhours
 
	IF !EMPTY(m.tdFecha)
		lnSep = ALINES(laHora,CHRTRAN(m.tcHora,CHRTRAN(m.tcHora,"1234567890:",""),""),1,":")
		IF m.lnSep > 0
			IF m.lnAdd = 12
				laHora[1] = TRANSFORM(VAL(laHora[1])+12)
			ENDIF
			IF VAL(laHora[1])=24
				tdFecha = m.tdFEcha + 1
				laHora[1] = "00"
			ENDIF
		ENDIF
		ltReturn = DATETIME(YEAR(m.tdFecha),;
			MONTH(m.tdFecha),;
			DAY(m.tdFecha),;
			IIF(m.lnSep>0,VAL(laHora[1])+lnAdd,0),;
			IIF(m.lnSep>1,VAL(laHora[2]),0),;
			IIF(m.lnSep>2,VAL(laHora[3]),0))
 
	ENDIF
CATCH TO loex
	lcSTring = "tdFecha="+IIF(VARTYPE(m.tdFecha)="C",tdFecha,TRANSFORM(tdFecha)) + CHR(13);
		+ "tcHora="+IIF(VARTYPE(m.tcHora)="C",tcHora,TRANSFORM(m.tcHora)) + CHR(13) ;
		+ "lnSep="+TRANSFORM(m.lnSep) + CHR(13)
 
	loex.UserValue = PROGRAM()+CHR(13);
		+ m.lcString
 
	* ShowMeError(loex)  && rutina que muestra un error
 
FINALLY
 
ENDTRY
RETURN m.ltReturn
ENDPROC
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

Buscar archivos XML de fecha de creación o modificación

Publicado por Zamora (77 intervenciones) el 12/06/2019 17:24:01
Buen día Fidel disculpa la tardanza te agradezco el apoyo

Te comento

Tome la opción de en vez de el procedimiento que me comentas seleccione el comento Datetime() en este formato

1
2
3
4
5
6
7
IF [Fecha a validad] < DATETIME(YEAR(arrat[i,3]),MONTH(arrat[i,3]),;
    DAY(arrat[i,3]),;
    VAL(SUBSTRC(ALLTRIM(arrat[i,4]),1,2)),;
    VAL(SUBSTRC(ALLTRIM(arrat[i,4]),4,2)),;
    VAL(SUBSTRC(ALLTRIM(arrat[i,4]),8,2));
)
...

Te agradezco
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