From d219d0d01010b562ea8967c88624b4007fea8b44 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Wed, 30 Apr 2014 00:25:20 +0200 Subject: [PATCH] Changeset: 230 fdbozzo - 29/04/2014 22:56:38: - Agregado soporte para convertir a binario todos los tx2 de un proyecto (Matt Slay) - Arreglo de defectos --- foxbin2prg.prg | 161 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 121 insertions(+), 40 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 7f2bf1e..77ce743 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -408,6 +408,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -852,6 +853,24 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE Get_Ext2FromExt + LPARAMETERS tcExt + LOCAL lcExt2 + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + lcExt2 = ICASE( tcExt == 'PJX', .c_PJ2 ; + , tcExt == 'VCX', .c_VC2 ; + , tcExt == 'SCX', .c_SC2 ; + , tcExt == 'FRX', .c_FR2 ; + , tcExt == 'LBX', .c_LB2 ; + , tcExt == 'MNX', .c_MN2 ; + , tcExt == 'DBF', .c_DB2 ; + , tcExt == 'DBC', .c_DC2 ; + , 'XXX' ) + ENDWITH && THIS + RETURN lcExt2 + ENDPROC + + PROCEDURE TieneSoporte_Bin2Prg LPARAMETERS tcExt LOCAL llTieneSoporte @@ -1014,7 +1033,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF IF FILE( lcFile ) - lnCodError = .Convertir( lcFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) ENDIF ENDFOR @@ -1085,13 +1104,19 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM DIMENSION laFiles(lnFileCount,1) laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) ) ENDSCAN - + USE IN (SELECT("TABLABIN")) IF .l_ShowProgress .o_Frm_Avance.nMAX_VALUE = lnFileCount ENDIF + *-- Primero convierto el proyecto + *IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(tc_InputFile)) ) + * lnCodError = .Convertir( tc_InputFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + *ENDIF + + *-- Luego convierto los archivos incluidos FOR I = 1 TO lnFileCount lcFile = laFiles(I,1) .o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' @@ -1102,10 +1127,66 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) - lnCodError = .Convertir( lcFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) ENDIF ENDFOR - + + CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*' + *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO + lcFileSpec = FULLPATH( tc_InputFile ) + + DO CASE + CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) + CD (tcRecompile) + CASE tcRecompile == '1' + CD (JUSTPATH(lcFileSpec)) + ENDCASE + + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + IF FILE( .c_LogFile ) + ERASE ( .c_LogFile ) + ENDIF + ENDIF + + lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 ) + + FOR I = lnFileCount TO 1 STEP -1 + IF '.ADD(' $ laFiles(I) + laFiles(I) = ADDBS( JUSTPATH( lcFileSpec ) ) + STREXTRACT( laFiles(I), ".ADD('", "')" ) + laFiles(I) = FORCEEXT( laFiles(I), .Get_Ext2FromExt( UPPER(JUSTEXT(laFiles(I))) ) ) + ELSE + lnFileCount = lnFileCount - 1 + ADEL( laFiles, I ) + DIMENSION laFiles(lnFileCount) + ENDIF + ENDFOR + + IF .l_ShowProgress + .o_Frm_Avance.nMAX_VALUE = lnFileCount + ENDIF + + *-- Primero convierto el proyecto + *IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(tc_InputFile)) ) + * lnCodError = .Convertir( tc_InputFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + *ENDIF + + *-- Luego convierto los archivos incluidos + FOR I = 1 TO lnFileCount + lcFile = laFiles(I) + .o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' + .o_Frm_Avance.nVALUE = I + + IF .l_ShowProgress + .o_Frm_Avance.SHOW() + ENDIF + + IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + ENDIF + ENDFOR + CASE EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0' *-- Compatibilidad con SourceSafe @@ -1496,7 +1577,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .n_ExisteCapitalizacion = 0 EXIT ENDIF - + CASE .n_ExisteCapitalizacion = 0 *-- Segunda pasada en adelante: No hay programa de capitalización EXIT @@ -1742,7 +1823,7 @@ DEFINE CLASS c_conversor_base AS SESSION C_FB2PRG_CODE = '' && Contendrá todo el código generado THIS.c_CurDir = SYS(5) + CURDIR() THIS.oFSO = CREATEOBJECT( "Scripting.FileSystemObject") - + THIS.SortSpecialProps() ENDPROC @@ -2383,10 +2464,10 @@ DEFINE CLASS c_conversor_base AS SESSION LPARAMETERS tcOperation, tcPropName TRY - LOCAL lcPropName, lnPos, loEx as Exception + LOCAL lcPropName, lnPos, loEx AS EXCEPTION lcPropName = tcPropName tcOperation = UPPER(EVL(tcOperation,'')) - + DO CASE CASE tcOperation == 'GETNAME' lcPropName = SUBSTR(tcPropName,5) @@ -2540,18 +2621,18 @@ DEFINE CLASS c_conversor_base AS SESSION RETURN ENDPROC - - - + + + PROTECTED PROCEDURE SortSpecialProps_Add LPARAMETERS tcPropName, I I = I + 1 DIMENSION THIS.a_SpecialProps(I) THIS.a_SpecialProps(I) = tcPropName ENDPROC - - - + + + PROCEDURE SortSpecialProps LOCAL I I = 0 @@ -2584,7 +2665,7 @@ DEFINE CLASS c_conversor_base AS SESSION .SortSpecialProps_Add( 'Picture', @I ) && Image: Debe estar antes que Stretch y después de DefTop/DefLeft .SortSpecialProps_Add( 'Stretch', @I ) && Image: Debe estar antes que BackStyle .SortSpecialProps_Add( 'BackStyle', @I ) && Image: Debe estar antes que BorderStyle - .SortSpecialProps_Add( 'BorderStyle', @I ) && + .SortSpecialProps_Add( 'BorderStyle', @I ) && .SortSpecialProps_Add( 'BorderWidth', @I ) .SortSpecialProps_Add( 'Enabled', @I ) .SortSpecialProps_Add( 'Top', @I ) @@ -4430,7 +4511,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ENDWITH && THIS I = I - 1 - + IF NOT EMPTY(toClase._Comentario) toClase._Comentario = SUBSTR( toClase._Comentario, 3 ) + CR_LF && Quito el primer CR+LF ENDIF @@ -6628,7 +6709,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin STORE 0 TO lnCodError STORE '' TO lcIndex, lcFieldDef - lnDataSessionID = .DataSessionId + lnDataSessionID = .DATASESSIONID ERASE (FORCEEXT(.c_OutputFile, 'DBF')) ERASE (FORCEEXT(.c_OutputFile, 'FPT')) @@ -6688,7 +6769,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin lcCreateTable = lcCreateTable + SUBSTR(lcFieldDef,3) + ')' &lcCreateTable. - + IF NOT EMPTY(toFoxBin2Prg.run_AfterCreateTable) lnSelect = SELECT() DO (toFoxBin2Prg.run_AfterCreateTable) WITH (lnDataSessionID), (.c_OutputFile), (toTable) @@ -8401,15 +8482,15 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base supgroup="<>" supvalchng="<>" <<>> ENDTEXT - C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " - C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " - C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " - C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + "