diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 93c6094..738808e 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -2,7 +2,7 @@ * (ES) AUTOGENERADO - ˇˇATENCIÓN!! - ˇˇNO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! * (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! *-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.16" SourceFile="C:\DESA\foxbin2prg\foxbin2prg.pjx" Generated="2013/12/26 21:00:42" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +*< FOXBIN2PRG: Version="1.16" SourceFile="C:\DESA\foxbin2prg\foxbin2prg.pjx" Generated="2013/12/27 00:21:18" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) * LPARAMETERS tcDir @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "16" -_Revision = " 130" +_Revision = " 137" _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="1134208850" ID="1130644423" ObjRev="544" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1134231778" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index ca98681..93d38b9 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 396ec49..cea6483 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 72ada43..5267ef7 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -446,7 +446,7 @@ 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_Debug = (TRANSFORM(tcDebug)=='1') + THIS.l_Debug = (TRANSFORM(tcDebug)=='1' OR FILE(FORCEEXT(THIS.c_Foxbin2prg_FullPath,'LOG'))) IF THIS.l_ShowProgress THIS.o_Frm_Avance = CREATEOBJECT("frm_avance") @@ -786,7 +786,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM LOCAL lcLog THIS.writeLog( '- Se ha solicitado capitalizar el archivo [' + tcFileName + ']' ) lcLog = '' - DO (tcEXE_CAPS) WITH tcFileName, '', 'F', lcLog + DO (tcEXE_CAPS) WITH tcFileName, '', 'F', lcLog, .T. toFSO.MoveFile( tcFileName, tcFileName ) THIS.writeLog( ' => Se renombrará a [' + tcFileName + ']' ) ENDPROC @@ -7253,8 +7253,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ******************************************************************************************************************* PROCEDURE write_PROGRAM_HEADER + LOCAL lcText + lcText = '' + *-- Cabecera del PRG e inicio de DEF_CLASS - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 *-------------------------------------------------------------------------------------------------------------------------------------------------------- * (ES) AUTOGENERADO - ˇˇATENCIÓN!! - ˇˇNO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! * (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! @@ -7262,6 +7265,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base <> Version="<>" SourceFile="<>" Generated="<>" <> (Solo para binarios VFP 9 / Only for VFP 9 binaries) * ENDTEXT + + RETURN lcText ENDPROC @@ -7765,7 +7770,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg DODEFAULT( @toModulo, @toEx ) TRY - LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ; + LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen ; , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) STORE 0 TO lnCodError, lnLastClass STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1) @@ -7776,7 +7781,7 @@ 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 - THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() THIS.get_NombresObjetosOLEPublic( @la_NombresObjsOle ) @@ -7856,9 +7861,13 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 + lnLen = LEN( THIS.write_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.' ) + CASE STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' - ENDIF + ENDCASE ENDIF @@ -7900,7 +7909,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg #ENDIF TRY - LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ; + LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen ; , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) STORE 0 TO lnCodError, lnLastClass STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1) @@ -7914,7 +7923,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg *toModulo = NULL *toModulo = CREATEOBJECT('CL_MODULO') - THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() THIS.get_NombresObjetosOLEPublic( @la_NombresObjsOle ) @@ -8013,9 +8022,13 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 + lnLen = LEN( THIS.write_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.' ) + CASE STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' - ENDIF + ENDCASE ENDIF @@ -8055,7 +8068,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg DODEFAULT( @toModulo, @toEx ) TRY - LOCAL lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo ; + LOCAL lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo, lnLen ; , loEx AS EXCEPTION ; , loProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG' ; , loServerHead AS CL_PROJ_SRV_HEAD OF 'FOXBIN2PRG.PRG' ; @@ -8121,7 +8134,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg ENDSCAN - THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() *-- Directorio de inicio @@ -8308,9 +8321,13 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 + lnLen = LEN( THIS.write_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.' ) + CASE STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' - ENDIF + ENDCASE *COMPILE ( THIS.c_outputFile ) ENDIF @@ -8355,7 +8372,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg DODEFAULT( @toModulo, @toEx ) TRY - LOCAL lnCodError, loRegCab, loRegDataEnv, loRegCur, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ; + LOCAL lnCodError, loRegCab, loRegDataEnv, loRegCur, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen ; , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) STORE 0 TO lnCodError, lnLastClass STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1) @@ -8398,7 +8415,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg USE IN (SELECT("TABLABIN_0")) - THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() *-- Recorro los registros y genero el texto IF VARTYPE(loRegCab) = "O" @@ -8425,9 +8442,13 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 + lnLen = LEN( THIS.write_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.' ) + CASE STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' - ENDIF + ENDCASE ENDIF @@ -8466,7 +8487,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg DODEFAULT( @toModulo, @toEx ) TRY - LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1) ; + LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1), lnLen ; , ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name LOCAL loTable AS CL_DBF_TABLE OF 'FOXBIN2PRG.PRG' STORE 0 TO lnCodError @@ -8475,7 +8496,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg THIS.getDBFmetadata( THIS.c_InputFile, @ln_HexFileType, @ll_FileHasCDX, @ll_FileHasMemo, @ll_FileIsDBC, @lc_DBC_Name ) USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN - THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() *-- Header loTable = CREATEOBJECT('CL_DBF_TABLE') @@ -8486,9 +8507,13 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 + lnLen = LEN( THIS.write_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.' ) + CASE STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' - ENDIF + ENDCASE ENDIF @@ -8539,7 +8564,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg #ENDIF TRY - LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1) ; + LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1), lnLen ; , ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name STORE 0 TO lnCodError @@ -8548,7 +8573,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 - THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() *-- Header toDatabase = CREATEOBJECT('CL_DBC') @@ -8559,9 +8584,13 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 + lnLen = LEN( THIS.write_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.' ) + CASE STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' - ENDIF + ENDCASE ENDIF @@ -8604,7 +8633,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg #ENDIF TRY - LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1) ; + LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1), lnLen ; , ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name STORE 0 TO lnCodError @@ -8613,7 +8642,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN OPEN DATABASE (THIS.c_InputFile) SHARED NOUPDATE - THIS.write_PROGRAM_HEADER() + C_FB2PRG_CODE = C_FB2PRG_CODE + THIS.write_PROGRAM_HEADER() *-- Header toDatabase = CREATEOBJECT('CL_DBC') @@ -8624,9 +8653,13 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg IF THIS.l_Test toModulo = C_FB2PRG_CODE ELSE - IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 + lnLen = LEN( THIS.write_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.' ) + CASE STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' - ENDIF + ENDCASE ENDIF