- Agregada nueva optimización por comparación de timestamp igual
This commit is contained in:
@@ -581,7 +581,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
+ [<memberdata name="l_methodsort_enabled" display="l_MethodSort_Enabled"/>] ;
|
||||
+ [<memberdata name="l_notimestamps" display="l_NoTimestamps"/>] ;
|
||||
+ [<memberdata name="c_backgroundimage" display="c_BackgroundImage"/>] ;
|
||||
+ [<memberdata name="l_optimizebyfilestamp" display="l_OptimizeByFilestamp"/>] ;
|
||||
+ [<memberdata name="n_optimizebyfilestamp" display="n_OptimizeByFilestamp"/>] ;
|
||||
+ [<memberdata name="l_propsort_enabled" display="l_PropSort_Enabled"/>] ;
|
||||
+ [<memberdata name="l_recompile" display="l_Recompile"/>] ;
|
||||
+ [<memberdata name="l_redirectclassperfiletomain" display="l_RedirectClassPerFileToMain"/>] ;
|
||||
@@ -680,7 +680,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
c_BackgroundImage = ''
|
||||
l_ClearUniqueID = .T.
|
||||
l_ClearDBFLastUpdate = .T.
|
||||
l_OptimizeByFilestamp = .F.
|
||||
n_OptimizeByFilestamp = 2
|
||||
l_MethodSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
|
||||
l_PropSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
|
||||
l_ReportSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
|
||||
@@ -1072,11 +1072,11 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROCEDURE l_OptimizeByFilestamp_ACCESS
|
||||
PROCEDURE n_OptimizeByFilestamp_ACCESS
|
||||
IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) )
|
||||
RETURN THIS.l_OptimizeByFilestamp
|
||||
RETURN THIS.n_OptimizeByFilestamp
|
||||
ELSE
|
||||
RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).l_OptimizeByFilestamp, THIS.l_OptimizeByFilestamp )
|
||||
RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).n_OptimizeByFilestamp, THIS.n_OptimizeByFilestamp )
|
||||
ENDIF
|
||||
ENDPROC
|
||||
|
||||
@@ -1532,7 +1532,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
* NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usar<61> como base para recompilar
|
||||
* tcExtraBackupLevels (v? IN ) Indica la cantidad de niveles de backup a realizar (por defecto '1')
|
||||
* tcClearUniqueID (v? IN ) Indica si se debe limpiar el UniqueID ('1') o no ('0' <20> vac<61>o)
|
||||
* tcOptimizeByFilestamp (v? IN ) Indica si se debe optimizar por filestamp ('1') o no ('0' <20> vac<61>o)
|
||||
* tcOptimizeByFilestamp (v? IN ) Indica si se debe optimizar por filestamp mayor o igual ('1'), solo igual ('2') o no optimizar ('0' <20> vac<61>o)
|
||||
* tc_InputFile (v! IN ) Nombre completo (fullpath) del archivo a convertir o nombre del directorio a procesar
|
||||
* tc_InputFile_Type (@? IN ) Tipo de archivo de entrada: (D)irectory, (F)ile, (Q)uerySupport
|
||||
* toParentCFG (@? IN ) (Uso interno) Si se pasa un valor, el nuevo CFG copiar<61> primero sus valores de aqu<71> para heredarlos
|
||||
@@ -1771,7 +1771,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
|
||||
CASE LEFT( laConfig(I), 20 ) == LOWER('OptimizeByFilestamp:')
|
||||
lcValue = ALLTRIM( SUBSTR( laConfig(I), 21 ) )
|
||||
IF NOT INLIST( TRANSFORM(tcOptimizeByFilestamp), '0', '1' ) AND INLIST( lcValue, '0', '1' ) THEN
|
||||
IF NOT INLIST( TRANSFORM(tcOptimizeByFilestamp), '0', '1', '2' ) AND INLIST( lcValue, '0', '1', '2' ) THEN
|
||||
tcOptimizeByFilestamp = lcValue
|
||||
.writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > OptimizeByFilestamp: ' + TRANSFORM(lcValue) )
|
||||
ENDIF
|
||||
@@ -1918,8 +1918,8 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
IF ISDIGIT(tcExtraBackupLevels)
|
||||
lo_CFG.n_ExtraBackupLevels = INT( VAL( TRANSFORM(tcExtraBackupLevels) ) )
|
||||
ENDIF
|
||||
IF INLIST( TRANSFORM(tcOptimizeByFilestamp), '0', '1' ) THEN
|
||||
lo_CFG.l_OptimizeByFilestamp = NOT (TRANSFORM(tcOptimizeByFilestamp) == '0')
|
||||
IF INLIST( TRANSFORM(tcOptimizeByFilestamp), '0', '1', '2' ) THEN
|
||||
lo_CFG.n_OptimizeByFilestamp = INT(VAL(tcOptimizeByFilestamp))
|
||||
ENDIF
|
||||
|
||||
.l_Main_CFG_Loaded = .T.
|
||||
@@ -1946,7 +1946,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
.writeLog( C_TAB + 'n_Debug: ' + TRANSFORM(.n_Debug) )
|
||||
.writeLog( C_TAB + 'n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) )
|
||||
.writeLog( C_TAB + 'c_BackgroundImage: ' + TRANSFORM(.c_BackgroundImage) )
|
||||
.writeLog( C_TAB + 'l_OptimizeByFilestamp: ' + TRANSFORM(.l_OptimizeByFilestamp) )
|
||||
.writeLog( C_TAB + 'n_OptimizeByFilestamp: ' + TRANSFORM(.n_OptimizeByFilestamp) )
|
||||
.writeLog( C_TAB + 'l_DropNullCharsFromCode: ' + TRANSFORM(.l_DropNullCharsFromCode) )
|
||||
.writeLog( C_TAB + 'l_ClearDBFLastUpdate: ' + TRANSFORM(.l_ClearDBFLastUpdate) )
|
||||
.writeLog( C_TAB + 'c_Language: ' + TRANSFORM(.c_Language) )
|
||||
@@ -2173,7 +2173,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
* tcNoTimestamps (v? IN ) Indica si se debe anular el timestamp ('1') o no ('0' <20> vac<61>o)
|
||||
* tcBackupLevels (v? IN ) Indica la cantidad de niveles de backup a realizar (por defecto '1')
|
||||
* tcClearUniqueID (v? IN ) Indica si se debe limpiar el UniqueID ('1') o no ('0' <20> vac<61>o)
|
||||
* tcOptimizeByFilestamp (v? IN ) Indica si se debe optimizar por filestamp ('1') o no ('0' <20> vac<61>o)
|
||||
* tcOptimizeByFilestamp (v? IN ) Indica si se debe optimizar por filestamp mayor o igual ('1'), solo igual ('2') o no optimizar ('0' <20> vac<61>o)
|
||||
* tcCFG_File (v? IN ) Indica si se debe usar un archivo de configuraci<63>n distinto al predeterminado
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ;
|
||||
@@ -2269,7 +2269,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
.writeLog( C_TAB + 'tcNoTimestamps: ' + TRANSFORM( EVL(tcNoTimestamps, '(empty) -> Will use Default [' + TRANSFORM(.l_NoTimestamps) + ']' ) ) )
|
||||
.writeLog( C_TAB + 'tcBackupLevels: ' + TRANSFORM( EVL(tcBackupLevels, '(empty) -> Will use Default [' + TRANSFORM(.n_ExtraBackupLevels) + ']' ) ) )
|
||||
.writeLog( C_TAB + 'tcClearUniqueID: ' + TRANSFORM( EVL(tcClearUniqueID, '(empty) -> Will use Default [' + TRANSFORM(.l_ClearUniqueID) + ']' ) ) )
|
||||
.writeLog( C_TAB + 'tcOptimizeByFilestamp: ' + TRANSFORM( EVL(tcOptimizeByFilestamp, '(empty) -> Will use Default [' + TRANSFORM(.l_OptimizeByFilestamp) + ']' ) ) )
|
||||
.writeLog( C_TAB + 'tcOptimizeByFilestamp: ' + TRANSFORM( EVL(tcOptimizeByFilestamp, '(empty) -> Will use Default [' + TRANSFORM(.n_OptimizeByFilestamp) + ']' ) ) )
|
||||
.writeLog( )
|
||||
|
||||
*-- ARCHIVO DE CONFIGURACI<43>N PRINCIPAL
|
||||
@@ -3211,7 +3211,18 @@ DEFINE CLASS c_foxbin2prg AS SESSION
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF NOT .l_OptimizeByFilestamp OR .t_InputFile_TimeStamp >= .t_OutputFile_TimeStamp THEN
|
||||
DO CASE
|
||||
CASE .n_OptimizeByFilestamp = 1 AND .t_InputFile_TimeStamp < .t_OutputFile_TimeStamp
|
||||
*-- Optimizado: El Origen es anterior al Destino - No hace falta regenerar
|
||||
*.writeLog( '> El archivo de salida [<<THIS.c_OutputFile>>] no se regenera porque su timestamp es m<>s nuevo que el de entrada.' )
|
||||
.writeLog( C_TAB + C_TAB + '* ' + TEXTMERGE(loLang.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC) )
|
||||
|
||||
CASE .n_OptimizeByFilestamp = 2 AND .t_InputFile_TimeStamp = .t_OutputFile_TimeStamp
|
||||
*-- Optimizado: El Origen es igual al Destino - No hace falta regenerar
|
||||
*.writeLog( '> El archivo de salida [<<THIS.c_OutputFile>>] no se regenera porque su timestamp es igual que el de entrada.' )
|
||||
.writeLog( C_TAB + C_TAB + '* ' + TEXTMERGE(loLang.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC) )
|
||||
|
||||
OTHERWISE
|
||||
.c_Type = UPPER(JUSTEXT(.c_OutputFile))
|
||||
loConversor.c_InputFile = .c_InputFile
|
||||
loConversor.c_OutputFile = .c_OutputFile
|
||||
@@ -24707,7 +24718,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
|
||||
+ [<memberdata name="l_cleardbflastupdate" display="l_ClearDBFLastUpdate"/>] ;
|
||||
+ [<memberdata name="n_debug" display="n_Debug"/>] ;
|
||||
+ [<memberdata name="l_notimestamps" display="l_NoTimestamps"/>] ;
|
||||
+ [<memberdata name="l_optimizebyfilestamp" display="l_OptimizeByFilestamp"/>] ;
|
||||
+ [<memberdata name="n_optimizebyfilestamp" display="n_OptimizeByFilestamp"/>] ;
|
||||
+ [<memberdata name="l_recompile" display="l_Recompile"/>] ;
|
||||
+ [<memberdata name="l_redirectclassperfiletomain" display="l_RedirectClassPerFileToMain"/>] ;
|
||||
+ [<memberdata name="l_showerrors" display="l_ShowErrors"/>] ;
|
||||
@@ -24743,7 +24754,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
|
||||
l_NoTimestamps = NULL
|
||||
l_ClearUniqueID = NULL
|
||||
l_ClearDBFLastUpdate = NULL
|
||||
l_OptimizeByFilestamp = NULL
|
||||
n_OptimizeByFilestamp = NULL
|
||||
l_RedirectClassPerFileToMain = NULL
|
||||
n_UseClassPerFile = NULL
|
||||
l_ClassPerFileCheck = NULL
|
||||
@@ -24784,7 +24795,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
|
||||
.l_NoTimestamps = toParentCFG.l_NoTimestamps
|
||||
.l_ClearUniqueID = toParentCFG.l_ClearUniqueID
|
||||
.l_ClearDBFLastUpdate = toParentCFG.l_ClearDBFLastUpdate
|
||||
.l_OptimizeByFilestamp = toParentCFG.l_OptimizeByFilestamp
|
||||
.n_OptimizeByFilestamp = toParentCFG.n_OptimizeByFilestamp
|
||||
.l_RedirectClassPerFileToMain = toParentCFG.l_RedirectClassPerFileToMain
|
||||
.n_UseClassPerFile = toParentCFG.n_UseClassPerFile
|
||||
.l_ClassPerFileCheck = toParentCFG.l_ClassPerFileCheck
|
||||
@@ -24888,7 +24899,8 @@ DEFINE CLASS CL_LANG AS Custom
|
||||
C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = ""
|
||||
C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = ""
|
||||
C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = ""
|
||||
C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = ""
|
||||
C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = ""
|
||||
C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = ""
|
||||
C_PRESS_ESC_TO_CANCEL = ""
|
||||
C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = ""
|
||||
C_PROCESSING_LOC = ""
|
||||
@@ -25000,7 +25012,8 @@ DEFINE CLASS CL_LANG AS Custom
|
||||
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La classe externe ne correspond pas <20> la classe interne"
|
||||
.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "L'<27>l<EFBFBD>ment ext<78>rieur ne correspond pas aux <20>l<EFBFBD>ments int<6E>rieur"
|
||||
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimisation: fichier de sortie [<<lcOutputFile>>] ne <20>tait pas <20>cras<61> parce que ce est la m<>me que celle g<>n<EFBFBD>r<EFBFBD>e."
|
||||
.C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimisation: fichier de sortie [<<THIS.c_OutputFile>>] n'a pas <20>t<EFBFBD> r<>g<EFBFBD>n<EFBFBD>r<EFBFBD> car il est plus r<>cent que le fichier d'entr<74>e."
|
||||
.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimisation: le fichier de sortie [<<THIS.c_OutputFile>>] pas r<>g<EFBFBD>n<EFBFBD>r<EFBFBD> en ayant le m<>me horodatage que l'entr<74>e."
|
||||
.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimisation: le fichier de sortie [<<THIS.c_OutputFile>>] n'a pas <20>t<EFBFBD> r<>g<EFBFBD>n<EFBFBD>r<EFBFBD> car il est plus r<>cent que le fichier d'entr<74>e."
|
||||
.C_PRESS_ESC_TO_CANCEL = "Appuyez sur Esc pour Annuler"
|
||||
.C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Proc<6F>dure pas ferm<72>. Derni<6E>re ligne de code doit <20>tre ENDPROC. [<<laLineas(1)>>, Recno:<<RECNO()>>]"
|
||||
.C_PROCESSING_LOC = "Traitement du fichier"
|
||||
@@ -25090,7 +25103,8 @@ DEFINE CLASS CL_LANG AS Custom
|
||||
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La clase externa no coincide con las clases internas"
|
||||
.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "El miembro externo no coincide con los miembros internos"
|
||||
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimizaci<63>n: el archivo de salida [<<lcOutputFile>>] no se sobreescribe por ser igual al generado."
|
||||
.C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimizaci<63>n: el archivo de salida [<<THIS.c_OutputFile>>] no se regenera por ser m<>s nuevo que el de entrada."
|
||||
.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimizaci<63>n: el archivo de salida [<<THIS.c_OutputFile>>] no se regenera por tener el mismo timestamp que el de entrada."
|
||||
.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimizaci<63>n: el archivo de salida [<<THIS.c_OutputFile>>] no se regenera por tener un timestamp m<>s nuevo que el de entrada."
|
||||
.C_PRESS_ESC_TO_CANCEL = "Pulse Esc para Cancelar"
|
||||
.C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Procedimiento sin cerrar. La <20>ltima l<>nea de c<>digo debe ser ENDPROC. [<<laLineas(1)>>, Recno:<<RECNO()>>]"
|
||||
.C_PROCESSING_LOC = "Procesando archivo"
|
||||
@@ -25180,7 +25194,8 @@ DEFINE CLASS CL_LANG AS Custom
|
||||
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "Die <20>u<EFBFBD>ere Klasse nicht die innere Klassifizierung anzeigen lassen"
|
||||
.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "Das <20>u<EFBFBD>ere Element nicht den inneren Elementen entsprechen"
|
||||
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimierung: Ausgabedatei [<<tcOutputFile>>] wurde nicht <20>berschrieben, da sie dieselbe ist wie die neu generierte."
|
||||
.C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimierung: Ausgabedatei [<<THIS.c_OutputFile>>] wurde nicht erneuert, da sie neuer ist als die Ursprungsdatei."
|
||||
.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimierung: Ausgabedatei [<<THIS.c_OutputFile>>] wurde nicht verl<EFBFBD>ngert, weil seine Zeitmarke ist die gleiche wie die Quelldatei."
|
||||
.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimierung: Ausgabedatei [<<THIS.c_OutputFile>>] wurde nicht erneuert, da sie neuer ist als die Ursprungsdatei."
|
||||
.C_PRESS_ESC_TO_CANCEL = "Dr<44>cken Sie Esc f<>r Abbrechen"
|
||||
.C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Prozcedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<<laLineas(1)>>, Recno:<<RECNO()>>]"
|
||||
.C_PROCESSING_LOC = "Bearbeite Datei"
|
||||
@@ -25270,7 +25285,8 @@ DEFINE CLASS CL_LANG AS Custom
|
||||
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "The outer class does not match the inner classes"
|
||||
.C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "The outer member does not match the inner members"
|
||||
.C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimization: output file [<<lcOutputFile>>] was not overwritten because it is the same as was generated."
|
||||
.C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimization: output file [<<THIS.c_OutputFile>>] was not regenerated because it is newer than the inputfile."
|
||||
.C_OUTPUTFILE_TIMESTAMP_EQUAL_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimization: output file [<<THIS.c_OutputFile>>] was not regenerated because it's filestamp is equal than the inputfile."
|
||||
.C_OUTPUTFILE_TIMESTAMP_NEWER_THAN_INPUTFILE_TIMESTAMP_LOC = "Optimization: output file [<<THIS.c_OutputFile>>] was not regenerated because it's filestamp is newer than the inputfile."
|
||||
.C_PRESS_ESC_TO_CANCEL = "Press Esc to Cancel"
|
||||
.C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Procedure not closed. Last line of code must be ENDPROC. [<<laLineas(1)>>, Recno:<<RECNO()>>]"
|
||||
.C_PROCESSING_LOC = "Processing file"
|
||||
|
||||
Reference in New Issue
Block a user