Changeset: 668 - Agregado soporte multi-proyecto (*.PJX, *.PJ2) cuando se especifica "file.pjx", "*" (Lutz Scheffler)

This commit is contained in:
fdbozzo
2015-03-05 00:29:19 +01:00
parent 38ab11a31c
commit c7ab04ea35

View File

@@ -490,6 +490,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
#ENDIF
_MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="a_processedfiles" display="a_ProcessedFiles"/>] ;
+ [<memberdata name="a_processedfiles_0" display="a_ProcessedFiles_0"/>] ;
+ [<memberdata name="avancedelproceso" display="AvanceDelProceso"/>] ;
+ [<memberdata name="convertir" display="Convertir"/>] ;
+ [<memberdata name="c_fb2prg_exe_version" display="c_FB2PRG_EXE_Version"/>] ;
@@ -518,6 +519,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [<memberdata name="compilefoxprobinary" display="compileFoxProBinary"/>] ;
+ [<memberdata name="dobackup" display="doBackup"/>] ;
+ [<memberdata name="ejecutar" display="Ejecutar"/>] ;
+ [<memberdata name="evaluate_full_pjx" display="Evaluate_Full_PJX"/>] ;
+ [<memberdata name="evaluate_full_pj2" display="Evaluate_Full_PJ2"/>] ;
+ [<memberdata name="ejecutar_writeerrorlog" display="ejecutar_WriteErrorLog"/>] ;
+ [<memberdata name="evaluarconfiguracion" display="EvaluarConfiguracion"/>] ;
+ [<memberdata name="exception2str" display="Exception2Str"/>] ;
@@ -560,6 +563,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [<memberdata name="n_fb2prg_version" display="n_FB2PRG_Version"/>] ;
+ [<memberdata name="n_filehandle" display="n_FileHandle"/>] ;
+ [<memberdata name="n_forcewriteifreadonly" display="n_ForceWriteIfReadOnly"/>] ;
+ [<memberdata name="n_processedfiles_0" display="n_ProcessedFiles_0"/>] ;
+ [<memberdata name="n_processedfiles" display="n_ProcessedFiles"/>] ;
+ [<memberdata name="n_processedfilescount" display="n_ProcessedFilesCount"/>] ;
+ [<memberdata name="normalizarcapitalizacionarchivos" display="normalizarCapitalizacionArchivos"/>] ;
@@ -595,7 +599,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [</VFPData>]
DIMENSION a_ProcessedFiles(1)
DIMENSION a_ProcessedFiles(1), a_ProcessedFiles_0(1)
PROTECTED l_ConfigEvaluated, n_CFG_Actual, l_Main_CFG_Loaded, o_Configuration, l_CFG_CachedAccess
*--
n_FB2PRG_Version = 1.19
@@ -649,6 +653,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
n_FileHandle = 0
n_ProcessedFiles = 0 && Contador usado para los archivos file.class.ext
n_ProcessedFilesCount = 0 && Contador gen<65>rico de procesados
n_ProcessedFiles_0 = 0 && Contador usado para los archivos file.ext
o_Conversor = NULL
o_Frm_Avance = NULL
o_WSH = NULL
@@ -1918,8 +1923,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
loLang = _SCREEN.o_FoxBin2Prg_Lang
loFSO = .o_FSO
loWSH = .o_WSH
*DIMENSION .a_ProcessedFiles(1)
*.n_ProcessedFiles = 0
DIMENSION .a_ProcessedFiles_0(1)
.n_ProcessedFiles_0 = 0
lnPCount = 0
lcInputFile_Type = ''
@@ -2042,7 +2047,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
*-- Evaluaci<63>n de FileSpec de entrada
DO CASE
CASE lcInputFile_Type == C_FILETYPE_FILE AND '*' $ JUSTEXT( tc_InputFile ) OR '?' $ JUSTEXT( tc_InputFile )
CASE lcInputFile_Type == C_FILETYPE_FILE AND ( '*' $ JUSTEXT( tc_InputFile ) OR '?' $ JUSTEXT( tc_InputFile ) )
IF .l_ShowErrors
*MESSAGEBOX( 'No se admiten extensiones * o ? porque es peligroso (se pueden pisar binarios con archivo xx2 vac<61>os).', 0+48+4096, 'FOXBIN2PRG: ERROR!!', 60000 )
MESSAGEBOX( loLang.C_ASTERISK_EXT_NOT_ALLOWED_LOC, 0+48+4096, loLang.C_FOXBIN2PRG_ERROR_CAPTION_LOC, 60000 )
@@ -2054,32 +2059,50 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
CASE lcInputFile_Type == C_FILETYPE_FILE AND '*' $ JUSTSTEM( tc_InputFile )
*-- SE QUIEREN TODOS LOS ARCHIVOS DE UNA EXTENSI<53>N
IF .n_ShowProgressbar <> 0 THEN
.cargar_frm_avance()
ENDIF
lcFileSpec = FULLPATH( tc_InputFile )
DO CASE
CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
CD (tcRecompile)
CASE tcRecompile == '1'
CD (JUSTPATH(lcFileSpec))
ENDCASE
IF EVL(tcType,'0') <> '*' THEN
IF .n_ShowProgressbar <> 0 THEN
.cargar_frm_avance()
ENDIF
.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
DO CASE
CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
CD (tcRecompile)
CASE tcRecompile == '1'
CD (JUSTPATH(lcFileSpec))
ENDCASE
IF .l_Debug
ERASE ( .c_LogFile )
.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
IF .l_Debug
ERASE ( .c_LogFile )
ENDIF
ENDIF
lnFileCount = ADIR( laFiles, lcFileSpec, '', 1 )
FOR I = 1 TO lnFileCount
lcFile = FORCEPATH( laFiles(I,1), JUSTPATH( lcFileSpec ) )
.AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
DO CASE
CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND EVL(tcType,'0') == '*'
*-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UNO O M<>S PROYECTOS PJX
*-- Filespec: "*.PJX", "*"
.Evaluate_Full_PJX(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName)
CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*'
*-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UNO O M<>S PROYECTOS PJ2
*-- Filespec: "*.PJ2", "*"
.Evaluate_Full_PJ2(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName)
OTHERWISE
*-- DEM<45>S ARCHIVOS
*-- Filespec: "*.EXT"
.AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDCASE
ENDFOR
EXIT
@@ -2243,114 +2266,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
DO CASE
CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND EVL(tcType,'0') == '*'
*-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO
IF .n_ShowProgressbar <> 0 THEN
.cargar_frm_avance()
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' )
ENDIF
.writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_BINARY_TO_TEXT_LOC )
lcFileSpec = FULLPATH( tc_InputFile )
DO CASE
CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
CD (tcRecompile)
CASE tcRecompile == '1'
CD (JUSTPATH(lcFileSpec))
ENDCASE
.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
IF .l_Debug
ERASE ( .c_LogFile )
ENDIF
SELECT 0
USE (tc_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
lnFileCount = 0
SCAN FOR NOT DELETED()
lnFileCount = lnFileCount + 1
DIMENSION laFiles(lnFileCount,1)
laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) )
ENDSCAN
USE IN (SELECT("TABLABIN"))
*-- Convierto primero el proyecto
lcFile = tc_InputFile
IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDIF
*-- Luego convierto los archivos incluidos
FOR I = 1 TO lnFileCount
lcFile = laFiles(I,1)
.AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDIF
ENDFOR
*-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO PJX
.Evaluate_Full_PJX(tc_InputFile, tcRecompile, @toModulo, @toEx, @tcOriginalFileName)
EXIT
CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*'
*-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO
IF .n_ShowProgressbar <> 0 THEN
.cargar_frm_avance()
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' )
ENDIF
.writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_TEXT_TO_BINARY_LOC )
lcFileSpec = FULLPATH( tc_InputFile )
DO CASE
CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
CD (tcRecompile)
CASE tcRecompile == '1'
CD (JUSTPATH(lcFileSpec))
ENDCASE
.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
IF .l_Debug
ERASE ( .c_LogFile )
ENDIF
lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 )
FOR I = lnFileCount TO 1 STEP -1
IF '.ADD(' $ laFiles(I)
laFiles(I) = ADDBS( JUSTPATH( lcFileSpec ) ) + STREXTRACT( laFiles(I), ".ADD('", "')" )
laFiles(I) = FORCEEXT( laFiles(I), .Get_Ext2FromExt( UPPER(JUSTEXT(laFiles(I))) ) )
ELSE
lnFileCount = lnFileCount - 1
ADEL( laFiles, I )
DIMENSION laFiles(lnFileCount)
ENDIF
ENDFOR
*-- Convierto primero el proyecto
lcFile = tc_InputFile
IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDIF
*-- Luego convierto los archivos incluidos
FOR I = 1 TO lnFileCount
lcFile = laFiles(I)
.AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDIF
ENDFOR
*-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO PJ2
.Evaluate_Full_PJ2(tc_InputFile, tcRecompile, @toModulo, @toEx, @tcOriginalFileName)
EXIT
CASE EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0'
@@ -2471,6 +2393,189 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ENDPROC
PROCEDURE Evaluate_Full_PJX
*--------------------------------------------------------------------------------------------------------------
* SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO PJX
*--------------------------------------------------------------------------------------------------------------
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
* tc_InputFile (v! IN ) Nombre del archivo de entrada
* tcRecompile (v? IN ) Indica recompilar ('1') el binario una vez regenerado. [Cambio de funcionamiento por defecto]
* Este cambio es para ganar tiempo, velocidad y seguridad. Adem<65>s la recompilaci<63>n que hace FoxBin2Prg
* se hace desde el directorio del archivo, con lo que las referencias relativas pueden
* generar errores de compilaci<63>n, t<>picamente los #include.
* NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usar<61> como base para recompilar
* toModulo (@? OUT) Referencia de objeto del m<>dulo generado (para Unit Testing)
* toEx (@? OUT) Objeto con informaci<63>n del error
* tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar
* el nombre correcto dentro de la versi<73>n texto (por ej: en los PJ2 y las cabeceras)
*--------------------------------------------------------------------------------------------------------------
LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName
LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount ;
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG'
TRY
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
loLang = _SCREEN.o_FoxBin2Prg_Lang
lcFileSpec = FULLPATH( tc_InputFile )
IF .n_ShowProgressbar <> 0 THEN
.cargar_frm_avance()
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' )
ENDIF
.writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_BINARY_TO_TEXT_LOC )
DO CASE
CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
CD (tcRecompile)
CASE tcRecompile == '1'
CD (JUSTPATH(lcFileSpec))
ENDCASE
.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
IF .l_Debug
ERASE ( .c_LogFile )
ENDIF
SELECT 0
USE (tc_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN
lnFileCount = 0
SCAN FOR NOT DELETED()
lnFileCount = lnFileCount + 1
DIMENSION laFiles(lnFileCount,1)
laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) )
ENDSCAN
USE IN (SELECT("TABLABIN"))
*-- Convierto primero el proyecto
lcFile = tc_InputFile
IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDIF
*-- Luego convierto los archivos incluidos
FOR I = 1 TO lnFileCount
lcFile = laFiles(I,1)
.AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
IF .n_ProcessedFiles_0 > 0 THEN
*-- Buscar si fue procesado antes
IF ASCAN( .a_ProcessedFiles_0, lcFile, 1, 0, 0, 1+2+4 ) > 0 THEN
*.writeLog( 'OPTIMIZACI<43>N: saltando archivo ya procesado [' + (lcFile) + ']' )
.writeLog( TEXTMERGE( loLang.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC ) )
LOOP
ENDIF
ENDIF
lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDIF
ENDFOR
.writeLog_Flush()
ENDWITH
ENDTRY
ENDPROC
PROCEDURE Evaluate_Full_PJ2
*--------------------------------------------------------------------------------------------------------------
* SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO PJ2
*--------------------------------------------------------------------------------------------------------------
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
* tc_InputFile (v! IN ) Nombre del archivo de entrada
* tcRecompile (v? IN ) Indica recompilar ('1') el binario una vez regenerado. [Cambio de funcionamiento por defecto]
* Este cambio es para ganar tiempo, velocidad y seguridad. Adem<65>s la recompilaci<63>n que hace FoxBin2Prg
* se hace desde el directorio del archivo, con lo que las referencias relativas pueden
* generar errores de compilaci<63>n, t<>picamente los #include.
* NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usar<61> como base para recompilar
* toModulo (@? OUT) Referencia de objeto del m<>dulo generado (para Unit Testing)
* toEx (@? OUT) Objeto con informaci<63>n del error
* tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar
* el nombre correcto dentro de la versi<73>n texto (por ej: en los PJ2 y las cabeceras)
*--------------------------------------------------------------------------------------------------------------
LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName
LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount ;
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG'
TRY
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
loLang = _SCREEN.o_FoxBin2Prg_Lang
lcFileSpec = FULLPATH( tc_InputFile )
IF .n_ShowProgressbar <> 0 THEN
.cargar_frm_avance()
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' )
ENDIF
.writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_TEXT_TO_BINARY_LOC )
DO CASE
CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile)
CD (tcRecompile)
CASE tcRecompile == '1'
CD (JUSTPATH(lcFileSpec))
ENDCASE
.c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG'
IF .l_Debug
ERASE ( .c_LogFile )
ENDIF
lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 )
FOR I = lnFileCount TO 1 STEP -1
IF '.ADD(' $ laFiles(I)
laFiles(I) = ADDBS( JUSTPATH( lcFileSpec ) ) + STREXTRACT( laFiles(I), ".ADD('", "')" )
laFiles(I) = FORCEEXT( laFiles(I), .Get_Ext2FromExt( UPPER(JUSTEXT(laFiles(I))) ) )
ELSE
lnFileCount = lnFileCount - 1
ADEL( laFiles, I )
DIMENSION laFiles(lnFileCount)
ENDIF
ENDFOR
*-- Convierto primero el proyecto
lcFile = tc_InputFile
IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDIF
*-- Luego convierto los archivos incluidos
FOR I = 1 TO lnFileCount
lcFile = laFiles(I)
.AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 )
IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile )
IF .n_ProcessedFiles_0 > 0 THEN
*-- Buscar si fue procesado antes
IF ASCAN( .a_ProcessedFiles_0, lcFile, 1, 0, 0, 1+2+4 ) > 0 THEN
*.writeLog( 'OPTIMIZACI<43>N: saltando archivo ya procesado [' + (lcFile) + ']' )
.writeLog( TEXTMERGE( loLang.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC ) )
LOOP
ENDIF
ENDIF
lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName )
.writeLog_Flush()
ENDIF
ENDFOR
.writeLog_Flush()
ENDWITH
ENDTRY
ENDPROC
HIDDEN PROCEDURE ejecutar_WriteErrorLog
LPARAMETERS toEx, tcErrorInfo
@@ -2567,7 +2672,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
ENDIF
ENDIF
IF NOT EMPTY(tcOriginalFileName)
tcOriginalFileName = loFSO.GetAbsolutePathName( tcOriginalFileName )
ENDIF
@@ -2578,6 +2682,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
.c_OriginalFileName = FORCEEXT(.c_OriginalFileName,'pjx')
ENDIF
*-- Conteo de archivos normales procesados
.n_ProcessedFiles_0 = .n_ProcessedFiles_0 + 1
DIMENSION .a_ProcessedFiles_0(.n_ProcessedFiles_0)
.a_ProcessedFiles_0(.n_ProcessedFiles_0) = .c_InputFile
.writeLog( C_TAB + 'c_OriginalFileName: ' + .c_OriginalFileName )
.writeLog( )
.o_Conversor = NULL
@@ -22331,6 +22440,7 @@ DEFINE CLASS CL_LANG AS Custom
C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = ""
C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = ""
C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = ""
C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = ""
C_OPTION_LOC = ""
C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = ""
C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = ""
@@ -22479,6 +22589,8 @@ DEFINE CLASS CL_LANG AS Custom
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Programme des noms de capitalisation [<<lcEXE_CAPS>>] introuvables"
.C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Object [<<toObj.CLASS>>] ne contient pas l'objet oReg (niveau <<TRANSFORM(tnNivel)>>)"
.C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Op<4F>ration non reconnu. Seulement SETNAME et GETNAME permis."
.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimisation: sauter fichier d<>j<EFBFBD> trait<69> [<<(lcFile)>>]"
.C_OPTION_LOC = "Option"
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La classe externe ne correspond pas <20> la classe interne"
.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."
@@ -22562,9 +22674,11 @@ DEFINE CLASS CL_LANG AS Custom
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* No se ha encontrado el programa de capitalizaci<63>n de nombres [<<lcEXE_CAPS>>]"
.C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objeto [<<toObj.CLASS>>] no contiene el objeto oReg (nivel <<TRANSFORM(tnNivel)>>)"
.C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Operaci<63>n no reconocida. Solo re reconoce SETNAME y GETNAME."
.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimizaci<63>n: saltando el archivo ya procesado [<<(lcFile)>>]"
.C_OPTION_LOC = "Option"
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La clase externa no coincide con la clase interna"
.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_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_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"
@@ -22645,6 +22759,8 @@ DEFINE CLASS CL_LANG AS Custom
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Programm f<>r Gro<72>schreibungssetzung [<<lcEXE_CAPS>>] nicht gefunden"
.C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objekt [<<toObj.CLASS>>] enth<74>lt nicht das oReg Objekt (level <<TRANSFORM(tnNivel)>>)"
.C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Befehl nicht erkannt. Nur SETNAME und GETNAME erlaubt."
.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimierung: <20>berspringen von bereits bearbeiteten Datei [<<(lcFile)>>]"
.C_OPTION_LOC = "Option"
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "Die <20>u<EFBFBD>ere Klasse nicht die innere Klassifizierung anzeigen lassen"
.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."
@@ -22676,7 +22792,7 @@ DEFINE CLASS CL_LANG AS Custom
.C_BACKLINK_OF_TABLE_LOC = "of table"
.C_BACKUP_OF_LOC = "Doing Backup of: "
.C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "Cannot generate file [<<THIS.c_OutputFile>>] because it is ReadOnly"
.C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "OPTIMIZATION: Base File [<<JUSTFNAME(lc_BaseFile)>>] already processed, skipping processing of file [<<JUSTFNAME(.c_InputFile)>>]"
.C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "Optimization: Base File [<<JUSTFNAME(lc_BaseFile)>>] already processed, skipping processing of file [<<JUSTFNAME(.c_InputFile)>>]"
.C_CONFIGFILE_LOC = "Using configuration file:"
.C_CONVERSION_CANCELLED_BY_USER_LOC = "Conversion Cancelled by the user"
.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC = "Convert all files in a Project"
@@ -22728,10 +22844,11 @@ DEFINE CLASS CL_LANG AS Custom
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Names capitalization program [<<lcEXE_CAPS>>] not found"
.C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Object [<<toObj.CLASS>>] does not contain oReg object (level <<TRANSFORM(tnNivel)>>)"
.C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Operation not recognized. Only SETNAME and GETNAME allowed."
.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimization: skipping already processed file [<<(lcFile)>>]"
.C_OPTION_LOC = "Option"
.C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "The outer class does not match the inner classes"
.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_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_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"