- Nueva optimización de regeneración solo cuando el timestamp de archivo origen y destino no sean iguales (desactivado por defecto e incompleto)

- Nueva función ChangeFileTime
- Mejora API: Nuevo método get_DirSettings() para devolver el objeto CFG del directorio indicado
This commit is contained in:
fdbozzo
2015-04-12 19:13:05 +02:00

View File

@@ -156,6 +156,7 @@
* 25/03/2015 FDBOZZO v1.19.42 Mejora API: Nueva propiedad l_ProcessFiles que permite obtener la lista de archivos a procesar sin procesarlos realmente usando el valor .F. * 25/03/2015 FDBOZZO v1.19.42 Mejora API: Nueva propiedad l_ProcessFiles que permite obtener la lista de archivos a procesar sin procesarlos realmente usando el valor .F.
* 25/03/2015 FDBOZZO v1.19.42 Bug Fix frx/lbx: Arreglo de CR,LF,TAB sobrantes en algunos archivos FR2/LB2 agregados en versiones anteriores (Ryan Harris) * 25/03/2015 FDBOZZO v1.19.42 Bug Fix frx/lbx: Arreglo de CR,LF,TAB sobrantes en algunos archivos FR2/LB2 agregados en versiones anteriores (Ryan Harris)
* 02/04/2015 FDBOZZO v1.19.42 Mejora: Herencia de CFGs entre directorios * 02/04/2015 FDBOZZO v1.19.42 Mejora: Herencia de CFGs entre directorios
* 12/04/2015 FDBOZZO v1.19.42 Mejora API: Crear un m<>todo API get_DirSettings() para obtener informaci<63>n de seteos del directorio indicado (Lutz Scheffler)
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES> * </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -233,6 +234,7 @@
* 23/03/2015 Lutz Scheffler Reporte bug mnx v1.19.41: No se mantiene el Pad vac<61>o al regenerar el men<65> cuando se define un menu con un Pad sin nombre (Arreglado en v1.19.42) * 23/03/2015 Lutz Scheffler Reporte bug mnx v1.19.41: No se mantiene el Pad vac<61>o al regenerar el men<65> cuando se define un menu con un Pad sin nombre (Arreglado en v1.19.42)
* 24/03/2015 Ryan Harris Reporte bug frx/lbx v1.19.41: Hay algunos CR,LF,TAB sobrantes en las etiquetas tag de algunos archivos FR2/LB2 (Arreglado en v1.19.42) * 24/03/2015 Ryan Harris Reporte bug frx/lbx v1.19.41: Hay algunos CR,LF,TAB sobrantes en las etiquetas tag de algunos archivos FR2/LB2 (Arreglado en v1.19.42)
* 24/03/2015 Ryan Harris Mejora v1.19.41: Borrar archivos ERR al procesar, cuando se usa UseClassPerFile (Agregado en v1.19.42) * 24/03/2015 Ryan Harris Mejora v1.19.41: Borrar archivos ERR al procesar, cuando se usa UseClassPerFile (Agregado en v1.19.42)
* 10/04/2015 Lutz Scheffler Mejora v1.19.41: Crear un m<>todo API get_DirSettings() para obtener informaci<63>n de seteos del directorio indicado (Agregado en v1.19.42)
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)> * </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -246,10 +248,12 @@
* tc_InputFile (v! IN ) Nombre completo (fullpath) del archivo a convertir o nombre del directorio a procesar * tc_InputFile (v! IN ) Nombre completo (fullpath) del archivo a convertir o nombre del directorio a procesar
* - Si se indica "BIN2PRG", se procesa el directorio indicado en tcType para generar los TX2 * - Si se indica "BIN2PRG", se procesa el directorio indicado en tcType para generar los TX2
* - Si se indica "PRG2BIN", se procesa el directorio indicado en tcType para generar los BIN * - Si se indica "PRG2BIN", se procesa el directorio indicado en tcType para generar los BIN
* tcType (v? IN ) Tipo de archivo de entrada. Compatibilidad con SCCTEXT.PRG * - En modo compatibilidad con Visual SourceSafe, se usa para preguntar el tipo de soporte de conversi<73>n para el tipo de archivo indicado
* tcType (v? IN ) Tipo de archivo de entrada
* - Si se indica "*" y tc_InputFile es un PJX, se procesa todo el proyecto * - Si se indica "*" y tc_InputFile es un PJX, se procesa todo el proyecto
* tcTextName (v? IN ) Nombre del archivo texto. Compatibilidad con SCCTEXT.PRG * - En modo compatibilidad con Visual SourceSafe, indica el tipo de archivo a convertir
* tlGenText (v? IN ) .T.=Genera Texto, .F.=Genera Binario. Compatibilidad con SCCTEXT.PRG * tcTextName (v? IN ) Nombre del archivo texto. (Solo para compatibilidad con Visual SourceSafe)
* tlGenText (v? IN ) .T.=Genera Texto, .F.=Genera Binario. (Solo para compatibilidad con Visual SourceSafe)
* tcDontShowErrors (v? IN ) '1' para NO mostrar errores con MESSAGEBOX * tcDontShowErrors (v? IN ) '1' para NO mostrar errores con MESSAGEBOX
* tcDebug (v? IN ) '1' para depurar en el sitio donde ocurre el error (solo modo desarrollo) * tcDebug (v? IN ) '1' para depurar en el sitio donde ocurre el error (solo modo desarrollo)
* tcDontShowProgress (v? IN ) '1' para NO mostrar la ventana de progreso * tcDontShowProgress (v? IN ) '1' para NO mostrar la ventana de progreso
@@ -497,7 +501,7 @@ ADDPROPERTY(_SCREEN, 'ExitCode', lnResp)
IF _VFP.STARTMODE <> 4 && 4 = Visual FoxPro was started as a distributable .app or .exe file. IF _VFP.STARTMODE <> 4 && 4 = Visual FoxPro was started as a distributable .app or .exe file.
STORE NULL TO loEx, loCnv STORE NULL TO loEx, loCnv
RELEASE loEx, loCnv RELEASE loEx, loCnv
RETURN lnResp RETURN lnResp && lnResp contiene un c<>digo de error, pero invocado desde SourceSafe puede contener el tipo de soporte de archivo (0,1,2).
ENDIF ENDIF
IF EMPTY(lnResp) OR VARTYPE(loEx) # "O" IF EMPTY(lnResp) OR VARTYPE(loEx) # "O"
@@ -516,7 +520,7 @@ QUIT
DEFINE CLASS c_foxbin2prg AS SESSION DEFINE CLASS c_foxbin2prg AS Session
_MEMBERDATA = [<VFPData>] ; _MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="addprocessedfile" display="addProcessedFile"/>] ; + [<memberdata name="addprocessedfile" display="addProcessedFile"/>] ;
+ [<memberdata name="avancedelproceso" display="AvanceDelProceso"/>] ; + [<memberdata name="avancedelproceso" display="AvanceDelProceso"/>] ;
@@ -546,6 +550,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
+ [<memberdata name="c_sc2" display="c_SC2"/>] ; + [<memberdata name="c_sc2" display="c_SC2"/>] ;
+ [<memberdata name="c_vc2" display="c_VC2"/>] ; + [<memberdata name="c_vc2" display="c_VC2"/>] ;
+ [<memberdata name="changefileattribute" display="ChangeFileAttribute"/>] ; + [<memberdata name="changefileattribute" display="ChangeFileAttribute"/>] ;
+ [<memberdata name="changefiletime" display="ChangeFileTime"/>] ;
+ [<memberdata name="compilefoxprobinary" display="compileFoxProBinary"/>] ; + [<memberdata name="compilefoxprobinary" display="compileFoxProBinary"/>] ;
+ [<memberdata name="dobackup" display="doBackup"/>] ; + [<memberdata name="dobackup" display="doBackup"/>] ;
+ [<memberdata name="ejecutar" display="Ejecutar"/>] ; + [<memberdata name="ejecutar" display="Ejecutar"/>] ;
@@ -557,6 +562,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
+ [<memberdata name="filenamefoundinfilter" display="FilenameFoundInFilter"/>] ; + [<memberdata name="filenamefoundinfilter" display="FilenameFoundInFilter"/>] ;
+ [<memberdata name="filescomparedareequal" display="FilesComparedAreEqual"/>] ; + [<memberdata name="filescomparedareequal" display="FilesComparedAreEqual"/>] ;
+ [<memberdata name="changelanguage" display="ChangeLanguage"/>] ; + [<memberdata name="changelanguage" display="ChangeLanguage"/>] ;
+ [<memberdata name="get_dirsettings" display="get_DirSettings"/>] ;
+ [<memberdata name="get_l_cfg_cachedaccess" display="get_l_CFG_CachedAccess"/>] ; + [<memberdata name="get_l_cfg_cachedaccess" display="get_l_CFG_CachedAccess"/>] ;
+ [<memberdata name="get_l_configevaluated" display="get_l_ConfigEvaluated"/>] ; + [<memberdata name="get_l_configevaluated" display="get_l_ConfigEvaluated"/>] ;
+ [<memberdata name="get_textfilenames" display="get_TextFileNames"/>] ; + [<memberdata name="get_textfilenames" display="get_TextFileNames"/>] ;
@@ -581,7 +587,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
+ [<memberdata name="l_methodsort_enabled" display="l_MethodSort_Enabled"/>] ; + [<memberdata name="l_methodsort_enabled" display="l_MethodSort_Enabled"/>] ;
+ [<memberdata name="l_notimestamps" display="l_NoTimestamps"/>] ; + [<memberdata name="l_notimestamps" display="l_NoTimestamps"/>] ;
+ [<memberdata name="c_backgroundimage" display="c_BackgroundImage"/>] ; + [<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_propsort_enabled" display="l_PropSort_Enabled"/>] ;
+ [<memberdata name="l_recompile" display="l_Recompile"/>] ; + [<memberdata name="l_recompile" display="l_Recompile"/>] ;
+ [<memberdata name="l_redirectclassperfiletomain" display="l_RedirectClassPerFileToMain"/>] ; + [<memberdata name="l_redirectclassperfiletomain" display="l_RedirectClassPerFileToMain"/>] ;
@@ -680,7 +686,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
c_BackgroundImage = '' c_BackgroundImage = ''
l_ClearUniqueID = .T. l_ClearUniqueID = .T.
l_ClearDBFLastUpdate = .T. l_ClearDBFLastUpdate = .T.
l_OptimizeByFilestamp = .F. n_OptimizeByFilestamp = 0
l_MethodSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias 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_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 l_ReportSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
@@ -751,9 +757,20 @@ DEFINE CLASS c_foxbin2prg AS SESSION
ENDIF ENDIF
*-- Funciones para escribir en StdOut *-- Funciones para escribir en StdOut
DECLARE INTEGER GetStdHandle IN Win32API INTEGER nHandleType DECLARE INTEGER 'GetStdHandle' IN WIN32API AS fb2p_GetStdHandle INTEGER nHandleType
DECLARE INTEGER WriteFile IN Win32API INTEGER hFile, STRING @ cBuffer ; DECLARE INTEGER 'WriteFile' IN WIN32API AS fb2p_WriteFile INTEGER hFile, STRING @ cBuffer, INTEGER nBytes, INTEGER @ nBytes2, INTEGER @ nBytes3
, INTEGER nBytes, INTEGER @ nBytes2, INTEGER @ nBytes3 *-- Funciones para ChangeFileTime
DECLARE INTEGER 'SetFileTime' IN WIN32API AS fb2p_SetFileTime INTEGER hFile, STRING lpCreationTime, STRING lpLastAccessTime, STRING lpLastWriteTime
DECLARE INTEGER 'GetFileAttributesEx' IN Win32API AS fb2p_GetFileAttributesEx STRING lpFileName, INTEGER fInfoLevelId, STRING @ lpFileInformation
DECLARE INTEGER 'LocalFileTimeToFileTime' IN Win32API AS fb2p_LocalFileTimeToFileTime STRING LOCALFILETIME, STRING @ FILETIME
DECLARE INTEGER 'FileTimeToSystemTime' IN Win32API AS fb2p_FileTimeToSystemTime STRING FILETIME, STRING @ SYSTEMTIME
DECLARE INTEGER 'SystemTimeToFileTime' IN Win32API AS fb2p_SystemTimeToFileTime STRING lpSYSTEMTIME, STRING @ FILETIME
DECLARE INTEGER '_lopen' IN Win32API AS fb2p_lopen STRING lpFileName, INTEGER iReadWrite
DECLARE INTEGER '_lclose' IN Win32API AS fb2p_lclose INTEGER hFile
*-- Funciones para ChangeFileAttributes
DECLARE SHORT 'SetFileAttributes' IN Win32API AS fb2p_SetFileAttributes STRING tcFileName, INTEGER dwFileAttributes
DECLARE INTEGER 'GetFileAttributes' IN Win32API AS fb2p_GetFileAttributes STRING tcFileName
*--
IF FILE(THIS.c_ErrorLogFile) THEN IF FILE(THIS.c_ErrorLogFile) THEN
ERASE (THIS.c_ErrorLogFile + '.BAK') ERASE (THIS.c_ErrorLogFile + '.BAK')
@@ -815,6 +832,13 @@ DEFINE CLASS c_foxbin2prg AS SESSION
THIS.o_FSO = NULL THIS.o_FSO = NULL
THIS.o_WSH = NULL THIS.o_WSH = NULL
THIS.o_FNC = NULL THIS.o_FNC = NULL
*-- Funciones para ChangeFileAttributes
CLEAR DLLS fb2p_SetFileAttributes, fb2p_GetFileAttributes
*-- Funciones para escribir en StdOut
CLEAR DLLS fb2p_GetStdHandle, fb2p_WriteFile
*-- Funciones para ChangeFileTime
CLEAR DLLS fb2p_SetFileTime, fb2p_GetFileAttributesEx, fb2p_LocalFileTimeToFileTime ;
, fb2p_FileTimeToSystemTime, fb2p_SystemTimeToFileTime, fb2p_lopen, fb2p_lclose
ENDTRY ENDTRY
RETURN RETURN
@@ -877,7 +901,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
TRY TRY
*-- Si o_Frm_Avance se habilit<69> de forma externa, n_ShowProgressbar podr<64>a ser 0 para controlarlo desde fuera. *-- Si o_Frm_Avance se habilit<69> de forma externa, n_ShowProgressbar podr<64>a ser 0 para controlarlo desde fuera.
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
IF .l_ProcessFiles AND VARTYPE(.o_Frm_Avance) = "O" THEN IF VARTYPE(.o_Frm_Avance) = "O" THEN
*-- Cuando esta rutina se invoca desde el script, este m<>todo es el #1 y no puede cancelarse todav<61>a *-- Cuando esta rutina se invoca desde el script, este m<>todo es el #1 y no puede cancelarse todav<61>a
IF .o_Frm_Avance.l_Cancelled AND PROGRAM(-1) > 1 THEN IF .o_Frm_Avance.l_Cancelled AND PROGRAM(-1) > 1 THEN
ERROR 1799 ERROR 1799
@@ -1072,11 +1096,11 @@ DEFINE CLASS c_foxbin2prg AS SESSION
ENDPROC ENDPROC
PROCEDURE l_OptimizeByFilestamp_ACCESS PROCEDURE n_OptimizeByFilestamp_ACCESS
IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) ) IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) )
RETURN THIS.l_OptimizeByFilestamp RETURN THIS.n_OptimizeByFilestamp
ELSE 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 ENDIF
ENDPROC ENDPROC
@@ -1279,8 +1303,6 @@ DEFINE CLASS c_foxbin2prg AS SESSION
TRY TRY
LOCAL loEx AS EXCEPTION, dwFileAttributes, dwFileAttributes_Orig, lnRet LOCAL loEx AS EXCEPTION, dwFileAttributes, dwFileAttributes_Orig, lnRet
DECLARE SHORT 'SetFileAttributes' IN kernel32 AS fb2p_SetFileAttributes STRING tcFileName, INTEGER dwFileAttributes
DECLARE INTEGER 'GetFileAttributes' IN kernel32 AS fb2p_GetFileAttributes STRING tcFileName
lnRet = 0 lnRet = 0
* read current attributes for this file * read current attributes for this file
@@ -1352,7 +1374,6 @@ DEFINE CLASS c_foxbin2prg AS SESSION
FINALLY FINALLY
THIS.writeLog( C_TAB + LOWER(PROGRAM()) + ' >> [' + tcFileName + '] lnRet = ' + TRANSFORM(lnRet) + ', dwFileAttributes_Orig = ' + TRANSFORM(dwFileAttributes_Orig) ) THIS.writeLog( C_TAB + LOWER(PROGRAM()) + ' >> [' + tcFileName + '] lnRet = ' + TRANSFORM(lnRet) + ', dwFileAttributes_Orig = ' + TRANSFORM(dwFileAttributes_Orig) )
CLEAR DLLS fb2p_SetFileAttributes, fb2p_GetFileAttributes
RELEASE tcFileName, tcAttrib, dwFileAttributes RELEASE tcFileName, tcAttrib, dwFileAttributes
ENDTRY ENDTRY
@@ -1360,6 +1381,96 @@ DEFINE CLASS c_foxbin2prg AS SESSION
ENDPROC ENDPROC
PROCEDURE ChangeFileTime
*---------------------------------------------------------------------------------------------------
* CAMBIAR LA FECHA/HORA DE UN ARCHIVO
*---------------------------------------------------------------------------------------------------
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
* tcFileName (v! IN ) Nombre del archivo
* tcTimeType (v? IN ) C=Creation time, W=Last Write, A=Last Access
* tnYear (v? IN ) A<>o (>=1800)
* tnMonth (v? IN ) Mes (1-12)
* tnDay (v? IN ) D<>a (1-31)
* tnHour (v? IN ) Hora (0-23)
* tnMinute (v? IN ) Minuto (0-59)
* tnSec (v? IN ) Segundo (0-59)
* tnThou (v? IN ) <20>? (0-999)
*---------------------------------------------------------------------------------------------------
LPARAMETERS m.tcFileName, m.tcTimeType, m.tnYear, m.tnMonth, m.tnDay, m.tnHour, m.tnMinute, m.tnSec, m.tnThou
#DEFINE OF_READWRITE 2
LOCAL m.lpFileInformation, m.cS, m.nPar, m.fh, M.lpFileInformation, m.lpSysTime, m.cCreation ;
, M.cLastAccess, m.cLastWrite, m.cBuffTime, m.cBuffTime1, M.cTT,m.nYear1, m.nMonth1, m.nDay1, m.nHour1 ;
, M.nMinute1, m.nSec1, m.nThou1, llRetorno
TRY
m.nPar = PCOUNT()
IF m.nPar < 1
EXIT
ENDIF
m.cTT = IIF( m.nPar >= 2 AND VARTYPE(m.tcTimeType) = "C" AND NOT EMPTY(m.tcTimeType), LOWER(SUBSTR(m.tcTimeType,1,1)), "c" )
m.nYear1 = IIF( m.nPar >= 3 AND VARTYPE(m.tnYear) $ "FIN" AND m.tnYear >= 1800, ROUND(m.tnYear,0), -1 )
m.nMonth1 = IIF( m.nPar >= 4 AND VARTYPE(m.tnMonth) $ "FIN" AND BETWEEN(m.tnMonth,1,12), ROUND(m.tnMonth,0), -1 )
m.nDay1 = IIF( m.nPar >= 5 AND VARTYPE(m.tnDay) $ "FIN" AND BETWEEN(m.tnDay,1,31), ROUND(m.tnDay,0), -1 )
m.nHour1 = IIF( m.nPar >= 6 AND VARTYPE(m.tnHour) $ "FIN" AND BETWEEN(m.tnHour,0,23), ROUND(m.tnHour,0), -1 )
m.nMinute1 = IIF( m.nPar >= 7 AND VARTYPE(m.tnMinute) $ "FIN" AND BETWEEN(m.tnMinute,0,59), ROUND(m.tnMinute,0), -1 )
m.nSec1 = IIF( m.nPar >= 8 AND VARTYPE(m.tnSec) $ "FIN" AND BETWEEN(m.tnSec,0,59), ROUND(m.tnSec,0), -1 )
m.nThou1 = IIF( m.nPar >= 9 AND VARTYPE(m.tnThou) $ "FIN" AND BETWEEN(m.tnThou,0,999), ROUND(m.tnThou,0), -1 )
m.lpFileInformation = REPLICATE( CHR(0), 53 ) && just a buffer
m.lpSysTime = REPLICATE( CHR(0), 16 ) && just a buffer
IF fb2p_GetFileAttributesEx(m.tcFileName, 0, @lpFileInformation) = 0
EXIT
ENDIF
m.cCreation = SUBSTR(m.lpFileInformation,5,8)
m.cLastAccess = SUBSTR(m.lpFileInformation,13,8)
m.cLastWrite = SUBSTR(m.lpFileInformation,21,8)
m.cBuffTime = IIF(m.cTT="w",m.cLastWrite, IIF(m.cTT="a",m.cLastAccess,m.cCreation))
fb2p_FileTimeToSystemTime(m.cBuffTime, @lpSysTime)
m.lpSysTime = ;
IIF( m.nYear1 >= 0, BINTOC(m.nYear1,"2RS"), SUBSTR(m.lpSysTime,1,2) ) ;
+ IIF( m.nMonth1 >= 0, BINTOC(m.nMonth1,"2RS"), SUBSTR(m.lpSysTime,3,2) ) ;
+ SUBSTR(m.lpSysTime,5,2) ;
+ IIF( m.nDay1 >= 0, BINTOC(m.nDay1,"2RS"), SUBSTR(m.lpSysTime,7,2) ) ;
+ IIF( m.nHour1 >= 0, BINTOC(m.nHour1,"2RS"), SUBSTR(m.lpSysTime,9,2) ) ;
+ IIF( m.nMinute1 >= 0, BINTOC(m.nMinute1,"2RS"), SUBSTR(m.lpSysTime,11,2) ) ;
+ IIF( m.nSec1 >= 0, BINTOC(m.nSec1,"2RS"), SUBSTR(m.lpSysTime,13,2) ) ;
+ IIF( m.nThou1 >= 0, BINTOC(m.nThou1,"2RS"), SUBSTR(m.lpSysTime,15,2) )
fb2p_SystemTimeToFileTime(m.lpSysTime,@cBuffTime)
m.cBuffTime1 = m.cBuffTime
fb2p_LocalFileTimeToFileTime(m.cBuffTime1,@cBuffTime)
DO CASE
CASE m.cTT = "w"
m.cLastWrite=m.cBuffTime
CASE m.cTT = "a"
m.cLastAccess=m.cBuffTime
OTHERWISE && "c"
m.cCreation=m.cBuffTime
ENDCASE
m.fh = fb2p_lopen (m.tcFileName, OF_READWRITE)
IF m.fh < 0
EXIT
ENDIF
fb2p_SetFileTime (m.fh,m.cCreation, m.cLastAccess, m.cLastWrite)
fb2p_lclose(m.fh)
llRetorno = .T.
ENDTRY
RETURN llRetorno
ENDPROC
PROCEDURE compileFoxProBinary PROCEDURE compileFoxProBinary
LPARAMETERS tcFileName LPARAMETERS tcFileName
LOCAL lcType LOCAL lcType
@@ -1532,7 +1643,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 * 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') * 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) * 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 (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 * 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 * toParentCFG (@? IN ) (Uso interno) Si se pasa un valor, el nuevo CFG copiar<61> primero sus valores de aqu<71> para heredarlos
@@ -1771,7 +1882,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
CASE LEFT( laConfig(I), 20 ) == LOWER('OptimizeByFilestamp:') CASE LEFT( laConfig(I), 20 ) == LOWER('OptimizeByFilestamp:')
lcValue = ALLTRIM( SUBSTR( laConfig(I), 21 ) ) 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 tcOptimizeByFilestamp = lcValue
.writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > OptimizeByFilestamp: ' + TRANSFORM(lcValue) ) .writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > OptimizeByFilestamp: ' + TRANSFORM(lcValue) )
ENDIF ENDIF
@@ -1918,8 +2029,8 @@ DEFINE CLASS c_foxbin2prg AS SESSION
IF ISDIGIT(tcExtraBackupLevels) IF ISDIGIT(tcExtraBackupLevels)
lo_CFG.n_ExtraBackupLevels = INT( VAL( TRANSFORM(tcExtraBackupLevels) ) ) lo_CFG.n_ExtraBackupLevels = INT( VAL( TRANSFORM(tcExtraBackupLevels) ) )
ENDIF ENDIF
IF INLIST( TRANSFORM(tcOptimizeByFilestamp), '0', '1' ) THEN IF INLIST( TRANSFORM(tcOptimizeByFilestamp), '0', '1', '2' ) THEN
lo_CFG.l_OptimizeByFilestamp = NOT (TRANSFORM(tcOptimizeByFilestamp) == '0') lo_CFG.n_OptimizeByFilestamp = INT(VAL(tcOptimizeByFilestamp))
ENDIF ENDIF
.l_Main_CFG_Loaded = .T. .l_Main_CFG_Loaded = .T.
@@ -1946,7 +2057,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
.writeLog( C_TAB + 'n_Debug: ' + TRANSFORM(.n_Debug) ) .writeLog( C_TAB + 'n_Debug: ' + TRANSFORM(.n_Debug) )
.writeLog( C_TAB + 'n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) ) .writeLog( C_TAB + 'n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) )
.writeLog( C_TAB + 'c_BackgroundImage: ' + TRANSFORM(.c_BackgroundImage) ) .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_DropNullCharsFromCode: ' + TRANSFORM(.l_DropNullCharsFromCode) )
.writeLog( C_TAB + 'l_ClearDBFLastUpdate: ' + TRANSFORM(.l_ClearDBFLastUpdate) ) .writeLog( C_TAB + 'l_ClearDBFLastUpdate: ' + TRANSFORM(.l_ClearDBFLastUpdate) )
.writeLog( C_TAB + 'c_Language: ' + TRANSFORM(.c_Language) ) .writeLog( C_TAB + 'c_Language: ' + TRANSFORM(.c_Language) )
@@ -2150,13 +2261,15 @@ DEFINE CLASS c_foxbin2prg AS SESSION
*-------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT) * PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
* tc_InputFile (v! IN ) Nombre completo (fullpath) del archivo a convertir o nombre del directorio a procesar * tc_InputFile (v! IN ) Nombre completo (fullpath) del archivo a convertir o nombre del directorio a procesar
* - En modo compatibilidad con Visual SourceSafe, se usa para preguntar el tipo de soporte de conversi<73>n para el tipo de archivo indicado
* tcType (v? IN ) Tipo de archivo de entrada. Compatibilidad con SCCTEXT.PRG * tcType (v? IN ) Tipo de archivo de entrada. Compatibilidad con SCCTEXT.PRG
* - Si se indica "*" y tc_InputFile es un PJX, se procesan todos los archivos del proyecto y el PJX/2 * - Si se indica "*" y tc_InputFile es un PJX, se procesan todos los archivos del proyecto y el PJX/2
* - Si se indica "*-" y tc_InputFile es un PJX, se procesan todos los archivos del proyecto sin el PJX/2 * - Si se indica "*-" y tc_InputFile es un PJX, se procesan todos los archivos del proyecto sin el PJX/2
* - Si se indica "BIN2PRG", se procesa el directorio indicado en tc_InputFile para generar los TX2 * - Si se indica "BIN2PRG", se procesa el directorio indicado en tc_InputFile para generar los TX2
* - Si se indica "PRG2BIN", se procesa el directorio indicado en tc_InputFile para generar los BIN * - Si se indica "PRG2BIN", se procesa el directorio indicado en tc_InputFile para generar los BIN
* tcTextName (v? IN ) Nombre del archivo texto. Compatibilidad con SCCTEXT.PRG * - En modo compatibilidad con Visual SourceSafe, indica el tipo de archivo a convertir
* tlGenText (v? IN ) .T.=Genera Texto, .F.=Genera Binario. Compatibilidad con SCCTEXT.PRG * tcTextName (v? IN ) Nombre del archivo texto. (Solo para compatibilidad con Visual SourceSafe)
* tlGenText (v? IN ) .T.=Genera Texto, .F.=Genera Binario. (Solo para compatibilidad con Visual SourceSafe)
* tcDontShowErrors (v? IN ) '1' para no mostrar mensajes de error (MESSAGEBOX) * tcDontShowErrors (v? IN ) '1' para no mostrar mensajes de error (MESSAGEBOX)
* tcDebug (v? IN ) '1' para habilitar modo debug (SOLO DESARROLLO) * tcDebug (v? IN ) '1' para habilitar modo debug (SOLO DESARROLLO)
* tcDontShowProgress (v? IN ) '1' para inhabilitar la barra de progreso * tcDontShowProgress (v? IN ) '1' para inhabilitar la barra de progreso
@@ -2173,7 +2286,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) * 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') * 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) * 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 * 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 ; LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ;
@@ -2199,6 +2312,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
lnPCount = 0 lnPCount = 0
lcInputFile_Type = '' lcInputFile_Type = ''
IF .l_AutoClearProcessedFiles THEN IF .l_AutoClearProcessedFiles THEN
.ClearProcessedFiles() && Para evitar acumular procesos anteriores .ClearProcessedFiles() && Para evitar acumular procesos anteriores
ENDIF ENDIF
@@ -2269,7 +2383,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
.writeLog( C_TAB + 'tcNoTimestamps: ' + TRANSFORM( EVL(tcNoTimestamps, '(empty) -> Will use Default [' + TRANSFORM(.l_NoTimestamps) + ']' ) ) ) .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 + '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 + '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( ) .writeLog( )
*-- ARCHIVO DE CONFIGURACI<43>N PRINCIPAL *-- ARCHIVO DE CONFIGURACI<43>N PRINCIPAL
@@ -2302,6 +2416,15 @@ DEFINE CLASS c_foxbin2prg AS SESSION
loFrm_Interactive.Show() loFrm_Interactive.Show()
READ EVENTS READ EVENTS
lnConversionOption = loFrm_Interactive.n_ConversionType lnConversionOption = loFrm_Interactive.n_ConversionType
IF loFrm_Interactive.l_FileTimeStampOptimization
IF .n_OptimizeByFilestamp = 0 THEN
.n_OptimizeByFilestamp = 2
ENDIF
ELSE
.n_OptimizeByFilestamp = 0
ENDIF
loFrm_Interactive.Release() loFrm_Interactive.Release()
loFrm_Interactive = NULL loFrm_Interactive = NULL
@@ -2340,7 +2463,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
ENDIF ENDIF
IF EVL(tcType,'0') <> '*' THEN IF EVL(tcType,'0') <> '*' THEN
IF .n_ShowProgressbar <> 0 THEN IF .n_ShowProgressbar <> 0 AND .l_ProcessFiles THEN
.cargar_frm_avance() .cargar_frm_avance()
ENDIF ENDIF
@@ -2383,7 +2506,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
CASE ATC('-BIN2PRG', ('-' + tcType)) >= 1 CASE ATC('-BIN2PRG', ('-' + tcType)) >= 1
.writeLog( '> ' + loLang.C_OPTION_LOC + ': BIN2PRG' ) .writeLog( '> ' + loLang.C_OPTION_LOC + ': BIN2PRG' )
IF .n_ShowProgressbar <> 0 THEN IF .n_ShowProgressbar <> 0 AND .l_ProcessFiles THEN
.cargar_frm_avance() .cargar_frm_avance()
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' ) .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' )
ENDIF ENDIF
@@ -2443,7 +2566,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
CASE ATC('-PRG2BIN', ('-' + tcType)) >= 1 CASE ATC('-PRG2BIN', ('-' + tcType)) >= 1
.writeLog( '> ' + loLang.C_OPTION_LOC + ': PRG2BIN' ) .writeLog( '> ' + loLang.C_OPTION_LOC + ': PRG2BIN' )
IF .n_ShowProgressbar <> 0 THEN IF .n_ShowProgressbar <> 0 AND .l_ProcessFiles THEN
.cargar_frm_avance() .cargar_frm_avance()
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' ) .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' )
ENDIF ENDIF
@@ -2535,7 +2658,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
lnCodError = .PJX_Conversion_Support lnCodError = .PJX_Conversion_Support
OTHERWISE OTHERWISE
lnCodError = -1 lnCodError = -1 && No support.
ENDCASE ENDCASE
ELSE ELSE
@@ -2567,7 +2690,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
ENDCASE ENDCASE
IF FILE(tc_InputFile) IF FILE(tc_InputFile)
IF .n_ShowProgressbar = 1 THEN IF .n_ShowProgressbar <> 0 AND .l_ProcessFiles THEN
.cargar_frm_avance() .cargar_frm_avance()
ENDIF ENDIF
@@ -2708,7 +2831,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
loLang = _SCREEN.o_FoxBin2Prg_Lang loLang = _SCREEN.o_FoxBin2Prg_Lang
lcFileSpec = FULLPATH( tc_InputFile ) lcFileSpec = FULLPATH( tc_InputFile )
IF .n_ShowProgressbar <> 0 THEN IF .n_ShowProgressbar <> 0 AND .l_ProcessFiles THEN
.cargar_frm_avance() .cargar_frm_avance()
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' ) .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' )
ENDIF ENDIF
@@ -2809,7 +2932,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
loLang = _SCREEN.o_FoxBin2Prg_Lang loLang = _SCREEN.o_FoxBin2Prg_Lang
lcFileSpec = FULLPATH( tc_InputFile ) lcFileSpec = FULLPATH( tc_InputFile )
IF .n_ShowProgressbar <> 0 THEN IF .n_ShowProgressbar <> 0 AND .l_ProcessFiles THEN
.cargar_frm_avance() .cargar_frm_avance()
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' ) .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' )
ENDIF ENDIF
@@ -2929,7 +3052,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
LOCAL lnCodError, lcErrorInfo, laDirFile(1,5), lcExtension, lnFileCount, laFiles(1,1), I ; LOCAL lnCodError, lcErrorInfo, laDirFile(1,5), lcExtension, lnFileCount, laFiles(1,1), I ;
, ltFilestamp, lcExtA, lcExtB, laEvents(1,1), lcForceAttribs ; , ltFilestamp, lcExtA, lcExtB, laEvents(1,1), lcForceAttribs ;
, loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ; , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ;
, loConversor as C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' ; , loConversor as c_conversor_base OF 'FOXBIN2PRG.PRG' ;
, loFSO AS Scripting.FileSystemObject , loFSO AS Scripting.FileSystemObject
lnCodError = 0 lnCodError = 0
@@ -3177,6 +3300,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION
STORE {//::} TO .t_InputFile_TimeStamp, .t_OutputFile_TimeStamp, ltFilestamp STORE {//::} TO .t_InputFile_TimeStamp, .t_OutputFile_TimeStamp, ltFilestamp
IF lnFileCount >= 1 THEN IF lnFileCount >= 1 THEN
*-- Busca el archivo de entrada original
I = ASCAN( laFiles, JUSTFNAME(.c_InputFile), 1, 0, 1, 1+2+4+8 ) I = ASCAN( laFiles, JUSTFNAME(.c_InputFile), 1, 0, 1, 1+2+4+8 )
IF I > 0 THEN IF I > 0 THEN
.t_InputFile_TimeStamp = DATETIME( YEAR(laFiles(I,3)), MONTH(laFiles(I,3)), DAY(laFiles(I,3)) ; .t_InputFile_TimeStamp = DATETIME( YEAR(laFiles(I,3)), MONTH(laFiles(I,3)), DAY(laFiles(I,3)) ;
@@ -3207,11 +3331,23 @@ DEFINE CLASS c_foxbin2prg AS SESSION
ENDCASE ENDCASE
*-- Tomo el m<>ximo timestamp de los archivos de salida (??X/??T)
.t_OutputFile_TimeStamp = MAX( .t_OutputFile_TimeStamp, ltFilestamp ) .t_OutputFile_TimeStamp = MAX( .t_OutputFile_TimeStamp, ltFilestamp )
ENDIF ENDIF
ENDIF ENDIF
IF NOT .l_OptimizeByFilestamp OR .t_InputFile_TimeStamp >= .t_OutputFile_TimeStamp THEN DO CASE
CASE .n_UseClassPerFile = 0 AND .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_UseClassPerFile = 0 AND .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)) .c_Type = UPPER(JUSTEXT(.c_OutputFile))
loConversor.c_InputFile = .c_InputFile loConversor.c_InputFile = .c_InputFile
loConversor.c_OutputFile = .c_OutputFile loConversor.c_OutputFile = .c_OutputFile
@@ -3285,6 +3421,18 @@ DEFINE CLASS c_foxbin2prg AS SESSION
ENDPROC ENDPROC
PROCEDURE get_DirSettings
*---------------------------------------------------------------------------------------------------
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
* tcDir (@? IN ) Directorio del que devolver su configuraci<63>n
* RETORNO (@? OUT) Objeto CFG
*---------------------------------------------------------------------------------------------------
LPARAMETERS tcDir
THIS.EvaluarConfiguracion( '', '', '', '', '', '', '', '', tcDir, 'D' )
RETURN THIS.o_Configuration(THIS.n_CFG_Actual)
ENDPROC
PROCEDURE get_PROGRAM_HEADER PROCEDURE get_PROGRAM_HEADER
LOCAL lcText LOCAL lcText
lcText = '' lcText = ''
@@ -3595,10 +3743,10 @@ DEFINE CLASS c_foxbin2prg AS SESSION
IF THIS.l_StdOutHabilitado IF THIS.l_StdOutHabilitado
LOCAL loException as Exception, lcOutput, lnOutHandle, lnBytesWritten, lnOverlappedIO LOCAL loException as Exception, lcOutput, lnOutHandle, lnBytesWritten, lnOverlappedIO
lcOutput = EVL(tcTexto,'') + CR_LF lcOutput = EVL(tcTexto,'') + CR_LF
lnOutHandle = GetStdHandle(-12) && CAPTURAR ERROR DESDE CONSOLA: FOXBIN2PRG.EXE PARAMS 2>&1 | FIND /V "" lnOutHandle = fb2p_GetStdHandle(-12) && CAPTURAR ERROR DESDE CONSOLA: FOXBIN2PRG.EXE PARAMS 2>&1 | FIND /V ""
lnBytesWritten = 0 lnBytesWritten = 0
lnOverlappedIO = 0 lnOverlappedIO = 0
WriteFile(lnOutHandle, @lcOutput, LEN(lcOutput), @lnBytesWritten, @lnOverlappedIO) fb2p_WriteFile(lnOutHandle, @lcOutput, LEN(lcOutput), @lnBytesWritten, @lnOverlappedIO)
ENDIF ENDIF
CATCH TO loException CATCH TO loException
@@ -3618,10 +3766,10 @@ DEFINE CLASS c_foxbin2prg AS SESSION
IF THIS.l_StdOutHabilitado IF THIS.l_StdOutHabilitado
LOCAL loException as Exception, lcOutput, lnOutHandle, lnBytesWritten, lnOverlappedIO LOCAL loException as Exception, lcOutput, lnOutHandle, lnBytesWritten, lnOverlappedIO
lcOutput = EVL(tcTexto,'') + CR_LF lcOutput = EVL(tcTexto,'') + CR_LF
lnOutHandle = GetStdHandle(-11) && CAPTURAR STDOUT DESDE CONSOLA: FOXBIN2PRG.EXE PARAMS | FIND /V "" lnOutHandle = fb2p_GetStdHandle(-11) && CAPTURAR STDOUT DESDE CONSOLA: FOXBIN2PRG.EXE PARAMS | FIND /V ""
lnBytesWritten = 0 lnBytesWritten = 0
lnOverlappedIO = 0 lnOverlappedIO = 0
WriteFile(lnOutHandle, @lcOutput, LEN(lcOutput), @lnBytesWritten, @lnOverlappedIO) fb2p_WriteFile(lnOutHandle, @lcOutput, LEN(lcOutput), @lnBytesWritten, @lnOverlappedIO)
ENDIF ENDIF
CATCH TO loException CATCH TO loException
@@ -3786,7 +3934,7 @@ ENDDEFINE
DEFINE CLASS frm_avance AS FORM DEFINE CLASS frm_avance AS Form
Height = 110 Height = 110
Width = 628 Width = 628
ShowWindow = 2 ShowWindow = 2
@@ -4215,10 +4363,15 @@ DEFINE CLASS frm_avance AS FORM
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
LOCAL THISFORM AS frm_avance OF foxbin2prg.prg LOCAL THISFORM AS frm_avance OF foxbin2prg.prg
#ENDIF #ENDIF
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
loLang = _SCREEN.o_FoxBin2Prg_Lang
IF VARTYPE(toFoxBin2Prg) = "O" THEN IF VARTYPE(toFoxBin2Prg) = "O" THEN
IF TYPE("_SCREEN.o_FoxBin2Prg_Lang") = "O" THEN
loLang = _SCREEN.o_FoxBin2Prg_Lang
THISFORM.CAPTION = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' > - ' + loLang.C_PROCESS_PROGRESS_LOC + ' (' + loLang.C_PRESS_ESC_TO_CANCEL + ')'
ENDIF
IF FILE( FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) ) THEN IF FILE( FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) ) THEN
THIS.Icon = FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) THIS.Icon = FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' )
ENDIF ENDIF
@@ -4228,7 +4381,6 @@ DEFINE CLASS frm_avance AS FORM
ENDIF ENDIF
ENDIF ENDIF
THISFORM.CAPTION = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' > - ' + loLang.C_PROCESS_PROGRESS_LOC + ' (' + loLang.C_PRESS_ESC_TO_CANCEL + ')'
THISFORM.nValue = 0 THISFORM.nValue = 0
THISFORM.nValue2 = 0 THISFORM.nValue2 = 0
THISFORM.nLastSecCount = SECONDS() THISFORM.nLastSecCount = SECONDS()
@@ -4258,26 +4410,44 @@ ENDDEFINE
DEFINE CLASS frm_interactive AS form DEFINE CLASS frm_interactive AS Form
Height = 102 Height = 114
Width = 380 Width = 380
ShowWindow = 2 ShowWindow = 2
DoCreate = .T. DoCreate = .T.
AutoCenter = .T. AutoCenter = .T.
BorderStyle = 2 BorderStyle = 2
Caption = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' - ' + _SCREEN.o_FoxBin2Prg_Lang.C_CONVERT_FOLDER_LOC Caption = "FoxBin2Prg"
ControlBox = .F. ControlBox = .F.
AlwaysOnTop = .T. AlwaysOnTop = .T.
BackColor = RGB(255,255,255) BackColor = RGB(255,255,255)
n_ConversionType = 3 n_ConversionType = 3
l_FileTimeStampOptimization = .F.
Name = "frm_interactive" Name = "frm_interactive"
_memberdata = [<VFPData>] ;
+ [<memberdata name="n_conversiontype" display="n_ConversionType"/>] ;
+ [<memberdata name="l_filetimestampoptimization" display="l_FileTimeStampOptimization"/>] ;
+ [</VFPData>]
ADD OBJECT 'chk_FileTimeStampOptimization' AS checkbox WITH ;
Alignment = 0, ;
BackStyle = 0, ;
Caption = "chk_FileTimeStampOptimization", ;
ControlSource = "THISFORM.l_FileTimeStampOptimization", ;
Enabled = .T., ;
Height = 17, ;
Left = 40, ;
Name = "chk_FileTimeStampOptimization", ;
Top = 92, ;
Width = 300
ADD OBJECT lbl_title AS label WITH ; ADD OBJECT lbl_title AS label WITH ;
WordWrap = .T., ; WordWrap = .T., ;
Alignment = 2, ; Alignment = 2, ;
BackStyle = 0, ; BackStyle = 0, ;
Caption = _SCREEN.o_FoxBin2Prg_Lang.C_CONVERT_FOLDER_QUESTION_LOC, ; Caption = "lbl_title", ;
Height = 36, ; Height = 36, ;
Left = 12, ; Left = 12, ;
Top = 16, ; Top = 16, ;
@@ -4287,29 +4457,29 @@ DEFINE CLASS frm_interactive AS form
ADD OBJECT cmd_Bin2Prg AS commandbutton WITH ; ADD OBJECT cmd_Bin2Prg AS commandbutton WITH ;
Top = 64, ; Top = 58, ;
Left = 40, ; Left = 40, ;
Height = 27, ; Height = 27, ;
Width = 92, ; Width = 92, ;
Caption = _SCREEN.o_FoxBin2Prg_Lang.C_BINARY_TO_TEXT_LOC, ; Caption = "cmd_Bin2Prg", ;
Name = "cmd_Bin2Prg" Name = "cmd_Bin2Prg"
ADD OBJECT cmd_Prg2Bin AS commandbutton WITH ; ADD OBJECT cmd_Prg2Bin AS commandbutton WITH ;
Top = 64, ; Top = 58, ;
Left = 144, ; Left = 144, ;
Height = 27, ; Height = 27, ;
Width = 92, ; Width = 92, ;
Caption = _SCREEN.o_FoxBin2Prg_Lang.C_TEXT_TO_BINARY_LOC, ; Caption = "cmd_Prg2Bin", ;
Name = "cmd_Prg2Bin" Name = "cmd_Prg2Bin"
ADD OBJECT cmd_None AS commandbutton WITH ; ADD OBJECT cmd_None AS commandbutton WITH ;
Top = 64, ; Top = 58, ;
Left = 248, ; Left = 248, ;
Height = 27, ; Height = 27, ;
Width = 92, ; Width = 92, ;
Caption = _SCREEN.o_FoxBin2Prg_Lang.C_CONVERT_FOLDER_NONE_LOC, ; Caption = "cmd_None", ;
Cancel = .T., ; Cancel = .T., ;
Name = "cmd_None" Name = "cmd_None"
@@ -4317,7 +4487,29 @@ DEFINE CLASS frm_interactive AS form
PROCEDURE INIT PROCEDURE INIT
LPARAMETERS toFoxBin2Prg LPARAMETERS toFoxBin2Prg
#IF .F.
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
#ENDIF
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
IF VARTYPE(toFoxBin2Prg) = "O" THEN IF VARTYPE(toFoxBin2Prg) = "O" THEN
IF VARTYPE(_SCREEN.o_FoxBin2Prg_Lang) = "O" THEN
loLang = _SCREEN.o_FoxBin2Prg_Lang
IF PEMSTATUS(_SCREEN, 'c_FB2PRG_EXE_Version', 5) THEN
THISFORM.Caption = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' - ' + loLang.C_CONVERT_FOLDER_LOC
ENDIF
THISFORM.chk_FileTimeStampOptimization.Caption = loLang.C_USE_FILE_TIMESTAMP_OPTIMIZATION_LOC
THISFORM.lbl_title.Caption = loLang.C_CONVERT_FOLDER_QUESTION_LOC
THISFORM.cmd_Bin2Prg.Caption = loLang.C_BINARY_TO_TEXT_LOC
THISFORM.cmd_Prg2Bin.Caption = loLang.C_TEXT_TO_BINARY_LOC
THISFORM.cmd_None.Caption = loLang.C_CONVERT_FOLDER_NONE_LOC
ENDIF
THISFORM.l_FileTimeStampOptimization = (toFoxBin2Prg.n_OptimizeByFilestamp <> 0)
IF FILE( FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) ) THEN IF FILE( FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) ) THEN
THIS.Icon = FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' ) THIS.Icon = FORCEEXT( toFoxBin2Prg.c_Foxbin2prg_FullPath, 'ICO' )
ENDIF ENDIF
@@ -4356,9 +4548,9 @@ ENDDEFINE
DEFINE CLASS C_CONVERSOR_BASE AS SESSION DEFINE CLASS c_conversor_base AS Session
#IF .F. #IF .F.
LOCAL THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' LOCAL THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
#ENDIF #ENDIF
_MEMBERDATA = [<VFPData>] ; _MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="analizarasignacion_tag_indicado" display="analizarAsignacion_TAG_Indicado"/>] ; + [<memberdata name="analizarasignacion_tag_indicado" display="analizarAsignacion_TAG_Indicado"/>] ;
@@ -4534,7 +4726,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
llBloqueEncontrado = .T. llBloqueEncontrado = .T.
LOCAL lcLine, lnArrayCols LOCAL lcLine, lnArrayCols
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
*-- Propiedad especial *-- Propiedad especial
IF tcTAG_F $ tcValue && El fin de tag est<73> "inline" IF tcTAG_F $ tcValue && El fin de tag est<73> "inline"
@@ -4808,7 +5000,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
LPARAMETERS tcAsignacion LPARAMETERS tcAsignacion
LOCAL lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos, lcComentario LOCAL lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos, lcComentario
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
.get_SeparatedPropAndValue( @tcAsignacion, @lcPropName, @lcValor ) .get_SeparatedPropAndValue( @tcAsignacion, @lcPropName, @lcValor )
lcComentario = '' lcComentario = ''
.desnormalizarValorPropiedad( @lcPropName, @lcValor, @lcComentario ) .desnormalizarValorPropiedad( @lcPropName, @lcValor, @lcComentario )
@@ -4982,7 +5174,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
LOCAL lcTimeStamp,lnYear,lnMonth,lnDay,lnHour,lnMinutes,lnSeconds,lcTime,lnHour,ltTimeStamp,lnResto ; LOCAL lcTimeStamp,lnYear,lnMonth,lnDay,lnHour,lnMinutes,lnSeconds,lcTime,lnHour,ltTimeStamp,lnResto ;
,lcTimeStamp_Ret, laDirInfo[1,5], loEx AS EXCEPTION ,lcTimeStamp_Ret, laDirInfo[1,5], loEx AS EXCEPTION
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
lcTimeStamp_Ret = '' lcTimeStamp_Ret = ''
IF EMPTY(tnTimeStamp) IF EMPTY(tnTimeStamp)
@@ -5156,7 +5348,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
IF PCOUNT() > 3 IF PCOUNT() > 3
*-- EVALUAR UNA ASIGNACI<43>N QUE PUEDE SER MULTIL<49>NEA (memberdata, fb2p_value, etc) *-- EVALUAR UNA ASIGNACI<43>N QUE PUEDE SER MULTIL<49>NEA (memberdata, fb2p_value, etc)
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
DO CASE DO CASE
CASE .analizarAsignacion_TAG_Indicado( @tcPropName, @tcValue, @taCodeLines, tnCodeLines, @I ; CASE .analizarAsignacion_TAG_Indicado( @tcPropName, @tcValue, @taCodeLines, tnCodeLines, @I ;
, C_FB2P_VALUE_I, C_FB2P_VALUE_F, C_LEN_FB2P_VALUE_I, C_LEN_FB2P_VALUE_F ) , C_FB2P_VALUE_I, C_FB2P_VALUE_F, C_LEN_FB2P_VALUE_I, C_LEN_FB2P_VALUE_F )
@@ -5237,7 +5429,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
ENDIF ENDIF
*-- B<>squeda del ID de inicio de bloque *-- B<>squeda del ID de inicio de bloque
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
FOR I = 1 TO tnCodeLines FOR I = 1 TO tnCodeLines
* Reduzco los espacios. Ej: '#IF .F. && cmt' ==> '#IF .F.&&cmt' * Reduzco los espacios. Ej: '#IF .F. && cmt' ==> '#IF .F.&&cmt'
*lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( taCodeLines(I), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) *lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( taCodeLines(I), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) )
@@ -5349,7 +5541,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
LPARAMETERS tcLine, tcComment LPARAMETERS tcLine, tcComment
LOCAL lllineIsOnlyCommentAndNoMetadata, ln_AT_Cmt LOCAL lllineIsOnlyCommentAndNoMetadata, ln_AT_Cmt
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
.get_SeparatedLineAndComment( @tcLine, @tcComment ) .get_SeparatedLineAndComment( @tcLine, @tcComment )
DO CASE DO CASE
@@ -5372,7 +5564,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
LPARAMETERS tcAsignacion, tcComentario LPARAMETERS tcAsignacion, tcComentario
LOCAL lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos LOCAL lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
.get_SeparatedPropAndValue( @tcAsignacion, @lcPropName, @lcValor ) .get_SeparatedPropAndValue( @tcAsignacion, @lcPropName, @lcValor )
tcComentario = '' tcComentario = ''
.normalizarValorPropiedad( @lcPropName, @lcValor, @tcComentario ) .normalizarValorPropiedad( @lcPropName, @lcValor, @tcComentario )
@@ -5694,7 +5886,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
DIMENSION laPropsAndValues( tnPropsAndValues_Count, lnArrayCols ) DIMENSION laPropsAndValues( tnPropsAndValues_Count, lnArrayCols )
ACOPY( taPropsAndValues, laPropsAndValues ) ACOPY( taPropsAndValues, laPropsAndValues )
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
IF m.tnSortType >= 1 IF m.tnSortType >= 1
* CON SORT: * CON SORT:
* - A las que no tienen '.' les pongo 'A' por delante, y al resto 'B' por delante para que queden al final * - A las que no tienen '.' les pongo 'A' por delante, y al resto 'B' por delante para que queden al final
@@ -6036,7 +6228,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
LPARAMETERS tcText, tnTimeStamp LPARAMETERS tcText, tnTimeStamp
TRY TRY
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG'
*-- Seg<65>n el valor de nTimestamp: *-- Seg<65>n el valor de nTimestamp:
*-- 0 = Sin timestamp *-- 0 = Sin timestamp
*-- 1 = Timestamp por delante *-- 1 = Timestamp por delante
@@ -6070,7 +6262,7 @@ ENDDEFINE
DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
#IF .F. #IF .F.
LOCAL THIS AS c_conversor_prg_a_bin OF 'FOXBIN2PRG.PRG' LOCAL THIS AS c_conversor_prg_a_bin OF 'FOXBIN2PRG.PRG'
#ENDIF #ENDIF
@@ -11379,7 +11571,7 @@ ENDDEFINE && CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin
DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
#IF .F. #IF .F.
LOCAL THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG' LOCAL THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
#ENDIF #ENDIF
@@ -24110,7 +24302,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE
ENDDEFINE ENDDEFINE
DEFINE CLASS CL_DBF_UTILS AS SESSION DEFINE CLASS CL_DBF_UTILS AS Session
_MEMBERDATA = [<VFPData>] ; _MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="fields" display="Fields"/>] ; + [<memberdata name="fields" display="Fields"/>] ;
+ [<memberdata name="c_backlink_dbc_name" display="c_Backlink_DBC_Name"/>] ; + [<memberdata name="c_backlink_dbc_name" display="c_Backlink_DBC_Name"/>] ;
@@ -24707,7 +24899,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
+ [<memberdata name="l_cleardbflastupdate" display="l_ClearDBFLastUpdate"/>] ; + [<memberdata name="l_cleardbflastupdate" display="l_ClearDBFLastUpdate"/>] ;
+ [<memberdata name="n_debug" display="n_Debug"/>] ; + [<memberdata name="n_debug" display="n_Debug"/>] ;
+ [<memberdata name="l_notimestamps" display="l_NoTimestamps"/>] ; + [<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_recompile" display="l_Recompile"/>] ;
+ [<memberdata name="l_redirectclassperfiletomain" display="l_RedirectClassPerFileToMain"/>] ; + [<memberdata name="l_redirectclassperfiletomain" display="l_RedirectClassPerFileToMain"/>] ;
+ [<memberdata name="l_showerrors" display="l_ShowErrors"/>] ; + [<memberdata name="l_showerrors" display="l_ShowErrors"/>] ;
@@ -24743,7 +24935,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
l_NoTimestamps = NULL l_NoTimestamps = NULL
l_ClearUniqueID = NULL l_ClearUniqueID = NULL
l_ClearDBFLastUpdate = NULL l_ClearDBFLastUpdate = NULL
l_OptimizeByFilestamp = NULL n_OptimizeByFilestamp = NULL
l_RedirectClassPerFileToMain = NULL l_RedirectClassPerFileToMain = NULL
n_UseClassPerFile = NULL n_UseClassPerFile = NULL
l_ClassPerFileCheck = NULL l_ClassPerFileCheck = NULL
@@ -24784,7 +24976,7 @@ DEFINE CLASS CL_CFG AS CUSTOM
.l_NoTimestamps = toParentCFG.l_NoTimestamps .l_NoTimestamps = toParentCFG.l_NoTimestamps
.l_ClearUniqueID = toParentCFG.l_ClearUniqueID .l_ClearUniqueID = toParentCFG.l_ClearUniqueID
.l_ClearDBFLastUpdate = toParentCFG.l_ClearDBFLastUpdate .l_ClearDBFLastUpdate = toParentCFG.l_ClearDBFLastUpdate
.l_OptimizeByFilestamp = toParentCFG.l_OptimizeByFilestamp .n_OptimizeByFilestamp = toParentCFG.n_OptimizeByFilestamp
.l_RedirectClassPerFileToMain = toParentCFG.l_RedirectClassPerFileToMain .l_RedirectClassPerFileToMain = toParentCFG.l_RedirectClassPerFileToMain
.n_UseClassPerFile = toParentCFG.n_UseClassPerFile .n_UseClassPerFile = toParentCFG.n_UseClassPerFile
.l_ClassPerFileCheck = toParentCFG.l_ClassPerFileCheck .l_ClassPerFileCheck = toParentCFG.l_ClassPerFileCheck
@@ -24888,7 +25080,8 @@ DEFINE CLASS CL_LANG AS Custom
C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "" C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = ""
C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "" C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = ""
C_OUTPUT_FILE_IS_NOT_OVERWRITEN_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_PRESS_ESC_TO_CANCEL = ""
C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "" C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = ""
C_PROCESSING_LOC = "" C_PROCESSING_LOC = ""
@@ -24903,6 +25096,7 @@ DEFINE CLASS CL_LANG AS Custom
C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "" C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = ""
C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "" C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = ""
C_UNKNOWN_CLASS_NAME_LOC = "" C_UNKNOWN_CLASS_NAME_LOC = ""
C_USE_FILE_TIMESTAMP_OPTIMIZATION_LOC = ""
C_USING_THIS_SETTINGS_LOC = "" C_USING_THIS_SETTINGS_LOC = ""
C_WARNING_LOC = "" C_WARNING_LOC = ""
C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "" C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = ""
@@ -25000,7 +25194,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_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_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_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_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_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" .C_PROCESSING_LOC = "Traitement du fichier"
@@ -25015,6 +25210,7 @@ DEFINE CLASS CL_LANG AS Custom
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Nesting erreur de structure. ENDPROC pr<70>vu, mais a trouv<75> ENDDEFINE sur la classe <<toClase._Nombre>> (<<loProcedure._Nombre>>), ligne <<TRANSFORM(I)>> du fichier <<THIS.c_InputFile>>" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Nesting erreur de structure. ENDPROC pr<70>vu, mais a trouv<75> ENDDEFINE sur la classe <<toClase._Nombre>> (<<loProcedure._Nombre>>), ligne <<TRANSFORM(I)>> du fichier <<THIS.c_InputFile>>"
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Nesting erreur de structure. ENDPROC attendue, mais ENDDEFINE sur la classe <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), ligne <<TRANSFORM(I)>> du fichier <<THIS.c_InputFile>>" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Nesting erreur de structure. ENDPROC attendue, mais ENDDEFINE sur la classe <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), ligne <<TRANSFORM(I)>> du fichier <<THIS.c_InputFile>>"
.C_UNKNOWN_CLASS_NAME_LOC = "Classe inconnue[<<THIS.CLASS>>]" .C_UNKNOWN_CLASS_NAME_LOC = "Classe inconnue[<<THIS.CLASS>>]"
.C_USE_FILE_TIMESTAMP_OPTIMIZATION_LOC = "Utilisez le fichier Optimisation d'horodatage"
.C_USING_THIS_SETTINGS_LOC = "Utilisation de ce param<61>tre" .C_USING_THIS_SETTINGS_LOC = "Utilisation de ce param<61>tre"
.C_WARNING_LOC = "AVERTISSEMENT!" .C_WARNING_LOC = "AVERTISSEMENT!"
.C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "AVERTISSEMENT!" + CR_LF+ "ASSUREZ VOUS NE UTILISEZ PAS UN ALIAS DE TABLE SUR LES EXPRESSIONS INDEX CL<43>S!! (exemple: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)" .C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "AVERTISSEMENT!" + CR_LF+ "ASSUREZ VOUS NE UTILISEZ PAS UN ALIAS DE TABLE SUR LES EXPRESSIONS INDEX CL<43>S!! (exemple: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)"
@@ -25090,7 +25286,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_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_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_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_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_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" .C_PROCESSING_LOC = "Procesando archivo"
@@ -25105,6 +25302,7 @@ DEFINE CLASS CL_LANG AS Custom
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Error de anidamiento de estructuras. Se esperaba ENDPROC pero se encontr<74> ENDDEFINE en la clase <<toClase._Nombre>> (<<loProcedure._Nombre>>), l<>nea <<TRANSFORM(I)>> del archivo <<THIS.c_InputFile>>" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Error de anidamiento de estructuras. Se esperaba ENDPROC pero se encontr<74> ENDDEFINE en la clase <<toClase._Nombre>> (<<loProcedure._Nombre>>), l<>nea <<TRANSFORM(I)>> del archivo <<THIS.c_InputFile>>"
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Error de anidamiento de estructuras. Se esperaba ENDPROC pero se encontr<74> ENDDEFINE en la clase <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), l<>nea <<TRANSFORM(I)>> del archivo <<THIS.c_InputFile>>" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Error de anidamiento de estructuras. Se esperaba ENDPROC pero se encontr<74> ENDDEFINE en la clase <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), l<>nea <<TRANSFORM(I)>> del archivo <<THIS.c_InputFile>>"
.C_UNKNOWN_CLASS_NAME_LOC = "Clase [<<THIS.CLASS>>] desconocida" .C_UNKNOWN_CLASS_NAME_LOC = "Clase [<<THIS.CLASS>>] desconocida"
.C_USE_FILE_TIMESTAMP_OPTIMIZATION_LOC = "Usar Optimizaci<63>n de filestamp de archivo"
.C_USING_THIS_SETTINGS_LOC = "Usando esta configuraci<63>n" .C_USING_THIS_SETTINGS_LOC = "Usando esta configuraci<63>n"
.C_WARNING_LOC = "<22>ATENCI<43>N!" .C_WARNING_LOC = "<22>ATENCI<43>N!"
.C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "<22>ATENCI<43>N!" + CR_LF+ "ASEG<45>RESE DE QUE NO EST<53> USANDO UN ALIAS DE TABLA EN LAS EXPRESIONES DE LOS <20>NDICES!! (ej: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag nombreclave)" .C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "<22>ATENCI<43>N!" + CR_LF+ "ASEG<45>RESE DE QUE NO EST<53> USANDO UN ALIAS DE TABLA EN LAS EXPRESIONES DE LOS <20>NDICES!! (ej: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag nombreclave)"
@@ -25180,7 +25378,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_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_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_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_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_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" .C_PROCESSING_LOC = "Bearbeite Datei"
@@ -25195,6 +25394,7 @@ DEFINE CLASS CL_LANG AS Custom
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Fehler in Verschachtelungsstruktur. ENDPROC erwartet, aber es wurde ENDDEFINE in Klasse <<toClase._Nombre>> (<<loProcedure._Nombre>>), Zeile <<TRANSFORM(I)>> der Datei <<THIS.c_InputFile>> gefunden" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Fehler in Verschachtelungsstruktur. ENDPROC erwartet, aber es wurde ENDDEFINE in Klasse <<toClase._Nombre>> (<<loProcedure._Nombre>>), Zeile <<TRANSFORM(I)>> der Datei <<THIS.c_InputFile>> gefunden"
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Fehler in Verschachtelungsstruktur. ENDPROC wurde erwartet, aber es wurde ENDDEFINE in Klasse <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), Zeile <<TRANSFORM(I)>> der Datei <<THIS.c_InputFile>> gefunden" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Fehler in Verschachtelungsstruktur. ENDPROC wurde erwartet, aber es wurde ENDDEFINE in Klasse <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), Zeile <<TRANSFORM(I)>> der Datei <<THIS.c_InputFile>> gefunden"
.C_UNKNOWN_CLASS_NAME_LOC = "Unbekannte Klasse [<<THIS.CLASS>>]" .C_UNKNOWN_CLASS_NAME_LOC = "Unbekannte Klasse [<<THIS.CLASS>>]"
.C_USE_FILE_TIMESTAMP_OPTIMIZATION_LOC = "Verwenden Sie Datei-Zeitstempel-Optimierung"
.C_USING_THIS_SETTINGS_LOC = "Mit dieser einstellung" .C_USING_THIS_SETTINGS_LOC = "Mit dieser einstellung"
.C_WARNING_LOC = "WARNUNG!" .C_WARNING_LOC = "WARNUNG!"
.C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNUNG!" + CR_LF+ "STELLEN SIE SICHER, DAS KEIN TABELLENALIAS IM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)" .C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNUNG!" + CR_LF+ "STELLEN SIE SICHER, DAS KEIN TABELLENALIAS IM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)"
@@ -25270,7 +25470,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_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_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_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_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_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" .C_PROCESSING_LOC = "Processing file"
@@ -25285,6 +25486,7 @@ DEFINE CLASS CL_LANG AS Custom
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Nesting structure error. ENDPROC expected but found ENDDEFINE on class <<toClase._Nombre>> (<<loProcedure._Nombre>>), line <<TRANSFORM(I)>> of file <<THIS.c_InputFile>>" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Nesting structure error. ENDPROC expected but found ENDDEFINE on class <<toClase._Nombre>> (<<loProcedure._Nombre>>), line <<TRANSFORM(I)>> of file <<THIS.c_InputFile>>"
.C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Nesting structure error. ENDPROC expected but found ENDDEFINE on class <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), line <<TRANSFORM(I)>> of file <<THIS.c_InputFile>>" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Nesting structure error. ENDPROC expected but found ENDDEFINE on class <<toClase._Nombre>> (<<toObjeto._Nombre>>.<<loProcedure._Nombre>>), line <<TRANSFORM(I)>> of file <<THIS.c_InputFile>>"
.C_UNKNOWN_CLASS_NAME_LOC = "Unknown class [<<THIS.CLASS>>]" .C_UNKNOWN_CLASS_NAME_LOC = "Unknown class [<<THIS.CLASS>>]"
.C_USE_FILE_TIMESTAMP_OPTIMIZATION_LOC = "Use file timestamp Optimization"
.C_USING_THIS_SETTINGS_LOC = "Using this settings" .C_USING_THIS_SETTINGS_LOC = "Using this settings"
.C_WARNING_LOC = "WARNING!" .C_WARNING_LOC = "WARNING!"
.C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNING!" + CR_LF+ "MAKE SURE YOU ARE NOT USING A TABLE ALIAS ON INDEX KEY EXPRESSIONS!! (ex: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)" .C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNING!" + CR_LF+ "MAKE SURE YOU ARE NOT USING A TABLE ALIAS ON INDEX KEY EXPRESSIONS!! (ex: index on <<UPPER(JUSTSTEM(THIS.c_InputFile))>>.campo tag keyname)"