diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 77e5c4c..0c6eca2 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 222" +_Revision = " 226" _LanguageID = "1034" _AutoIncrement = "1" * @@ -51,7 +51,7 @@ loProject = _VFP.Projects('foxbin2prg.pjx') WITH loProject.FILES .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" /> - .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1145207292" ID="1130644423" ObjRev="544" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1145212368" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 71b32ee..b05d3d2 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 616291a..5e305c5 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 3c7a3c4..0688a03 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -112,7 +112,7 @@ * * Ej: DO FOXBIN2PRG.PRG WITH "C:\DESA\INTEGRACION\LIBRERIA.VCX" *--------------------------------------------------------------------------------------------------- -LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress, tcOriginalFileName, tcRecompile +LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress, tcOriginalFileName, tcRecompile, tcNoTimestamps *-- Internacionalización / Internationalization *-- Fin / End @@ -311,7 +311,7 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb ******************************************************************************************************************* LOCAL loCnv AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' -LOCAL lnResp, loEx as Exception +LOCAL lnResp, loEx AS EXCEPTION *SYS(2030,1) *SYS(2335,0) @@ -323,7 +323,7 @@ LOCAL lnResp, loEx as Exception loCnv = CREATEOBJECT("c_foxbin2prg") loEx = NULL lnResp = loCnv.ejecutar( tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug ; - , '', NULL, @loEx, .F., tcOriginalFileName, tcRecompile ) + , '', NULL, @loEx, .F., tcOriginalFileName, tcRecompile, tcNoTimestamps ) ADDPROPERTY(_SCREEN, 'ExitCode', lnResp) *IF _VFP.STARTMODE <= 1 @@ -384,6 +384,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -412,6 +413,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM l_ShowErrors = .F. l_ShowProgress = .F. l_Recompile = .F. + l_UseTimestamps = .T. 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 @@ -465,7 +467,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * Using Win32 Functions in Visual FoxPro * example=103 * Changing file attributes - LPARAMETERS tcFilename, tcAttrib + LPARAMETERS tcFileName, tcAttrib tcAttrib = UPPER(tcAttrib) #DEFINE FILE_ATTRIBUTE_READONLY 1 @@ -481,7 +483,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM DECLARE INTEGER GetFileAttributes IN kernel32 STRING tcFileName * read current attributes for this file - dwFileAttributes = GetFileAttributes(tcFilename) + dwFileAttributes = GetFileAttributes(tcFileName) IF dwFileAttributes = -1 * the file does not exist @@ -540,32 +542,32 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF * setting selected attributes - =SetFileAttributes(tcFilename, dwFileAttributes) + =SetFileAttributes(tcFileName, dwFileAttributes) ENDIF ENDPROC PROCEDURE compileFoxProBinary - LPARAMETERS tcFilename + LPARAMETERS tcFileName LOCAL lcType - tcFilename = EVL(tcFilename, THIS.c_OutputFile) - lcType = UPPER(JUSTEXT(tcFilename)) + tcFileName = EVL(tcFileName, THIS.c_OutputFile) + lcType = UPPER(JUSTEXT(tcFileName)) DO CASE CASE lcType = 'VCX' - COMPILE CLASSLIB (tcFilename) + COMPILE CLASSLIB (tcFileName) CASE lcType = 'SCX' - COMPILE FORM (tcFilename) + COMPILE FORM (tcFileName) CASE lcType = 'FRX' - COMPILE REPORT (tcFilename) + COMPILE REPORT (tcFileName) CASE lcType = 'LBX' - COMPILE LABEL (tcFilename) + COMPILE LABEL (tcFileName) CASE lcType = 'DBC' - COMPILE DATABASE (tcFilename) + COMPILE DATABASE (tcFileName) ENDCASE ENDPROC @@ -583,7 +585,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM LPARAMETERS toEx, tlRelanzarError, tcBakFile_1, tcBakFile_2, tcBakFile_3 #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -682,9 +684,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * se hace desde el directorio del archivo, con lo que las referencias relativas pueden * generar errores de compilación, típicamente los #include. * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar + * tcNoTimestamps (v? IN ) Indica si se deben vacar ('1') o no ['0'] los timestamps de registro *-------------------------------------------------------------------------------------------------------------- LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ; - , toModulo, toEx AS EXCEPTION, tlRelanzarError, tcOriginalFileName, tcRecompile + , toModulo, toEx AS EXCEPTION, tlRelanzarError, tcOriginalFileName, tcRecompile, tcNoTimestamps TRY LOCAL I, lcPath, lnCodError, lcFileSpec, lcFile, laFiles(1,5), laConfig(1), lcConfigFile, lcExt ; @@ -692,8 +695,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM , loEx AS EXCEPTION ; , loFSO AS Scripting.FileSystemObject - lnCodError = 0 - tcRecompile = EVL(tcRecompile,'1') + lnCodError = 0 + tcRecompile = EVL(tcRecompile,'1') + tcNoTimestamps = EVL(tcNoTimestamps,'0') *SET DELETED ON *SET DATE YMD @@ -723,8 +727,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- Ejecución normal THIS.l_ShowProgress = NOT (TRANSFORM(tcDontShowProgress)=='1') THIS.l_ShowErrors = NOT (TRANSFORM(tcDontShowErrors) == '1') - *THIS.l_Recompile = (NOT EMPTY(tcRecompile) AND (TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile))) THIS.l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile)) + THIS.l_UseTimestamps = (EMPTY(tcNoTimestamps) OR TRANSFORM(tcNoTimestamps) == '0') THIS.l_Debug = (TRANSFORM(tcDebug)=='1' OR FILE(FORCEEXT(THIS.c_Foxbin2prg_FullPath,'LOG'))) IF THIS.l_ShowProgress @@ -814,7 +818,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM OTHERWISE lnCodError = -1 ENDCASE - + ELSE IF EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0' @@ -857,7 +861,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDCASE CATCH TO toEx - lnCodError = toEx.ErrorNo + lnCodError = toEx.ERRORNO lcErrorInfo = THIS.Exception2Str(toEx) + CR_LF + CR_LF + C_SOURCEFILE_LOC + THIS.c_InputFile ADDPROPERTY(_SCREEN, 'ExitCode', toEx.ERRORNO) @@ -1559,11 +1563,11 @@ DEFINE CLASS c_conversor_base AS SESSION * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase correspondiente con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF THIS.writeLog( '' ) THIS.writeLog( C_CONVERTING_FILE_LOC + ' ' + THIS.c_OutputFile + '...' ) @@ -2469,11 +2473,11 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase correspondiente con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) ENDPROC @@ -2640,8 +2644,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Validación IF EMPTY(taBloquesExclusion(tnBloquesExclusion,2)) *ERROR 'No se ha encontrado el marcador de fin [' + ta_ID_Bloques(lnPrimerID,2) ; - + '] que cierra al marcador de inicio [' + ta_ID_Bloques(lnPrimerID,1) ; - + '] de la línea ' + TRANSFORM(taBloquesExclusion(tnBloquesExclusion,1)) + + '] que cierra al marcador de inicio [' + ta_ID_Bloques(lnPrimerID,1) ; + + '] de la línea ' + TRANSFORM(taBloquesExclusion(tnBloquesExclusion,1)) ERROR (TEXTMERGE(C_END_MARKER_NOT_FOUND_LOC)) ENDIF ENDIF @@ -3329,7 +3333,13 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ******************************************************************************************************************* PROCEDURE insert_Object - LPARAMETERS toClase, toObjeto + LPARAMETERS toClase, toObjeto, toFoxBin2Prg + + #IF .F. + LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG' + #ENDIF IF NOT THIS.l_Test *-- Inserto el objeto @@ -3359,7 +3369,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base VALUES ; ( 'WINDOWS' ; , toObjeto._UniqueID ; - , toObjeto._TimeStamp ; + , IIF( toFoxBin2Prg.l_UseTimestamps, toObjeto._TimeStamp, 0 ) ; , toObjeto._Class ; , toObjeto._ClassLib ; , toObjeto._BaseClass ; @@ -3388,10 +3398,11 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Recorro primero los objetos con ZOrder definido, y luego los demás *-- NOTA: Como consecuencia de una integración de código, puede que se hayan agregado objetos nuevos (desconocidos), *-- pero todo lo demás tiene un ZOrder definido, que es el número de registro original * 100. - LPARAMETERS toClase + LPARAMETERS toClase, toFoxBin2Prg #IF .F. LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -3421,7 +3432,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base IF loObjeto._WriteOrder = 0 AND loObjeto._Nombre == lcObjName N = N + 1 loObjeto._WriteOrder = N - THIS.insert_Object( toClase, loObjeto ) + THIS.insert_Object( toClase, loObjeto, toFoxBin2Prg ) EXIT ENDIF ENDFOR @@ -3431,7 +3442,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Recorro los objetos Desconocidos FOR EACH loObjeto IN toClase._AddObjects FOXOBJECT IF loObjeto._WriteOrder = 0 - THIS.insert_Object( toClase, loObjeto ) + THIS.insert_Object( toClase, loObjeto, toFoxBin2Prg ) ENDIF ENDFOR @@ -3493,13 +3504,13 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base CASE LEFT( tcLine + ' ', 10 ) == C_ENDDEFINE + ' ' && Fin de bloque (ENDDEFINE) encontrado IF llEsProcedureDeClase *ERROR 'Error de anidamiento de estructuras. Se esperaba ENDPROC y se encontró ENDDEFINE en la clase ' ; - + toClase._Nombre + ' (' + loProcedure._Nombre + ')' ; - + ', línea ' + TRANSFORM(I) + ' del archivo ' + THIS.c_InputFile + + toClase._Nombre + ' (' + loProcedure._Nombre + ')' ; + + ', línea ' + TRANSFORM(I) + ' del archivo ' + THIS.c_InputFile ERROR (TEXTMERGE(C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC)) ELSE *ERROR 'Error de anidamiento de estructuras. Se esperaba ENDPROC y se encontró ENDDEFINE en la clase ' ; - + toClase._Nombre + ' (' + toObjeto._Nombre + '.' + loProcedure._Nombre + ')' ; - + ', línea ' + TRANSFORM(I) + ' del archivo ' + THIS.c_InputFile + + toClase._Nombre + ' (' + toObjeto._Nombre + '.' + loProcedure._Nombre + ')' ; + + ', línea ' + TRANSFORM(I) + ' del archivo ' + THIS.c_InputFile ERROR (TEXTMERGE(C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC)) ENDIF ENDCASE @@ -3851,9 +3862,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Validación IF EMPTY( toClase._Fin ) *ERROR 'No se ha encontrado el marcador de fin [ENDDEFINE] ' ; - + 'que cierra al marcador de inicio [DEFINE CLASS] ' ; - + 'de la línea ' + TRANSFORM( toClase._Inicio ) + ' ' ; - + 'para el identificador [' + toClase._Nombre + ']' + + 'que cierra al marcador de inicio [DEFINE CLASS] ' ; + + 'de la línea ' + TRANSFORM( toClase._Inicio ) + ' ' ; + + 'para el identificador [' + toClase._Nombre + ']' ERROR (TEXTMERGE(C_ENDDEFINE_MARKER_NOT_FOUND_LOC)) ENDIF @@ -4280,11 +4291,11 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_MODULO con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -4298,7 +4309,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo la librería THIS.createClasslib() @@ -4309,7 +4320,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toModulo ) - THIS.escribirArchivoBin( @toModulo, toFoxbin2prg ) + THIS.escribirArchivoBin( @toModulo, toFoxBin2Prg ) CATCH TO toEx @@ -4329,7 +4340,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toModulo, toFoxbin2prg + LPARAMETERS toModulo, toFoxBin2Prg *-- Estructura del objeto toModulo generado: *-- ----------------------------------------------------------------------------------------------------------- *-- Version Versión usada para generar la versión PRG analizada @@ -4397,7 +4408,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toModulo AS CL_MODULO OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -4419,8 +4430,8 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin loClase = toModulo._Clases(I) *-- El dataenvironment debe estar primero, luego lo demás. - IF X = 1 AND NOT loClase._baseclass == 'dataenvironment' ; - OR X = 2 AND loClase._baseclass == 'dataenvironment' + IF X = 1 AND NOT loClase._BaseClass == 'dataenvironment' ; + OR X = 2 AND loClase._BaseClass == 'dataenvironment' LOOP ENDIF @@ -4451,7 +4462,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin VALUES ; ( 'WINDOWS' ; , loClase._UniqueID ; - , loClase._TimeStamp ; + , IIF( toFoxBin2Prg.l_UseTimestamps, loClase._TimeStamp, 0 ) ; , loClase._Class ; , loClase._ClassLoc ; , loClase._BaseClass ; @@ -4473,7 +4484,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin , loClase._User ) - THIS.insert_AllObjects( @loClase ) + THIS.insert_AllObjects( @loClase, toFoxBin2Prg ) *-- Inserto el COMMENT @@ -4529,8 +4540,8 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin USE IN (SELECT("TABLABIN")) - IF toFoxbin2prg.l_Recompile - toFoxbin2prg.compileFoxProBinary() + IF toFoxBin2Prg.l_Recompile + toFoxBin2Prg.compileFoxProBinary() ENDIF @@ -4569,11 +4580,11 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_MODULO con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -4587,7 +4598,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo el form THIS.createForm() @@ -4598,7 +4609,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toModulo ) - THIS.escribirArchivoBin( @toModulo, toFoxbin2prg ) + THIS.escribirArchivoBin( @toModulo, toFoxBin2Prg ) CATCH TO toEx @@ -4618,7 +4629,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toModulo, toFoxbin2prg + LPARAMETERS toModulo, toFoxBin2Prg *-- Estructura del objeto toModulo generado: *-- ----------------------------------------------------------------------------------------------------------- *-- Version Versión usada para generar la versión PRG analizada @@ -4686,7 +4697,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toModulo AS CL_MODULO OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -4708,10 +4719,10 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin FOR I = 1 TO toModulo._Clases_Count loClase = toModulo._Clases(I) - + *-- El dataenvironment debe estar primero, luego lo demás. - IF X = 1 AND NOT loClase._baseclass == 'dataenvironment' ; - OR X = 2 AND loClase._baseclass == 'dataenvironment' + IF X = 1 AND NOT loClase._BaseClass == 'dataenvironment' ; + OR X = 2 AND loClase._BaseClass == 'dataenvironment' LOOP ENDIF @@ -4742,7 +4753,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin VALUES ; ( 'WINDOWS' ; , loClase._UniqueID ; - , loClase._TimeStamp ; + , IIF( toFoxBin2Prg.l_UseTimestamps, loClase._TimeStamp, 0 ) ; , loClase._Class ; , loClase._ClassLoc ; , loClase._BaseClass ; @@ -4764,7 +4775,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin , loClase._User ) - THIS.insert_AllObjects( @loClase ) + THIS.insert_AllObjects( @loClase, toFoxBin2Prg ) ENDFOR && I = 1 TO toModulo._Clases_Count ENDFOR && X = 1 TO 2 @@ -4819,8 +4830,8 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin USE IN (SELECT("TABLABIN")) - IF toFoxbin2prg.l_Recompile - toFoxbin2prg.compileFoxProBinary() + IF toFoxBin2Prg.l_Recompile + toFoxBin2Prg.compileFoxProBinary() ENDIF @@ -4866,14 +4877,14 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toProject (@! OUT) Objeto generado de clase CL_PROJECT con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toProject, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toProject, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toProject, @toEx ) #IF .F. LOCAL toProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -4886,7 +4897,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo solo la cabecera del proyecto THIS.createProject() @@ -4897,7 +4908,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toProject ) - THIS.escribirArchivoBin( @toProject ) + THIS.escribirArchivoBin( @toProject, toFoxBin2Prg ) CATCH TO toEx @@ -4917,10 +4928,11 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toProject + LPARAMETERS toProject, toFoxBin2Prg *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -4992,7 +5004,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin , .T. ; , loFile._CPID ; , loFile._ID ; - , loFile._TimeStamp ; + , IIF( toFoxBin2Prg.l_UseTimestamps, loFile._TimeStamp, 0 ) ; , loFile._ObjRev ; , UPPER(JUSTSTEM(loFile._Name)) ) ENDFOR @@ -5589,14 +5601,14 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toReport (@! OUT) Objeto generado de clase CL_REPORT con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toReport, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toReport, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toReport, @toEx ) #IF .F. LOCAL toReport AS CL_REPORT OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -5609,7 +5621,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo el reporte THIS.createReport() @@ -5617,7 +5629,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toReport ) - THIS.escribirArchivoBin( @toReport, toFoxbin2prg ) + THIS.escribirArchivoBin( @toReport, toFoxBin2Prg ) CATCH TO loEx @@ -5639,11 +5651,11 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toReport, toFoxbin2prg + LPARAMETERS toReport, toFoxBin2Prg *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toReport AS CL_REPORT OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -5655,6 +5667,10 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin *-- Agrego los registros FOR EACH loReg IN toReport FOXOBJECT + IF NOT toFoxBin2Prg.l_UseTimestamps + loReg.TIMESTAMP = 0 + ENDIF + *-- Ajuste de los tipos de dato FOR I = 1 TO AMEMBERS(laProps, loReg, 0) lnNumCampo = ASCAN( laFieldTypes, laProps(I), 1, -1, 1, 1+2+4+8 ) @@ -5692,8 +5708,8 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin USE IN (SELECT("TABLABIN")) - IF toFoxbin2prg.l_Recompile - toFoxbin2prg.compileFoxProBinary() + IF toFoxBin2Prg.l_Recompile + toFoxBin2Prg.compileFoxProBinary() ENDIF @@ -5987,14 +6003,14 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toTable (@! OUT) Objeto generado de clase CL_TABLE con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toTable, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toTable, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toTable, @toEx ) #IF .F. LOCAL toTable AS CL_DBF_TABLE OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -6007,7 +6023,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toTable ) @@ -6255,14 +6271,14 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toDatabase (@! OUT) Objeto generado de clase CL_DBC con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toDatabase, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toDatabase, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toDatabase, @toEx ) #IF .F. LOCAL toDatabase AS CL_DBC OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -6275,7 +6291,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo la tabla *THIS.createTable() @@ -6283,7 +6299,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toDatabase ) - THIS.escribirArchivoBin( @toDatabase, toFoxbin2prg ) + THIS.escribirArchivoBin( @toDatabase, toFoxBin2Prg ) CATCH TO loEx @@ -6305,11 +6321,11 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toDatabase, toFoxbin2prg + LPARAMETERS toDatabase, toFoxBin2Prg *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toDatabase AS CL_DBC OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -6319,8 +6335,8 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin toDatabase.updateDBC( THIS.c_OutputFile ) - IF toFoxbin2prg.l_Recompile - toFoxbin2prg.compileFoxProBinary() + IF toFoxBin2Prg.l_Recompile + toFoxBin2Prg.compileFoxProBinary() ENDIF @@ -6425,14 +6441,14 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toMenu (@! OUT) Objeto generado de clase CL_DBC con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toMenu, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toMenu, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toMenu, @toEx ) #IF .F. LOCAL toMenu AS CL_MENU OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -6445,7 +6461,7 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo la tabla THIS.createMenu() @@ -6630,11 +6646,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase correspondiente con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) ENDPROC @@ -7951,8 +7967,14 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ******************************************************************************************************************* PROCEDURE write_DefinicionObjetosOLE *-- Crea la definición del tag *< OLE: /> con la información de todos los objetos OLE + LPARAMETERS toFoxBin2Prg + LOCAL lnOLECount, lcOLEChecksum, llOleExistente, loReg + #IF .F. + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + #ENDIF + TRY SELECT TABLABIN SET ORDER TO PARENT_OBJ @@ -7960,6 +7982,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base SCAN ALL FOR TABLABIN.PLATFORM = "WINDOWS" AND BASECLASS = 'olecontrol' SCATTER MEMO NAME loReg + + IF NOT toFoxBin2Prg.l_UseTimestamps + loReg.TIMESTAMP = 0 + ENDIF + lcOLEChecksum = SYS(2007, loReg.OLE, 0, 1) llOleExistente = .F. @@ -8074,11 +8101,11 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_MODULO con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -8096,11 +8123,11 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE SET ORDER TO 0 IN TABLABIN - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() THIS.get_NombresObjetosOLEPublic( @la_NombresObjsOle ) - THIS.write_DefinicionObjetosOLE() + THIS.write_DefinicionObjetosOLE( toFoxBin2Prg ) *-- Escribo los métodos ordenados lnLastClass = 0 @@ -8113,6 +8140,11 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg SCAN ALL FOR TABLABIN.PLATFORM = "WINDOWS" AND TABLABIN.RESERVED1=="Class" SCATTER MEMO NAME loRegClass + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegClass.TIMESTAMP = 0 + ENDIF + lcObjName = ALLTRIM(loRegClass.OBJNAME) THIS.write_ENDDEFINE_SiCorresponde( lnLastClass ) @@ -8136,6 +8168,11 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName SCATTER MEMO NAME loRegObj + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegObj.TIMESTAMP = 0 + ENDIF + ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios THIS.write_ADD_OBJECTS_WithProperties( @loRegObj ) ENDSCAN @@ -8162,6 +8199,11 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg WHILE ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName SCATTER MEMO NAME loRegObj + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegObj.TIMESTAMP = 0 + ENDIF + THIS.get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods ) ENDSCAN @@ -8176,13 +8218,13 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) + lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) THIS.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxbin2prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; AND STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 *ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) @@ -8219,14 +8261,14 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_MODULO con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toModulo, @toEx ) #IF .F. LOCAL toModulo AS CL_MODULO OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -8246,11 +8288,11 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg *toModulo = NULL *toModulo = CREATEOBJECT('CL_MODULO') - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() THIS.get_NombresObjetosOLEPublic( @la_NombresObjsOle ) - THIS.write_DefinicionObjetosOLE() + THIS.write_DefinicionObjetosOLE( toFoxBin2Prg ) *-- Escribo los métodos ordenados lnLastObj = 0 @@ -8279,7 +8321,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg *loRegClass = NULL SCATTER MEMO NAME loRegClass - *toModulo.add_Class( loRegClass ) + lcObjName = ALLTRIM(loRegClass.OBJNAME) THIS.write_ENDDEFINE_SiCorresponde( lnLastClass ) @@ -8303,6 +8345,11 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName SCATTER MEMO NAME loRegObj + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegObj.TIMESTAMP = 0 + ENDIF + ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios THIS.write_ADD_OBJECTS_WithProperties( @loRegObj ) ENDSCAN @@ -8331,6 +8378,11 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg WHILE ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName SCATTER MEMO NAME loRegObj + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegObj.TIMESTAMP = 0 + ENDIF + THIS.get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods ) ENDSCAN @@ -8345,13 +8397,13 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) + lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) THIS.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxbin2prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; AND STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 *ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) @@ -8390,11 +8442,11 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_PROJECT con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -8417,6 +8469,11 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg *-- Obtengo los archivos del proyecto loProject = CREATEOBJECT('CL_PROJECT') SCATTER MEMO NAME loReg + + IF NOT toFoxBin2Prg.l_UseTimestamps + loReg.TIMESTAMP = 0 + ENDIF + loProject._HomeDir = ['] + ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.HOMEDIR ) ) + ['] loProject._ServerInfo = loReg.RESERVED2 @@ -8453,6 +8510,11 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg *-- Escaneo el proyecto SCAN ALL FOR NOT INLIST(TYPE, 'H','W','i' ) SCATTER FIELDS NAME,TYPE,EXCLUDE,COMMENTS,CPID,TIMESTAMP,ID,OBJREV MEMO NAME loReg + + IF NOT toFoxBin2Prg.l_UseTimestamps + loReg.TIMESTAMP = 0 + ENDIF + loReg.NAME = LOWER( ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.NAME ) ) ) loReg.COMMENTS = ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.COMMENTS ) ) @@ -8469,7 +8531,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg ENDSCAN - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() *-- Directorio de inicio @@ -8656,13 +8718,13 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) + lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) THIS.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxbin2prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; AND STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 *ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) @@ -8706,11 +8768,11 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_PROJECT con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -8844,7 +8906,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg ENDFOR - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() *-- Directorio de inicio @@ -9028,13 +9090,13 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) + lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) THIS.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxbin2prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; AND STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 *ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) @@ -9083,11 +9145,11 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_PROJECT con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -9106,18 +9168,30 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg LOCATE FOR ObjType = 1 IF FOUND() SCATTER MEMO NAME loRegCab + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegCab.TIMESTAMP = 0 + ENDIF ENDIF *-- Dataenvironment LOCATE FOR ObjType = 25 IF FOUND() SCATTER MEMO NAME loRegDataEnv + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegDataEnv.TIMESTAMP = 0 + ENDIF ENDIF *-- Cursor1 (żpuede haber más de 1 cursor?) LOCATE FOR ObjType = 26 IF FOUND() SCATTER MEMO NAME loRegCur + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegCur.TIMESTAMP = 0 + ENDIF ENDIF IF THIS.l_ReportSort_Enabled @@ -9137,7 +9211,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg USE IN (SELECT("TABLABIN_0")) - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() *-- Recorro los registros y genero el texto IF VARTYPE(loRegCab) = "O" @@ -9149,6 +9223,11 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg SCAN ALL SCATTER MEMO NAME loRegObj + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegObj.TIMESTAMP = 0 + ENDIF + THIS.write_DETALLE_REPORTE( @loRegObj ) ENDSCAN @@ -9165,13 +9244,13 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) + lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) THIS.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxbin2prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; AND STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 *ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) @@ -9209,11 +9288,11 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Contenido del texto generado * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -9232,7 +9311,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() *-- Header loTable = CREATEOBJECT('CL_DBF_TABLE') @@ -9243,13 +9322,13 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) + lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) THIS.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxbin2prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; AND STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 *ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) @@ -9261,11 +9340,11 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg DO CASE CASE toEx.ERRORNO = 13 && Alias not found *toEx.USERVALUE = 'WARNING!!' + CR_LF ; - + 'MAKE SURE YOU ARE NOT USING A TABLE ALIAS ON INDEX KEY EXPRESSIONS!! (ex: index on ' ; - + UPPER(JUSTSTEM(THIS.c_InputFile)) + '.field tag keyname)' + CR_LF + CR_LF ; - + 'ˇˇATENCIÓN!!' + CR_LF ; - + 'ASEGÚRESE DE QUE NO ESTÁ USANDO UN ALIAS DE TABLA EN LAS EXPRESIONES DE LOS ÍNDICES!! (ej: index on ' ; - + UPPER(JUSTSTEM(THIS.c_InputFile)) + '.campo tag nombreclave)' + + 'MAKE SURE YOU ARE NOT USING A TABLE ALIAS ON INDEX KEY EXPRESSIONS!! (ex: index on ' ; + + UPPER(JUSTSTEM(THIS.c_InputFile)) + '.field tag keyname)' + CR_LF + CR_LF ; + + 'ˇˇATENCIÓN!!' + CR_LF ; + + 'ASEGÚRESE DE QUE NO ESTÁ USANDO UN ALIAS DE TABLA EN LAS EXPRESIONES DE LOS ÍNDICES!! (ej: index on ' ; + + UPPER(JUSTSTEM(THIS.c_InputFile)) + '.campo tag nombreclave)' toEx.USERVALUE = TEXTMERGE(C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC) *!* CASE toEx.ErrorNo = 1976 && Cannot resolve backlink @@ -9314,14 +9393,14 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toDatabase (@! OUT) Objeto generado de clase CL_DBC con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toDatabase, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toDatabase, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toDatabase, @toEx ) #IF .F. LOCAL toDatabase AS CL_DBC OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -9334,7 +9413,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN OPEN DATABASE (THIS.c_InputFile) SHARED NOUPDATE - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() *-- Header toDatabase = CREATEOBJECT('CL_DBC') @@ -9345,13 +9424,13 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) + lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) THIS.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxbin2prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; AND STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 *ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) @@ -9389,14 +9468,14 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * totoMenu (@! OUT) Objeto generado de clase CL_MENU con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toMenu, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toMenu, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toMenu, @toEx ) #IF .F. LOCAL toMenu AS CL_MENU OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -9414,7 +9493,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg ENDIF *-- Header - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxbin2prg.get_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() toMenu = CREATEOBJECT('CL_MENU') toMenu.get_DataFromTablabin() @@ -9425,13 +9504,13 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toMenu = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxbin2prg.get_PROGRAM_HEADER() ) + lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(THIS.c_OutputFile) AND SUBSTR( FILETOSTR( THIS.c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *THIS.writeLog( 'El archivo de salida [' + THIS.c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) THIS.writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxbin2prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( THIS.c_OutputFile, '-R' ) ; AND STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 *ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) @@ -9752,7 +9831,7 @@ DEFINE CLASS CL_CLASE AS CL_CUS_BASE _ProtectedMethods = '' _MetaData = '' _BaseClass = '' - _TimeStamp = '' + _TimeStamp = 0 _Scale = '' _Defined_PAM = '' _includeFile = '' @@ -15498,7 +15577,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ELSE IF THIS.l_Debug *toConversor.writeLog( REPLICATE(C_TAB,tnNivel) ; - + 'Objeto [' + toObj.CLASS + '] no contiene el objeto oReg (nivel ' + TRANSFORM(tnNivel) + ')' ) + + 'Objeto [' + toObj.CLASS + '] no contiene el objeto oReg (nivel ' + TRANSFORM(tnNivel) + ')' ) toConversor.writeLog( REPLICATE(C_TAB,tnNivel) + TEXTMERGE(C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC) ) ENDIF