From ca7bc99d6356bc42a67a79ef000d516b02499f87 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 22 Nov 2014 11:41:05 +0100 Subject: [PATCH 01/11] =?UTF-8?q?Changeset:=20510=20fdbozzo=20-=2021/11/20?= =?UTF-8?q?14=2023:28:37:=20-=20Nuevo=20m=C3=A9todo=20"AvanceDelProceso"?= =?UTF-8?q?=20y=20propiedades=20"n=5Favance=5Fproceso"=20y=20"n=5Favance?= =?UTF-8?q?=5Fmaximo"=20-=20Implementaci=C3=B3n=20de=20la=20propiedad=20"n?= =?UTF-8?q?=5Favance=5Fmaximo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 95b393f..b3dd852 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -2740,6 +2740,7 @@ DEFINE CLASS c_conversor_base AS SESSION #ENDIF _MEMBERDATA = [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -2781,6 +2782,8 @@ DEFINE CLASS c_conversor_base AS SESSION + [] ; + [] ; + [] ; + + [] ; + + [] ; + [] ; + [] @@ -2813,6 +2816,8 @@ DEFINE CLASS c_conversor_base AS SESSION c_OriginalFileName = '' c_ClaseActual = '' oFSO = NULL + n_Avance_Proceso = 0 + n_Avance_Maximo = 0 ******************************************************************************************************************* @@ -2947,6 +2952,11 @@ DEFINE CLASS c_conversor_base AS SESSION ENDPROC + PROCEDURE AvanceDelProceso + LPARAMETERS tcTexto, tnValor, tnTotal + ENDPROC + + ******************************************************************************************************************* PROCEDURE buscarObjetoDelMetodoPorNombre LPARAMETERS tcNombreObjeto, toClase @@ -6462,7 +6472,8 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin ENDFOR ENDIF - lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .n_Avance_Maximo = lnCodeLines *-- Identifico los TEXT/ENDTEXT, #IF .F./#ENDIF .identificarBloquesDeExclusion( @laCodeLines, lnCodeLines, .F., @laLineasExclusion, @lnBloquesExclusion ) @@ -6795,6 +6806,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin ENDIF lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .n_Avance_Maximo = lnCodeLines *-- Identifico los TEXT/ENDTEXT, #IF .F./#ENDIF .identificarBloquesDeExclusion( @laCodeLines, lnCodeLines, .F., @laLineasExclusion, @lnBloquesExclusion ) @@ -7107,6 +7119,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -7903,6 +7916,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -8332,6 +8346,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin WITH THIS AS c_conversor_prg_a_dbf OF 'FOXBIN2PRG.PRG' C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -8628,6 +8643,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin WITH THIS AS c_conversor_prg_a_dbc OF 'FOXBIN2PRG.PRG' C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -8806,6 +8822,7 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin WITH THIS AS c_conversor_prg_a_mnx OF 'FOXBIN2PRG.PRG' C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -10858,6 +10875,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_vcx_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN + .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE @@ -11108,6 +11126,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_scx_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN + .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE @@ -11370,6 +11389,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN + .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) loServerHead = CREATEOBJECT('CL_PROJ_SRV_HEAD') @@ -12078,6 +12098,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_pjm_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN_0 + .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) *-- Header @@ -12463,6 +12484,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_mnx_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN + .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) *-- Verificación de menú VFP 9 From 7e20d4a0fbdf4c717e5c496afb688881b4b7aa39 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 29 Nov 2014 04:13:07 +0100 Subject: [PATCH 02/11] Changeset: 524 fdbozzo - 28/11/2014 09:32:22: - Varias optimizaciones reemplazando "TEXT TO" con "var = var + string" - Agregados indicadores de proceso --- TESTS/ut__foxbin2prg.prg | 28 +-- foxbin2prg.prg | 527 ++++++++++++++++++++++++++------------- 2 files changed, 364 insertions(+), 191 deletions(-) diff --git a/TESTS/ut__foxbin2prg.prg b/TESTS/ut__foxbin2prg.prg index c6625b5..7426854 100644 --- a/TESTS/ut__foxbin2prg.prg +++ b/TESTS/ut__foxbin2prg.prg @@ -314,8 +314,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) - loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) - loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + loCnv.Ejecutar( lc_OutputFile, '', '', '', '0', '0', '0', '', '', .T. ) + loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) SELECT 0 USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN @@ -555,8 +555,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) - loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) - loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + loCnv.Ejecutar( lc_OutputFile, '', '', '', '0', '0', '0', '', '', .T. ) + loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) SELECT 0 USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN @@ -640,8 +640,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) - loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) - loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + loCnv.Ejecutar( lc_OutputFile, '', '', '', '0', '0', '0', '', '', .T. ) + loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) SELECT 0 USE (lc_OutputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN @@ -735,8 +735,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) - loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) - loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + loCnv.Ejecutar( lc_OutputFile, '', '', '', '0', '0', '0', '', '', .T. ) + loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) SELECT 0 USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN @@ -819,8 +819,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) - loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) - loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + loCnv.Ejecutar( lc_OutputFile, '', '', '', '0', '0', '0', '', '', .T. ) + loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) SELECT 0 USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN @@ -903,8 +903,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) - loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) - *loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + loCnv.Ejecutar( lc_OutputFile, '', '', '', '0', '0', '0', '', '', .T. ) + *loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) *-- Comparo resultados lcTXT0 = FORCEPATH( FORCEEXT(lc_File,'VC2'), ADDBS( oFXU_LIB.cPathDatosReadOnly ) ) @@ -961,8 +961,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) - loCnv.Convertir( lc_OutputFile, .F., .F., .T. ) - loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. ) + loCnv.Ejecutar( lc_OutputFile, '', '', '', '0', '0', '0', '', '', .T. ) + loCnv.Ejecutar( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), '', '', '', '0', '0', '0', '', '', .T. ) SELECT 0 USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIVOBIN_IN diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 34ea86b..f31e509 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -487,6 +487,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM LOCAL THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF _MEMBERDATA = [] ; + + [] ; + [] ; + [] ; + [] ; @@ -665,6 +666,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM SET TABLEPROMPT OFF SET POINT TO '.' SET SEPARATOR TO ',' + ON ESCAPE ERROR 1799 + SET ESCAPE ON + lcSys16 = SYS(16) IF LEFT(lcSys16,10) == 'PROCEDURE ' @@ -699,6 +703,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CATCH FINALLY + ON ESCAPE THIS.o_FSO = NULL THIS.o_FNC = NULL ENDTRY @@ -707,6 +712,15 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE AvanceDelProceso + LPARAMETERS tcTexto, tnValor, tnTotal, tnTipo + + IF THIS.l_ShowProgress AND PEMSTATUS(THIS, 'o_Frm_Avance', 5) THEN + THIS.o_Frm_Avance.AvanceDelProceso( tcTexto, tnValor, tnTotal, tnTipo ) + ENDIF + ENDPROC + + FUNCTION get_l_ConfigEvaluated RETURN THIS.l_ConfigEvaluated ENDFUNC @@ -1223,6 +1237,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM PROCEDURE cargar_frm_avance THIS.o_Frm_Avance = CREATEOBJECT("frm_avance") + THIS.o_Frm_Avance.Show() ENDPROC @@ -1834,18 +1849,19 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM lnFileCount = ADIR( laFiles, lcFileSpec, '', 1 ) - IF .l_ShowProgress - .o_Frm_Avance.nMAX_VALUE = lnFileCount - ENDIF + *IF .l_ShowProgress + * .o_Frm_Avance.nMAX_VALUE = lnFileCount + *ENDIF FOR I = 1 TO lnFileCount lcFile = FORCEPATH( laFiles(I,1), JUSTPATH( lcFileSpec ) ) - .o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' - .o_Frm_Avance.nVALUE = I + *.o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' + *.o_Frm_Avance.nVALUE = I + .AvanceDelProceso( C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - IF .l_ShowProgress - .o_Frm_Avance.SHOW() - ENDIF + *IF .l_ShowProgress + * .o_Frm_Avance.SHOW() + *ENDIF IF FILE( lcFile ) lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) @@ -1922,9 +1938,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM USE IN (SELECT("TABLABIN")) - IF .l_ShowProgress - .o_Frm_Avance.nMAX_VALUE = lnFileCount - ENDIF + *IF .l_ShowProgress + * .o_Frm_Avance.nMAX_VALUE = lnFileCount + *ENDIF *-- Primero convierto el proyecto *IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(tc_InputFile)) ) @@ -1934,12 +1950,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- Luego convierto los archivos incluidos FOR I = 1 TO lnFileCount lcFile = laFiles(I,1) - .o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' - .o_Frm_Avance.nVALUE = I + *.o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' + *.o_Frm_Avance.nVALUE = I + .AvanceDelProceso( C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - IF .l_ShowProgress - .o_Frm_Avance.SHOW() - ENDIF + *IF .l_ShowProgress + * .o_Frm_Avance.SHOW() + *ENDIF IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) @@ -1978,9 +1995,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF ENDFOR - IF .l_ShowProgress - .o_Frm_Avance.nMAX_VALUE = lnFileCount - ENDIF + *IF .l_ShowProgress + * .o_Frm_Avance.nMAX_VALUE = lnFileCount + *ENDIF *-- Primero convierto el proyecto *IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(tc_InputFile)) ) @@ -1990,12 +2007,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- 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 + *.o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' + *.o_Frm_Avance.nVALUE = I + .AvanceDelProceso( C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - IF .l_ShowProgress - .o_Frm_Avance.SHOW() - ENDIF + *IF .l_ShowProgress + * .o_Frm_Avance.SHOW() + *ENDIF IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) @@ -2017,6 +2035,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDCASE IF FILE(tc_InputFile) + tc_InputFile = LOCFILE(tc_InputFile) ERASE ( tc_InputFile + '.ERR' ) DO CASE @@ -2101,7 +2120,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM TRY LOCAL lnCodError, lcErrorInfo, laDirFile(1,5), lcExtension, lnFileCount, laFiles(1,1), I ; - , ltFilestamp, lcExtA, lcExtB ; + , ltFilestamp, lcExtA, lcExtB, laEvents(1,1) ; , loFSO AS Scripting.FileSystemObject lnCodError = 0 @@ -2353,6 +2372,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .o_Conversor.c_OriginalFileName = .c_OriginalFileName .o_Conversor.c_Foxbin2prg_FullPath = .c_Foxbin2prg_FullPath *-- + .AvanceDelProceso( C_PROCESSING_LOC + ' ' + .c_InputFile + '...', 1, 1, 0 ) + BINDEVENT( .o_Conversor, 'AvanceDelProceso', THIS, 'AvanceDelProceso' ) + .o_Conversor.Convertir( @toModulo, .F., THIS ) .c_TextLog = .c_TextLog + CR_LF + .o_Conversor.c_TextLog && Recojo el LOG que haya generado el conversor ELSE @@ -2379,6 +2401,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF FINALLY + IF AEVENTS( laEvents, THIS.o_Conversor ) > 0 THEN + UNBINDEVENTS( THIS.o_Conversor ) + ENDIF loFSO = NULL THIS.o_Conversor = NULL @@ -2671,62 +2696,143 @@ ENDDEFINE ******************************************************************************************************************* DEFINE CLASS frm_avance AS FORM - HEIGHT = 79 - WIDTH = 628 - SHOWWINDOW = 2 - DOCREATE = .T. - AUTOCENTER = .T. - BORDERSTYLE = 2 + Height = 100 + Width = 628 + ShowWindow = 2 + DoCreate = .T. + AutoCenter = .T. + BorderStyle = 2 CAPTION = C_PROCESS_PROGRESS_LOC + ' ' - CONTROLBOX = .F. - BACKCOLOR = RGB(255,255,255) - nMAX_VALUE = 100 - nVALUE = 0 - NAME = "FRM_AVANCE" + ControlBox = .F. + BackColor = RGB(255,255,255) + nmax_value = 100 + nmax_value2 = 100 + nvalue = 0 + nvalue2 = 0 + Name = "frm_avance" + _memberdata = [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] - ADD OBJECT shp_base AS SHAPE WITH ; - TOP = 50, ; - LEFT = 12, ; - HEIGHT = 13, ; - WIDTH = 601, ; - CURVATURE = 15, ; - NAME = "shp_base" + ADD OBJECT shp_base AS shape WITH ; + Top = 32, ; + Left = 12, ; + Height = 13, ; + Width = 604, ; + Curvature = 15, ; + Name = "shp_base" - ADD OBJECT shp_avance AS SHAPE WITH ; - TOP = 50, ; - LEFT = 12, ; - HEIGHT = 13, ; - WIDTH = 36, ; - CURVATURE = 15, ; - BACKCOLOR = RGB(255,255,128), ; - BORDERCOLOR = RGB(255,0,0), ; - NAME = "shp_Avance" + ADD OBJECT shp_avance AS shape WITH ; + Top = 32, ; + Left = 12, ; + Height = 13, ; + Width = 36, ; + Curvature = 15, ; + BackColor = RGB(255,255,128), ; + BorderColor = RGB(255,0,0), ; + Name = "shp_Avance" - ADD OBJECT lbl_TAREA AS LABEL WITH ; - BACKSTYLE = 0, ; - CAPTION = ".", ; - HEIGHT = 17, ; - LEFT = 12, ; - TOP = 20, ; - WIDTH = 604, ; - NAME = "lbl_Tarea" + ADD OBJECT lbl_tarea AS label WITH ; + BackStyle = 0, ; + Caption = ".", ; + Height = 17, ; + Left = 12, ; + Top = 12, ; + Width = 604, ; + Name = "lbl_Tarea" + + + ADD OBJECT shp_base2 AS shape WITH ; + Top = 68, ; + Left = 12, ; + Height = 13, ; + Width = 604, ; + Curvature = 15, ; + Name = "shp_base2" + + + ADD OBJECT shp_avance2 AS shape WITH ; + Top = 68, ; + Left = 12, ; + Height = 13, ; + Width = 36, ; + Curvature = 15, ; + BackColor = RGB(255,255,128), ; + BorderColor = RGB(255,0,0), ; + Name = "shp_Avance2" + + + ADD OBJECT lbl_tarea2 AS label WITH ; + BackStyle = 0, ; + Caption = ".", ; + Height = 17, ; + Left = 12, ; + Top = 48, ; + Width = 604, ; + Name = "lbl_Tarea2" + + + PROCEDURE AvanceDelProceso + LPARAMETERS tcTexto, tnValor, tnTotal, tnTipo + + WITH THIS AS frm_avance OF foxbin2prg.prg + DO CASE + CASE tnTipo = 0 + .lbl_tarea.Caption = tcTexto + .nMax_Value = tnTotal + .nValue = tnValor + + CASE tnTipo = 1 + .lbl_tarea2.Caption = tcTexto + .nMax_Value2 = tnTotal + .nValue2 = tnValor + + CASE tnTipo = 2 + .lbl_tarea2.Caption = tcTexto + .nMax_Value2 = tnTotal + .nValue2 = tnValor + + ENDCASE + ENDWITH && THIS + + RETURN + ENDPROC PROCEDURE nvalue_assign LPARAMETERS vNewVal WITH THIS - .nVALUE = m.vNewVal - .shp_avance.WIDTH = m.vNewVal * .shp_base.WIDTH / .nMAX_VALUE + .nValue = m.vNewVal + .shp_avance.WIDTH = m.vNewVal * .shp_base.WIDTH / .nMax_Value ENDWITH ENDPROC - PROCEDURE INIT - THIS.nVALUE = 0 + PROCEDURE Init + THIS.nValue = 0 + THIS.nValue2 = 0 + ENDPROC + + + PROCEDURE nvalue2_assign + LPARAMETERS vNewVal + + WITH THIS + .nValue2 = m.vNewVal + .shp_avance2.WIDTH = m.vNewVal * .shp_base2.WIDTH / .nMax_Value2 + ENDWITH ENDPROC @@ -2954,7 +3060,7 @@ DEFINE CLASS c_conversor_base AS SESSION PROCEDURE AvanceDelProceso - LPARAMETERS tcTexto, tnValor, tnTotal + LPARAMETERS tcTexto, tnValor, tnTotal, tnTipo ENDPROC @@ -3181,9 +3287,10 @@ DEFINE CLASS c_conversor_base AS SESSION lcValue = '' FOR I = 1 TO OCCURS( '/>', tcValue ) - TEXT TO lcValue TEXTMERGE ADDITIVE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <', I, 1+4 ), CR_LF, ' ' )>> - ENDTEXT + *TEXT TO lcValue TEXTMERGE ADDITIVE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <', I, 1+4 ), CR_LF, ' ' )>> + *ENDTEXT + lcValue = lcValue + CHR(13) + CHR(10) + CHRTRAN( STREXTRACT( tcValue, '', I, 1+4 ), CR_LF, ' ' ) ENDFOR TEXT TO tcValue TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 @@ -3697,9 +3804,10 @@ DEFINE CLASS c_conversor_base AS SESSION lcValue = '' FOR I = 1 TO OCCURS( '/>', tcValue ) - TEXT TO lcValue TEXTMERGE ADDITIVE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> <', I, 1+4 ), CR_LF, ' ' )>> - ENDTEXT + *TEXT TO lcValue TEXTMERGE ADDITIVE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> <', I, 1+4 ), CR_LF, ' ' )>> + *ENDTEXT + lcValue = lcValue + CHR(13) + CHR(10) + CHR(9) + CHR(9) + CHRTRAN( STREXTRACT( tcValue, '', I, 1+4 ), CR_LF, ' ' ) ENDFOR TEXT TO tcValue TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 @@ -4733,6 +4841,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base lcMemo = '' IF toClase._Prop_Count > 0 + THIS.AvanceDelProceso( 'Generating Props for Class ' + toClase._Nombre + '...', 0, 1, 2 ) THIS.c_ClaseActual = LOWER(toClase._BaseClass) DIMENSION laPropsAndValues( toClase._Prop_Count, 3 ) ACOPY( toClase._Props, laPropsAndValues ) @@ -4812,44 +4921,53 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base lcMemo = '' *-- Recorrer los métodos - FOR I = 1 TO toClase._Procedure_Count - loProcedure = NULL - loProcedure = toClase._Procedures(I) + WITH THIS AS c_conversor_prg_a_bin OF foxbin2prg.prg + FOR I = 1 TO toClase._Procedure_Count + loProcedure = NULL + loProcedure = toClase._Procedures(I) - IF loProcedure._ProcLine_Count > 0 THEN - IF '.' $ loProcedure._Nombre - *-- cboNombre.InteractiveChange ==> No debe acortarse por ser método modificado de combobox heredado de la clase - *-- cntDatos.txtEdad.Valid ==> Debe acortarse si cntDatos es un objeto existente - lcNombreObjeto = LEFT( loProcedure._Nombre, AT('.', loProcedure._Nombre) - 1 ) + IF loProcedure._ProcLine_Count > 0 THEN + .AvanceDelProceso( 'Generating Procedure ' + toClase._Nombre + '.' + loProcedure._Nombre + '...', I, toClase._Procedure_Count, 2 ) - IF THIS.buscarObjetoDelMetodoPorNombre( lcNombreObjeto, toClase ) = 0 + IF '.' $ loProcedure._Nombre + *-- cboNombre.InteractiveChange ==> No debe acortarse por ser método modificado de combobox heredado de la clase + *-- cntDatos.txtEdad.Valid ==> Debe acortarse si cntDatos es un objeto existente + lcNombreObjeto = LEFT( loProcedure._Nombre, AT('.', loProcedure._Nombre) - 1 ) + + IF .buscarObjetoDelMetodoPorNombre( lcNombreObjeto, toClase ) = 0 + TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + <> <> + ENDTEXT + *lcMemo = lcMemo + C_PROCEDURE + ' ' + loProcedure._Nombre + ELSE + TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + <> <> + ENDTEXT + *lcMemo = lcMemo + C_PROCEDURE + ' ' + SUBSTR( loProcedure._Nombre, AT('.', loProcedure._Nombre) + 1 ) + ENDIF + ELSE TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 <> <> ENDTEXT - ELSE - TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - <> <> - ENDTEXT + *lcMemo = lcMemo + C_PROCEDURE + ' ' + loProcedure._Nombre ENDIF - ELSE - TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - <> <> + + *-- Incluir las líneas del método + *.AvanceDelProceso( 'Generating Lines of Procedure ' + toClase._Nombre + '.' + loProcedure._Nombre + '...', I, toClase._Procedure_Count, 2 ) + FOR X = 1 TO loProcedure._ProcLine_Count + *TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <> + *ENDTEXT + lcMemo = lcMemo + CHR(13) + CHR(10) + loProcedure._ProcLines(X) + ENDFOR + + TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + <> + <<>> ENDTEXT ENDIF - - *-- Incluir las líneas del método - FOR X = 1 TO loProcedure._ProcLine_Count - TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <> - ENDTEXT - ENDFOR - - TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <> - <<>> - ENDTEXT - ENDIF - ENDFOR + ENDFOR + ENDWITH loProcedure = NULL RELEASE toClase, I, X, lcNombreObjeto, loProcedure @@ -4871,6 +4989,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base lcMemo = '' *-- Recorrer los métodos + THIS.AvanceDelProceso( 'Generating Object Methods for ' + toClase._Nombre + '.' + toObjeto._ObjName + '...', 0, 1, 2 ) FOR I = 1 TO toObjeto._Procedure_Count loProcedure = NULL loProcedure = toObjeto._Procedures(I) @@ -4881,9 +5000,10 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Incluir las líneas del método FOR X = 1 TO loProcedure._ProcLine_Count - TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <> - ENDTEXT + *TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <> + *ENDTEXT + lcMemo = lcMemo + CHR(13) + CHR(10) + loProcedure._ProcLines(X) ENDFOR TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -5325,54 +5445,55 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base IF LEFT( tcLine, 11 ) == 'ADD OBJECT ' *-- Estructura a reconocer: ADD OBJECT 'frm_a.Check1' AS check [WITH] - llBloqueEncontrado = .T. - LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, Z, lcProp, lcValue, lcNombre, lcObjName - tcLine = CHRTRAN( tcLine, ['], ["] ) + WITH THIS AS c_conversor_prg_a_bin OF foxbin2prg.prg + llBloqueEncontrado = .T. + LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, Z, lcProp, lcValue, lcNombre, lcObjName + tcLine = CHRTRAN( tcLine, ['], ["] ) - IF EMPTY(toClase._Fin_Cab) - toClase._Fin_Cab = I-1 - toClase._Ini_Cuerpo = I - ENDIF + IF EMPTY(toClase._Fin_Cab) + toClase._Fin_Cab = I-1 + toClase._Ini_Cuerpo = I + ENDIF - toObjeto = NULL - lcNombre = ALLTRIM( CHRTRAN( STREXTRACT(tcLine, 'ADD OBJECT ', ' AS ', 1, 1), ['"], [] ) ) - lcObjName = JUSTEXT( '.' + lcNombre ) + toObjeto = NULL + lcNombre = ALLTRIM( CHRTRAN( STREXTRACT(tcLine, 'ADD OBJECT ', ' AS ', 1, 1), ['"], [] ) ) + lcObjName = JUSTEXT( '.' + lcNombre ) + .AvanceDelProceso( 'Analyzing Block Add Object ' + toClase._Nombre + '.' + lcObjName + '...', I, tnCodeLines, 1 ) - IF toClase.l_ObjectMetadataInHeader - FOR Z = 1 TO toClase._AddObject_Count - IF LOWER(toClase._AddObjects(Z)._Nombre) == LOWER(lcNombre) THEN - toObjeto = toClase._AddObjects(Z) - EXIT - ENDIF - ENDFOR - ENDIF + IF toClase.l_ObjectMetadataInHeader + FOR Z = 1 TO toClase._AddObject_Count + IF LOWER(toClase._AddObjects(Z)._Nombre) == LOWER(lcNombre) THEN + toObjeto = toClase._AddObjects(Z) + EXIT + ENDIF + ENDFOR + ENDIF - IF ISNULL(toObjeto) - toObjeto = CREATEOBJECT('CL_OBJETO') - *-- Luego se reasigna el ZOrder, pero si no lo hace, se pone último como si se acabara de agregar. - *-- Puede pasar si se agrega manualmente al TX2 y se olvida agregar la metadata OBJECTDATA. - toObjeto._ZOrder = 9999 - toObjeto._Nombre = lcNombre - ENDIF + IF ISNULL(toObjeto) + toObjeto = CREATEOBJECT('CL_OBJETO') + *-- Luego se reasigna el ZOrder, pero si no lo hace, se pone último como si se acabara de agregar. + *-- Puede pasar si se agrega manualmente al TX2 y se olvida agregar la metadata OBJECTDATA. + toObjeto._ZOrder = 9999 + toObjeto._Nombre = lcNombre + ENDIF - toObjeto._ObjName = lcObjName + toObjeto._ObjName = lcObjName - IF '.' $ toObjeto._Nombre - toObjeto._Parent = toClase._ObjName + '.' + JUSTSTEM( toObjeto._Nombre ) - ELSE - toObjeto._Parent = toClase._ObjName - ENDIF + IF '.' $ toObjeto._Nombre + toObjeto._Parent = toClase._ObjName + '.' + JUSTSTEM( toObjeto._Nombre ) + ELSE + toObjeto._Parent = toClase._ObjName + ENDIF - toObjeto._Nombre = toObjeto._Parent + '.' + toObjeto._ObjName - toObjeto._Class = ALLTRIM( STREXTRACT(tcLine + ' WITH', ' AS ', ' WITH', 1, 1) ) + toObjeto._Nombre = toObjeto._Parent + '.' + toObjeto._ObjName + toObjeto._Class = ALLTRIM( STREXTRACT(tcLine + ' WITH', ' AS ', ' WITH', 1, 1) ) - IF NOT toClase.l_ObjectMetadataInHeader - toClase.add_Object( toObjeto ) - ENDIF + IF NOT toClase.l_ObjectMetadataInHeader + toClase.add_Object( toObjeto ) + ENDIF - *-- Propiedades del ADD OBJECT - WITH THIS + *-- Propiedades del ADD OBJECT FOR I = I + 1 TO tnCodeLines .set_Line( @tcLine, @taCodeLines, I ) @@ -6043,6 +6164,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base IF llBloqueEncontrado *-- Evalúo todo el contenido del PROCEDURE + THIS.AvanceDelProceso( 'Analyzing Procedure ' + toClase._Nombre + '.' + tcProcedureAbierto + '...', I, tnCodeLines, 1 ) THIS.analizarLineasDeProcedure( @toClase, @toObjeto, @tcLine, @taCodeLines, @I, @tnCodeLines, @tcProcedureAbierto ; , @tc_Comentario, @taLineasExclusion, @tnBloquesExclusion ) ENDIF @@ -6452,8 +6574,10 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .AvanceDelProceso( 'Identifying Header Blocks...', 1, lnCodeLines, 1 ) .identificarBloquesDeCabecera( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toModulo, @toFoxBin2Prg ) + .AvanceDelProceso( 'Loading Code...', 2, lnCodeLines, 1 ) IF toFoxBin2Prg.l_UseClassPerFile *-- Esto crea la máscara de búsqueda "filename.*.ext" para encontrar las partes lcInputFile = FORCEPATH( JUSTSTEM( .c_InputFile ), JUSTPATH( .c_InputFile ) ) + '.*.' + JUSTEXT( .c_InputFile ) @@ -6477,11 +6601,13 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin .n_Avance_Maximo = lnCodeLines *-- Identifico los TEXT/ENDTEXT, #IF .F./#ENDIF + .AvanceDelProceso( 'Identifying Excluded Blocks...', 3, lnCodeLines, 1 ) .identificarBloquesDeExclusion( @laCodeLines, lnCodeLines, .F., @laLineasExclusion, @lnBloquesExclusion ) *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toModulo, @toFoxBin2Prg ) + .AvanceDelProceso( 'Generating Binary...', 0, lnCodeLines, 1 ) toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) .createClasslib() @@ -6785,8 +6911,11 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + .AvanceDelProceso( 'Identifying Header Blocks...', 1, lnCodeLines, 1 ) .identificarBloquesDeCabecera( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toModulo, @toFoxBin2Prg ) + .AvanceDelProceso( 'Loading Code...', 2, lnCodeLines, 1 ) + IF toFoxBin2Prg.l_UseClassPerFile *-- Esto crea la máscara de búsqueda "filename.*.ext" para encontrar las partes lcInputFile = FORCEPATH( JUSTSTEM( .c_InputFile ), JUSTPATH( .c_InputFile ) ) + '.*.' + JUSTEXT( .c_InputFile ) @@ -6810,11 +6939,14 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin .n_Avance_Maximo = lnCodeLines *-- Identifico los TEXT/ENDTEXT, #IF .F./#ENDIF + .AvanceDelProceso( 'Identifying Excluded Blocks...', 3, lnCodeLines, 1 ) .identificarBloquesDeExclusion( @laCodeLines, lnCodeLines, .F., @laLineasExclusion, @lnBloquesExclusion ) *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toModulo, @toFoxBin2Prg ) + .AvanceDelProceso( 'Generating Binary...', 0, lnCodeLines, 1 ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) .createForm() @@ -7131,8 +7263,10 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin *.identificarBloquesDeExclusion( @laCodeLines, .F., @laLineasExclusion, @lnBloquesExclusion ) *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase + .AvanceDelProceso( 'Identifying Code Blocks...', 1, 2, 1 ) .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toProject ) + .AvanceDelProceso( 'Generating Binary...', 2, 2, 1 ) .escribirArchivoBin( @toProject, toFoxBin2Prg ) ENDWITH && THIS @@ -7925,8 +8059,10 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin .createReport() *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte + .AvanceDelProceso( 'Identifying Code Blocks...', 1, 2, 1 ) .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toReport ) + .AvanceDelProceso( 'Generating Binary...', 2, 2, 1 ) .escribirArchivoBin( @toReport, toFoxBin2Prg ) ENDWITH && THIS @@ -8652,8 +8788,10 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin *.createTable() *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte + .AvanceDelProceso( 'Identifying Code Blocks...', 1, 2, 1 ) .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toDatabase ) + .AvanceDelProceso( 'Generating Binary...', 2, 2, 1 ) .escribirArchivoBin( @toDatabase, toFoxBin2Prg ) ENDWITH && THIS @@ -8831,8 +8969,10 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin .createMenu() *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte + .AvanceDelProceso( 'Identifying Code Blocks...', 1, 2, 1 ) .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toMenu ) + .AvanceDelProceso( 'Generating Binary...', 1, 2, 1 ) .escribirArchivoBin( @toMenu ) ENDWITH && THIS @@ -10040,17 +10180,19 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *-- Escribo las propiedades de la clase y sus comentarios (los comentarios aquí son redundantes) FOR I = 1 TO tnPropsAndValues_Count - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> <> = <> - ENDTEXT + *TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> <> = <> + *ENDTEXT + tcCodigo = tcCodigo + CHR(13) + CHR(10) + CHR(9) + taPropsAndValues(I,1) + ' = ' + taPropsAndValues(I,2) IF tnPropsAndComments_Count > 0 THEN lnComment = ASCAN( taPropsAndComments, taPropsAndValues(I,1), 1, 0, 1, 1+2+4+8) IF lnComment > 0 AND NOT EMPTY(taPropsAndComments(lnComment,2)) - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - <<>> && <> - ENDTEXT + *TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + * <<>> && <> + *ENDTEXT + tcCodigo = tcCodigo + CHR(13) + CHR(10) + CHR(9) + CHR(9) + '&' + '& ' + taPropsAndComments(lnComment,2) ENDIF ENDIF ENDFOR @@ -10113,19 +10255,22 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base , 'p' ) IF lcType == 'p' THEN - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> *<>: <> - ENDTEXT + *TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> *<>: <> + *ENDTEXT + tcCodigo = tcCodigo + CHR(13) + CHR(10) + CHR(9) + CHR(9) + '*' + lcType + ': ' + taPropsAndComments(I,1) ELSE - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> *<>: <> - ENDTEXT + *TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> *<>: <> + *ENDTEXT + tcCodigo = tcCodigo + CHR(13) + CHR(10) + CHR(9) + CHR(9) + '*' + lcType + ': ' + SUBSTR( taPropsAndComments(I,1), 2) ENDIF IF NOT EMPTY(taPropsAndComments(I,2)) - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - <<>> <<'&'>><<'&'>> <> - ENDTEXT + *TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + * <<>> <<'&'>><<'&'>> <> + *ENDTEXT + tcCodigo = tcCodigo + CHR(9) + CHR(9) + '&' + '& ' + taPropsAndComments(I,2) ENDIF ENDFOR @@ -10889,7 +11034,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen, lnObjCount ; , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) ; , laObjs(1,3), I, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count, lcCodigo, laClasses(1,2) ; - , lnClassCount, lcOutputFile, lcExternalHeader + , lnClassCount, lcOutputFile, lcExternalHeader, lnClassTotal STORE 0 TO lnCodError, lnLastClass, lnObjCount, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count ; , lnMethodCount, lnClassCount STORE '' TO laMethods, laCode, laProtected, laPropsAndComments, laObjs, lcCodigo, laClasses, lcOutputFile ; @@ -10928,6 +11073,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg ENDTEXT ENDIF + COUNT ALL FOR UPPER( TABLABIN.PLATFORM ) = "WINDOWS" AND PROPER( TABLABIN.RESERVED1 ) == "Class" TO lnClassTotal SCAN ALL FOR UPPER( TABLABIN.PLATFORM ) = "WINDOWS" AND PROPER( TABLABIN.RESERVED1 ) == "Class" STORE 0 TO lnMethodCount @@ -10954,6 +11100,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg lcObjName = ALLTRIM( loRegClass.OBJNAME ) laClasses(lnClassCount,1) = LOWER( lcObjName ) + .AvanceDelProceso( 'Processing Class ' + lcObjName + '...', lnClassCount, lnClassTotal, 1 ) .write_DEFINE_CLASS( @la_NombresObjsOle, @loRegClass, @lcCodigo ) @@ -11079,6 +11226,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg ENDIF *-- Genero el VC2 + .AvanceDelProceso( 'Writing VC2...', 2, 2, 1 ) lcOutputFile = .c_OutputFile lcCodigo = toFoxBin2Prg.get_PROGRAM_HEADER() + lcExternalHeader + C_FB2PRG_CODE @@ -11156,7 +11304,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen, lnObjCount ; , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) ; , laObjs(1,3), I, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count, lcCodigo, laClasses(1,2) ; - , lnClassCount, lcOutputFile, lcExternalHeader + , lnClassCount, lcOutputFile, lcExternalHeader, lnClassTotal STORE 0 TO lnCodError, lnLastClass, lnObjCount, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count ; , lnMethodCount, lnClassCount STORE '' TO laMethods, laCode, laProtected, laPropsAndComments, laObjs, lcCodigo, laClasses, lcOutputFile ; @@ -11206,6 +11354,10 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg ENDIF + COUNT ALL FOR TABLABIN.PLATFORM = "WINDOWS" ; + AND ( EMPTY( TABLABIN.PARENT ) ; + AND INLIST( LOWER( TABLABIN.BASECLASS ), 'dataenvironment', 'form', 'formset' ) ) TO lnClassTotal + SCAN ALL FOR TABLABIN.PLATFORM = "WINDOWS" ; AND ( EMPTY( TABLABIN.PARENT ) ; AND INLIST( LOWER( TABLABIN.BASECLASS ), 'dataenvironment', 'form', 'formset' ) ) @@ -11234,6 +11386,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg lcObjName = ALLTRIM(loRegClass.OBJNAME) laClasses(lnClassCount,1) = LOWER( lcObjName ) + .AvanceDelProceso( 'Processing Class ' + lcObjName + '...', lnClassCount, lnClassTotal, 1 ) .write_DEFINE_CLASS( @la_NombresObjsOle, @loRegClass, @lcCodigo ) @@ -11362,6 +11515,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg ENDIF *-- Genero el SC2 + .AvanceDelProceso( 'Writing SC2...', 2, 2, 1 ) lcOutputFile = .c_OutputFile lcCodigo = toFoxBin2Prg.get_PROGRAM_HEADER() + lcExternalHeader + C_FB2PRG_CODE @@ -11449,6 +11603,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg USE IN (SELECT("_TABLAORIG")) loServerHead = CREATEOBJECT('CL_PROJ_SRV_HEAD') + .AvanceDelProceso( 'Processing Project ' + '...', 1, 2, 1 ) *-- Obtengo los archivos del proyecto @@ -11614,9 +11769,10 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg FOR EACH loReg IN loProject &&FOXOBJECT IF NOT EMPTY(loReg.COMMENTS) - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> .ITEM(lcCurdir + '<>').Description = '<>' - ENDTEXT + *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> .ITEM(lcCurdir + '<>').Description = '<>' + *ENDTEXT + C_FB2PRG_CODE = C_FB2PRG_CODE + CHR(13) + CHR(10) + CHR(9) + ".ITEM(lcCurdir + '" + loReg.NAME + "').Description = '" + loReg.COMMENTS + "'" ENDIF loReg = NULL ENDFOR @@ -11633,9 +11789,10 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg FOR EACH loReg IN loProject &&FOXOBJECT IF loReg.EXCLUDE - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> .ITEM(lcCurdir + '<>').Exclude = .T. - ENDTEXT + *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> .ITEM(lcCurdir + '<>').Exclude = .T. + *ENDTEXT + C_FB2PRG_CODE = C_FB2PRG_CODE + CHR(13) + CHR(10) + CHR(9) + ".ITEM(lcCurdir + '" + loReg.NAME + "').Exclude = .T." ENDIF loReg = NULL ENDFOR @@ -11652,9 +11809,10 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg FOR EACH loReg IN loProject &&FOXOBJECT IF INLIST( UPPER( JUSTEXT( loReg.NAME ) ), 'H','FPW' ) - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> .ITEM(lcCurdir + '<>').Type = 'T' - ENDTEXT + *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> .ITEM(lcCurdir + '<>').Type = 'T' + *ENDTEXT + C_FB2PRG_CODE = C_FB2PRG_CODE + CHR(13) + CHR(10) + CHR(9) + ".ITEM(lcCurdir + '" + loReg.NAME + "').Type = 'T'" ENDIF loReg = NULL ENDFOR @@ -11711,6 +11869,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg *-- Genero el PJ2 + .AvanceDelProceso( 'Writing PJ2...', 2, 2, 1 ) IF .l_Test toModulo = C_FB2PRG_CODE ELSE @@ -11778,6 +11937,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg STORE NULL TO loProject, loReg, loServerHead, loServerData lcStrPJM = FILETOSTR( THIS.c_InputFile ) loServerHead = CREATEOBJECT('CL_PROJ_SRV_HEAD') + THIS.AvanceDelProceso( 'Scanning PJM...', 1, 2, 1 ) *-- Obtengo los archivos del proyecto @@ -11988,9 +12148,10 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg FOR EACH loReg IN loProject &&FOXOBJECT IF NOT EMPTY(loReg.COMMENTS) - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> .ITEM(lcCurdir + '<>').Description = '<>' - ENDTEXT + *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> .ITEM(lcCurdir + '<>').Description = '<>' + *ENDTEXT + C_FB2PRG_CODE = C_FB2PRG_CODE + CHR(13) + CHR(10) + CHR(9) + ".ITEM(lcCurdir + '" + loReg.NAME + "').Description = '" + loReg.COMMENTS + "'" ENDIF ENDFOR @@ -12006,9 +12167,10 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg FOR EACH loReg IN loProject &&FOXOBJECT IF loReg.EXCLUDE - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> .ITEM(lcCurdir + '<>').Exclude = .T. - ENDTEXT + *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> .ITEM(lcCurdir + '<>').Exclude = .T. + *ENDTEXT + C_FB2PRG_CODE = C_FB2PRG_CODE + CHR(13) + CHR(10) + CHR(9) + ".ITEM(lcCurdir + '" + loReg.NAME + "').Exclude = .T." ENDIF loReg = NULL ENDFOR @@ -12025,9 +12187,10 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg FOR EACH loReg IN loProject &&FOXOBJECT IF INLIST( UPPER( JUSTEXT( loReg.NAME ) ), 'H','FPW' ) - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> .ITEM(lcCurdir + '<>').Type = 'T' - ENDTEXT + *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> .ITEM(lcCurdir + '<>').Type = 'T' + *ENDTEXT + C_FB2PRG_CODE = C_FB2PRG_CODE + CHR(13) + CHR(10) + CHR(9) + ".ITEM(lcCurdir + '" + loReg.NAME + "').Type = 'T'" ENDIF loReg = NULL ENDFOR @@ -12083,6 +12246,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg *-- Genero el PJ2 + .AvanceDelProceso( 'Writing PJ2...', 2, 2, 1 ) IF .l_Test toModulo = C_FB2PRG_CODE ELSE @@ -12156,6 +12320,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN_0 .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) + THIS.AvanceDelProceso( 'Scanning FRX...', 1, 2, 1 ) *-- Header LOCATE FOR ObjType = 1 @@ -12250,6 +12415,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg *-- Genero el FR2 + .AvanceDelProceso( 'Writing FR2...', 2, 2, 1 ) IF .l_Test toModulo = C_FB2PRG_CODE ELSE @@ -12311,6 +12477,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_dbf_a_prg OF 'FOXBIN2PRG.PRG' *-- EVALUAR OPCIONES ESPECÍFICAS DE DBF + .AvanceDelProceso( 'Scanning DBF Structure...', 1, 2, 1 ) *-- Include IF NOT EMPTY(toFoxBin2Prg.DBF_Conversion_Included) AND NOT toFoxBin2Prg.DBF_Conversion_Included == '*' ; @@ -12353,6 +12520,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg *-- Genero el DB2, renombrando el TMP + .AvanceDelProceso( 'Writing DB2...', 2, 2, 1 ) IF .l_Test toModulo = C_FB2PRG_CODE ELSE @@ -12374,6 +12542,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg *-- Genero el DB2 + .AvanceDelProceso( 'Writing DB2...', 2, 2, 1 ) IF .l_Test toModulo = C_FB2PRG_CODE ELSE @@ -12475,6 +12644,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN OPEN DATABASE (.c_InputFile) SHARED NOUPDATE + .AvanceDelProceso( 'Analyzing DBC metadata...', 1, 2, 1 ) C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() @@ -12484,6 +12654,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg *-- Genero el DC2 + .AvanceDelProceso( 'Writing DC2...', 2, 2, 1 ) IF .l_Test toModulo = C_FB2PRG_CODE ELSE @@ -12542,6 +12713,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) + .AvanceDelProceso( 'Analyzing MNX...', 2, 2, 1 ) *-- Verificación de menú VFP 9 IF FCOUNT() < 25 OR EMPTY(FIELD("RESNAME")) OR EMPTY(FIELD("SYSRES")) @@ -12558,6 +12730,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg *-- Genero el MN2 + .AvanceDelProceso( 'Writing MN2...', 2, 2, 1 ) IF .l_Test toMenu = C_FB2PRG_CODE ELSE From cd23962bf256ba2ffb1d768b3eab439cddd46dd8 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 29 Nov 2014 14:19:12 +0100 Subject: [PATCH 03/11] =?UTF-8?q?Changeset:=20525=20fdbozzo=20-=2029/11/20?= =?UTF-8?q?14=2004:13:08:=20-=20Arreglo=20para=20detecci=C3=B3n=20de=20END?= =?UTF-8?q?PROC=20redundantes=20-=20Arreglo=20de=20comentario=20PAM=20fuer?= =?UTF-8?q?a=20de=20l=C3=ADnea?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index f31e509..3716cb8 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -9952,6 +9952,10 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base lcLine = UPPER( CHRTRAN( laLine(I) , '&'+CHR(9)+CHR(0), ' ') ) + ' ' IF lnLine_Len >= 7 AND LEFT(lcLine,8) == 'ENDPROC ' *-- Es el final de estructura ENDPROC + IF NOT llProcOpen + *-- Esto no es normal, porque hay más de un ENDPROC, por lo que se ignora. + LOOP + ENDIF ELSE *-- Es otra cosa (variable, etc) taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF @@ -9965,6 +9969,10 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base lcLine = UPPER( CHRTRAN( laLine(I) , '&'+CHR(9)+CHR(0), ' ') ) + ' ' IF lnLine_Len >= 7 AND LEFT(lcLine,8) == 'ENDFUNC ' *-- Es el final de estructura ENDPROC + IF NOT llProcOpen + *-- Esto no es normal, porque hay más de un ENDFUNC, por lo que se ignora. + LOOP + ENDIF laLine(I) = STRTRAN( laLine(I), 'ENDFUNC', 'ENDPROC' ) ELSE *-- Es otra cosa (variable, etc) @@ -10192,7 +10200,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 * <<>> && <> *ENDTEXT - tcCodigo = tcCodigo + CHR(13) + CHR(10) + CHR(9) + CHR(9) + '&' + '& ' + taPropsAndComments(lnComment,2) + tcCodigo = tcCodigo + CHR(9) + CHR(9) + '&' + '& ' + taPropsAndComments(lnComment,2) ENDIF ENDIF ENDFOR From 702840ebf689f152a5c533227c510f5d64b04eee Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 29 Nov 2014 15:56:15 +0100 Subject: [PATCH 04/11] =?UTF-8?q?Changeset:=20526=20fdbozzo=20-=2029/11/20?= =?UTF-8?q?14=2014:19:13:=20-=20Normalizaci=C3=B3n=20capitalizaci=C3=B3n?= =?UTF-8?q?=20nombre=20clases=20a=20min=C3=BAsculas=20(por=20compatibilida?= =?UTF-8?q?d=20con=20FoxBin2Prg=20anteriores)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 3716cb8..7790ce0 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -5301,7 +5301,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base FOR EACH loObjeto IN toClase._AddObjects FOXOBJECT *-- Verifico que sea el objeto que corresponde - IF loObjeto._WriteOrder = 0 AND loObjeto._Nombre == lcObjName + IF loObjeto._WriteOrder = 0 AND LOWER(loObjeto._Nombre) == LOWER(lcObjName) N = N + 1 loObjeto._WriteOrder = N .insert_Object( toClase, loObjeto, toFoxBin2Prg ) @@ -5688,7 +5688,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base STORE '' TO tcProcedureAbierto toClase = CREATEOBJECT('CL_CLASE') toClase._Nombre = LOWER( ALLTRIM( STREXTRACT( tcLine, 'DEFINE CLASS ', ' AS ', 1, 1 ) ) ) - toClase._ObjName = toClase._Nombre + toClase._ObjName = LOWER( toClase._Nombre ) toClase._Definicion = ALLTRIM( tcLine ) IF NOT ' OF ' $ UPPER(tcLine) && Puede no tener "OF libreria.vcx" toClase._Class = ALLTRIM( CHRTRAN( STREXTRACT( tcLine + ' OLEPUBLIC', ' AS ', ' OLEPUBLIC', 1, 1 ), ["'], [] ) ) @@ -9254,7 +9254,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base CASE '.' $ toRegObj.PARENT lcMethodName = SUBSTR(toRegObj.PARENT, AT('.', toRegObj.PARENT) + 1) + '.' + toRegObj.OBJNAME + '.' + taMethods(I,1) - CASE LEFT(toRegObj.PARENT + '.', LEN( toRegClass.OBJNAME + '.' ) ) == toRegClass.OBJNAME + '.' + CASE LOWER( LEFT(toRegObj.PARENT + '.', LEN( toRegClass.OBJNAME + '.' ) ) ) == LOWER( toRegClass.OBJNAME + '.' ) lcMethodName = toRegObj.OBJNAME + '.' + taMethods(I,1) OTHERWISE @@ -11096,6 +11096,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg loRegClass.BASECLASS = LOWER( loRegClass.BASECLASS ) loRegClass.CLASSLOC = LOWER( loRegClass.CLASSLOC ) loRegClass.CLASS = LOWER( loRegClass.CLASS ) + loRegClass.OBJNAME = LOWER( loRegClass.OBJNAME ) IF toFoxBin2Prg.l_NoTimestamps loRegClass.TIMESTAMP = 0 @@ -11382,6 +11383,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg loRegClass.BASECLASS = LOWER( loRegClass.BASECLASS ) loRegClass.CLASSLOC = LOWER( loRegClass.CLASSLOC ) loRegClass.CLASS = LOWER( loRegClass.CLASS ) + loRegClass.OBJNAME = LOWER( loRegClass.OBJNAME ) IF toFoxBin2Prg.l_NoTimestamps loRegClass.TIMESTAMP = 0 From 4d0535e501f3f0fcafd371ac6a54ba6d6d74db7e Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 29 Nov 2014 16:20:39 +0100 Subject: [PATCH 05/11] Changeset: 527 fdbozzo - 29/11/2014 15:56:16: - Nuevo: AutoFix para propiedades partidas debido a ediciones manuales del scx/vcx --- foxbin2prg.prg | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 7790ce0..53bb96b 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -9458,8 +9458,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base EXTERNAL ARRAY taPropsAndValues TRY - LOCAL laItems(1), I, X, lnLenAcum, lnPosEQ, lcPropName, lnLenVal, lcValue, lcMethods - tcSortedMemo = '' + LOCAL laItems(1), I, X, lnLenAcum, lnPosEQ, lcPropName, lnLenVal, lcValue, lcMethods, lcLastIncompletePropName + STORE '' TO tcSortedMemo, lcLastIncompletePropName tnPropsAndValues_Count = 0 IF NOT EMPTY(m.tcMemo) @@ -9480,14 +9480,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base LOOP ENDIF - X = X + 1 - DIMENSION taPropsAndValues(X,2) - IF C_MPROPHEADER $ laItems(I) *-- Solo entrará por aquí cuando se evalúe una propiedad de PROPERTIES con un valor especial (largo) lnLenAcum = 0 lnPosEQ = AT( '=', laItems(I) ) - lcPropName = LEFT( laItems(I), lnPosEQ - 2 ) + lcPropName = lcLastIncompletePropName + LEFT( laItems(I), lnPosEQ - 2 ) lnLenVal = INT( VAL( SUBSTR( laItems(I), lnPosEQ + 2 + 517, 8) ) ) lcValue = SUBSTR( laItems(I), lnPosEQ + 2 + 517 + 8 ) @@ -9507,15 +9504,37 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDIF *-- Es un valor especial, por lo que se encapsula en un marcador especial + X = X + 1 + DIMENSION taPropsAndValues(X,2) taPropsAndValues(X,1) = lcPropName taPropsAndValues(X,2) = .normalizarValorPropiedad( lcPropName, lcValue, '' ) ELSE *-- Propiedad normal lnPosEQ = AT( '=', laItems(I) ) - taPropsAndValues(X,1) = LEFT( laItems(I), lnPosEQ - 2 ) + + IF lnPosEQ = 0 THEN + *-- AUTOFIX DE PROPIEDAD PARTIDA: + *-- Esto solo puede ocurrir cuando en el memo de Propiedades hay alguna propiedad + *-- partida debido a una edición manual con un Enter erróneo, algo como esto: + * comm + * AND2.Caption = "Command2" + * + *-- En el caso anterior, las 2 líneas son realmente una: + * command2.Caption = "Command2" + * + *-- Solución: Guardar esta parte del nombre y agregarlo a la próxima propiedad. + lcLastIncompletePropName = laItems(I) + LOOP + ENDIF + + X = X + 1 + DIMENSION taPropsAndValues(X,2) + taPropsAndValues(X,1) = lcLastIncompletePropName + LEFT( laItems(I), lnPosEQ - 2 ) taPropsAndValues(X,2) = .normalizarValorPropiedad( taPropsAndValues(X,1), LTRIM( SUBSTR( laItems(I), lnPosEQ + 2 ) ), '' ) ENDIF + + lcLastIncompletePropName = '' ENDFOR From fe40d8dd833ec298c297bda65fb2760354bfe1be Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 29 Nov 2014 16:39:19 +0100 Subject: [PATCH 06/11] =?UTF-8?q?Changeset:=20528=20fdbozzo=20-=2029/11/20?= =?UTF-8?q?14=2016:20:40:=20-=20Quitada=20la=20l=C3=ADnea=20vac=C3=ADa=20e?= =?UTF-8?q?=20la=20cabecera=20cuando=20el=20form=20tiene=20objetos=20OLE?= =?UTF-8?q?=20(bug=20del=20antiguo=20manejo=20de=20OLE=20en=20cabecera,=20?= =?UTF-8?q?antes=20de=20encapsularlo=20en=20el=20objeto=20mismo)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 53bb96b..aa8b9c6 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -10902,21 +10902,24 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *!* ENDSCAN - SELECT COUNT(*) FROM TABLABIN WHERE TABLABIN.PLATFORM = "WINDOWS" AND BASECLASS == 'olecontrol' INTO ARRAY laOLE + *-- LO QUE SIGUE LO COMENTÉ PORQUE POR CADA OBJETO OLE SE AGREGABA UNA LÍNEA VACÍA QUE QUEDA MUY MAL Y ES INNECESARIA. + *-- COMO CONSECUENCIA, LOS FORMS O CLASES CON OBJETOS OLE DARÁN DIFERENCIA POR ÚNICA VEZ EN LA CABECERA. - fdbozzo. 29/11/2014 (v1.19.37) + * + *SELECT COUNT(*) FROM TABLABIN WHERE TABLABIN.PLATFORM = "WINDOWS" AND BASECLASS == 'olecontrol' INTO ARRAY laOLE - IF laOLE(1) > 0 THEN - *-- Lo del <<>> para crear una línea vacía es solamente por compatibilidad con lo antiguo, - *-- donde se creaba esta línea cuando el form o clase tenía al menos un objeto OLE. - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> - * - ENDTEXT - ELSE + *IF laOLE(1) > 0 THEN + * *-- Lo del <<>> para crear una línea vacía es solamente por compatibilidad con lo antiguo, + * *-- donde se creaba esta línea cuando el form o clase tenía al menos un objeto OLE. + * TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + * <<>> + * * + * ENDTEXT + *ELSE TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 * ENDTEXT - ENDIF + *ENDIF *!* CATCH TO loEx *!* IF THIS.l_Debug AND _VFP.STARTMODE = 0 From 5af062db63b4c224d5a2431a5ac75d19e380d79b Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 29 Nov 2014 17:16:34 +0100 Subject: [PATCH 07/11] =?UTF-8?q?Changeset:=20529=20fdbozzo=20-=2029/11/20?= =?UTF-8?q?14=2016:39:20:=20-=20Arreglo=20defecto:=20Quitada=20la=20capita?= =?UTF-8?q?lizaci=C3=B3n=20a=20min=C3=BAsculas=20de=20propiedades=20Protec?= =?UTF-8?q?ted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index aa8b9c6..711e2b8 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -9601,9 +9601,9 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base FOR I = tnProtected_Count TO 1 STEP -1 *-- El ASCAN es para evitar valores repetidos, que se eliminarán. v1.19.29 - taProtected(I) = LOWER( taProtected(I) ) + taProtected(I) = taProtected(I) IF ASCAN( taProtected, taProtected(I), 1, -1, 0, 1+2+4 ) = I - tcSortedMemo = tcSortedMemo + LOWER(taProtected(I)) + CR_LF + tcSortedMemo = tcSortedMemo + taProtected(I) + CR_LF ELSE ADEL( taProtected, I ) tnProtected_Count = tnProtected_Count - 1 From d464d6541c3da7fbd483f7ca7ab5b91b583c9db0 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sun, 30 Nov 2014 16:32:35 +0100 Subject: [PATCH 08/11] =?UTF-8?q?Changeset:=20530=20fdbozzo=20-=2029/11/20?= =?UTF-8?q?14=2017:16:34:=20-=20Agregado=20control=20para=20detectar=20rep?= =?UTF-8?q?ortes=20no=20compatibles=20con=20VFP=209=20-=20Agregada=20posib?= =?UTF-8?q?ilidad=20de=20cancelar=20proceso=20con=20tecla=20Esc=20-=20Vari?= =?UTF-8?q?as=20mejoras=20al=20indicador=20de=20progreso=20-=20Adaptados?= =?UTF-8?q?=20los=20scripts=20vbs=20para=20el=20nuevo=20funcionamiento=20d?= =?UTF-8?q?el=20indicador=20de=20progreso=20y=20cancelaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Convert_VFP9_BIN_2_PRG.vbs | 45 +++--- Convert_VFP9_PRG_2_BIN.vbs | 47 +++--- VFP9_FoxBin2Prg.vbs | 6 +- foxbin2prg.prg | 307 +++++++++++++++++++++++-------------- foxbin2prg_de.h | 3 +- foxbin2prg_en.h | 3 +- 6 files changed, 251 insertions(+), 160 deletions(-) diff --git a/Convert_VFP9_BIN_2_PRG.vbs b/Convert_VFP9_BIN_2_PRG.vbs index 47cc1f5..ecd0fe8 100644 --- a/Convert_VFP9_BIN_2_PRG.vbs +++ b/Convert_VFP9_BIN_2_PRG.vbs @@ -15,7 +15,7 @@ Const ForReading = 1 Dim WSHShell, FileSystemObject Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, lcExt, foxbin2prg_cfg, aFiles(), nFile_Count -Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cNoTimestamps, cErrFile +Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cFlagNoTimestamps, cErrFile Set WSHShell = WScript.CreateObject("WScript.Shell") Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") Set oVFP9 = CreateObject("VisualFoxPro.Application.9") @@ -59,8 +59,6 @@ Else oVFP9.DoCmd( "SET PROCEDURE TO '" & cEXETool & "'" ) oVFP9.DoCmd( "PUBLIC oFoxBin2prg" ) oVFP9.DoCmd( "oFoxBin2prg = CREATEOBJECT('c_foxbin2prg')" ) - '.o_FoxBin2Prg.EvaluarConfiguracion( tcDontShowProgress, tcDontShowErrors, tcNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ) - oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '1', '1' )" ) oVFP9.DoCmd( "oFoxBin2prg.cargar_frm_avance()" ) For i = 0 To WScript.Arguments.Count-1 @@ -82,17 +80,11 @@ Else cFlagDontShowErrMsg = "'1'" End If If GetBit(nDebug, 5) Then - cNoTimestamps = "'1'" + cFlagNoTimestamps = "'1'" End If - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nMAX_VALUE = " & nFile_Count ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nVALUE = " & 0 ) - 'oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.AlwaysOnTop = .T." ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.SHOW()" ) - For i = 1 To nFile_Count - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.lbl_TAREA.CAPTION = oFoxBin2Prg.c_loc_processing_file + ' " & aFiles(i) & "...'" ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nVALUE = " & i ) + oVFP9.DoCmd( "oFoxBin2Prg.AvanceDelProceso(oFoxBin2Prg.c_loc_processing_file + ' " & aFiles(i) & "...', " & i & ", " & nFile_Count & ", 0)" ) cFlagRecompile = "'" & FileSystemObject.GetParentFolderName( aFiles(i) ) & "'" If nDebug = 0 Or nDebug = 2 Then @@ -100,22 +92,30 @@ Else Else cCMD = "oFoxBin2prg.ejecutar( '" & aFiles(i) & "','0','0','0'," _ & cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," _ - & cFlagRecompile & "," & cNoTimestamps & " )" + & cFlagRecompile & "," & cFlagNoTimestamps & " )" End If + If cFlagJustShowCall = "1" Then MsgBox cCMD, 64, "PARAMETERS" Else oVFP9.DoCmd( cCMD ) nExitCode = oVFP9.Eval("_SCREEN.ExitCode") End If - + + If nExitCode = 1799 Then 'Conversion cancelled by user + Exit For + End If Next - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.HIDE()" ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance = NULL" ) - If GetBit(nDebug, 4) Then - If oVFP9.Eval("oFoxBin2prg.l_Error") Then + 'If oVFP9.Eval("oFoxBin2prg.l_Error") Then + If nExitCode = 1799 Then + MsgBox "Conversion Cancelled by User!", 48, WScript.ScriptName + cErrFile = oVFP9.Eval("FORCEPATH('FoxBin2Prg.LOG',GETENV('TEMP') )") + oVFP9.DoCmd("STRTOFILE( oFoxBin2prg.c_ErrorLog, '" & cErrFile & "' )") + WSHShell.run cErrFile + + ElseIf nExitCode > 0 Then MsgBox "End of Process! (with errors)", 48, WScript.ScriptName cErrFile = oVFP9.Eval("FORCEPATH('FoxBin2Prg.LOG',GETENV('TEMP') )") oVFP9.DoCmd("STRTOFILE( oFoxBin2prg.c_ErrorLog, '" & cErrFile & "' )") @@ -126,15 +126,18 @@ Else End If oVFP9.DoCmd( "oFoxBin2prg = NULL" ) + oVFP9.DoCmd( "CLEAR ALL" ) + Set oVFP9 = Nothing End If -WScript.Quit(nExitCode) +WScript.Quit nExitCode Private Sub scanDirs( tcArgument ) Dim omFolder, oFolder If FileSystemObject.FolderExists( tcArgument ) Then '-- Es un directorio + oVFP9.DoCmd( "oFoxBin2Prg.AvanceDelProceso('Scanning file and directory information on " & tcArgument & "...', 0, 0, 0)" ) Set omFolder = FileSystemObject.GetFolder( tcArgument ) For Each oFile IN omFolder.Files evaluateFile( oFile.Path ) @@ -152,7 +155,11 @@ End Sub Private Sub evaluateFile( tcFile ) lcExt = UCase( FileSystemObject.GetExtensionName( tcFile ) ) oVFP9.SetVar "gc_Ext", lcExt - oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '', '', '', '', '', '', '', '', '" & tcFile & "' )" ) + oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '1', '1', '', '', '', '', '', '', '" & tcFile & "' )" ) + + 'PROCEDURE EvaluarConfiguracion + ' LPARAMETERS tcDontShowProgress, tcDontShowErrors, tcFlagNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ; + ' , tcClearUniqueID, tcOptimizeByFilestamp, tc_InputFile If oVFP9.Eval("oFoxBin2prg.TieneSoporte_Bin2Prg(gc_Ext)") Then nFile_Count = nFile_Count + 1 ReDim Preserve aFiles(nFile_Count) diff --git a/Convert_VFP9_PRG_2_BIN.vbs b/Convert_VFP9_PRG_2_BIN.vbs index 6f030d9..1b7d8bd 100644 --- a/Convert_VFP9_PRG_2_BIN.vbs +++ b/Convert_VFP9_PRG_2_BIN.vbs @@ -15,7 +15,7 @@ Const ForReading = 1 Dim WSHShell, FileSystemObject Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, lcExt, foxbin2prg_cfg, aFiles(), nFile_Count -Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cNoTimestamps, cErrFile +Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cFlagNoTimestamps, cErrFile Set WSHShell = WScript.CreateObject("WScript.Shell") Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") Set oVFP9 = CreateObject("VisualFoxPro.Application.9") @@ -59,8 +59,6 @@ Else oVFP9.DoCmd( "SET PROCEDURE TO '" & cEXETool & "'" ) oVFP9.DoCmd( "PUBLIC oFoxBin2prg" ) oVFP9.DoCmd( "oFoxBin2prg = CREATEOBJECT('c_foxbin2prg')" ) - '.o_FoxBin2Prg.EvaluarConfiguracion( tcDontShowProgress, tcDontShowErrors, tcNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ) - oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '1', '1' )" ) oVFP9.DoCmd( "oFoxBin2prg.cargar_frm_avance()" ) For i = 0 To WScript.Arguments.Count-1 @@ -77,7 +75,6 @@ Else cFlagGenerateLog = "'0'" cFlagDontShowErrMsg = "'0'" cFlagShowCall = "'0'" - 'cFlagRecompile = "'1'" If GetBit(nDebug, 1) Then cFlagGenerateLog = "'1'" @@ -89,17 +86,11 @@ Else cFlagDontShowErrMsg = "'1'" End If If GetBit(nDebug, 5) Then - cNoTimestamps = "'1'" + cFlagNoTimestamps = "'1'" End If - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nMAX_VALUE = " & nFile_Count ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nVALUE = " & 0 ) - 'oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.AlwaysOnTop = .T." ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.SHOW()" ) - For i = 1 To nFile_Count - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.lbl_TAREA.CAPTION = oFoxBin2Prg.c_loc_processing_file + ' " & aFiles(i) & "...'" ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.nVALUE = " & i ) + oVFP9.DoCmd( "oFoxBin2Prg.AvanceDelProceso(oFoxBin2Prg.c_loc_processing_file + ' " & aFiles(i) & "...', " & i & ", " & nFile_Count & ", 0)" ) cFlagRecompile = "'" & FileSystemObject.GetParentFolderName( aFiles(i) ) & "'" If nDebug = 0 Or nDebug = 2 Then @@ -107,22 +98,30 @@ Else Else cCMD = "oFoxBin2prg.ejecutar( '" & aFiles(i) & "','0','0','0'," _ & cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," _ - & cFlagRecompile & "," & cNoTimestamps & " )" + & cFlagRecompile & "," & cFlagNoTimestamps & " )" End If + If cFlagJustShowCall = "1" Then MsgBox cCMD, 64, "PARAMETERS" Else oVFP9.DoCmd( cCMD ) nExitCode = oVFP9.Eval("_SCREEN.ExitCode") End If - + + If nExitCode = 1799 Then 'Conversion cancelled by user + Exit For + End If Next - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance.HIDE()" ) - oVFP9.DoCmd( "oFoxBin2prg.o_Frm_Avance = NULL" ) - If GetBit(nDebug, 4) Then - If oVFP9.Eval("oFoxBin2prg.l_Error") Then + 'If oVFP9.Eval("oFoxBin2prg.l_Error") Then + If nExitCode = 1799 Then + MsgBox "Conversion Cancelled by User!", 48, WScript.ScriptName + cErrFile = oVFP9.Eval("FORCEPATH('FoxBin2Prg.LOG',GETENV('TEMP') )") + oVFP9.DoCmd("STRTOFILE( oFoxBin2prg.c_ErrorLog, '" & cErrFile & "' )") + WSHShell.run cErrFile + + ElseIf nExitCode > 0 Then MsgBox "End of Process! (with errors)", 48, WScript.ScriptName cErrFile = oVFP9.Eval("FORCEPATH('FoxBin2Prg.LOG',GETENV('TEMP') )") oVFP9.DoCmd("STRTOFILE( oFoxBin2prg.c_ErrorLog, '" & cErrFile & "' )") @@ -133,15 +132,18 @@ Else End If oVFP9.DoCmd( "oFoxBin2prg = NULL" ) + oVFP9.DoCmd( "CLEAR ALL" ) + Set oVFP9 = Nothing End If -WScript.Quit(nExitCode) +WScript.Quit nExitCode Private Sub scanDirs( tcArgument ) Dim omFolder, oFolder If FileSystemObject.FolderExists( tcArgument ) Then '-- Es un directorio + oVFP9.DoCmd( "oFoxBin2Prg.AvanceDelProceso('Scanning file and directory information on " & tcArgument & "...', 0, 0, 0)" ) Set omFolder = FileSystemObject.GetFolder( tcArgument ) For Each oFile IN omFolder.Files evaluateFile( oFile.Path ) @@ -160,16 +162,15 @@ Private Sub evaluateFile( tcFile ) lcExt = UCase( FileSystemObject.GetExtensionName( tcFile ) ) lcFileName = FileSystemObject.GetFileName( tcFile ) laPoints = Split( lcFileName, "." ) - lnPoints = UBound(laPoint) + lnPoints = UBound(laPoints) '-- No proceso los archivos con más de un punto (clases en archivos individuales) por performance If lnPoints = 1 Then oVFP9.SetVar "gc_Ext", lcExt 'PROCEDURE EvaluarConfiguracion - ' LPARAMETERS tcDontShowProgress, tcDontShowErrors, tcNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ; + ' LPARAMETERS tcDontShowProgress, tcDontShowErrors, tcFlagNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ; ' , tcClearUniqueID, tcOptimizeByFilestamp, tc_InputFile - - oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '', '', '', '', '', '', '', '', '" & tcFile & "' )" ) + oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '1', '1', '', '', '', '', '', '', '" & tcFile & "' )" ) If oVFP9.Eval("oFoxBin2prg.TieneSoporte_Prg2Bin(gc_Ext)") Then nFile_Count = nFile_Count + 1 ReDim Preserve aFiles(nFile_Count) diff --git a/VFP9_FoxBin2Prg.vbs b/VFP9_FoxBin2Prg.vbs index 82340e9..73899ab 100644 --- a/VFP9_FoxBin2Prg.vbs +++ b/VFP9_FoxBin2Prg.vbs @@ -61,7 +61,7 @@ Else oVFP9.DoCmd( "SET PROCEDURE TO '" & cEXETool & "'" ) oVFP9.DoCmd( "PUBLIC oFoxBin2prg" ) oVFP9.DoCmd( "oFoxBin2prg = CREATEOBJECT('c_foxbin2prg')" ) - oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '1', '1' )" ) + oVFP9.DoCmd( "oFoxBin2prg.cargar_frm_avance()" ) cFlagGenerateLog = "'0'" cFlagDontShowErrMsg = "'0'" @@ -87,7 +87,7 @@ Else cCMD = "oFoxBin2prg.ejecutar( '" & WScript.Arguments(0) & "' )" Else cCMD = "oFoxBin2prg.ejecutar( '" & WScript.Arguments(0) & "','0','0','0'," _ - & cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," _ + & cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'0','','',.F.,''," _ & cFlagRecompile & "," & cNoTimestamps & " )" End If If cFlagJustShowCall = "1" Then @@ -113,7 +113,7 @@ Else Set oVFP9 = Nothing End If -WScript.Quit(nExitCode) +WScript.Quit nExitCode Function GetBit(lngValue, BitNum) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 711e2b8..c3e9ea5 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -415,7 +415,7 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb + " FOXBIN2PRG 'c:\desa\clases\*.vc2' '0' '0' '0' '1' '0'" #DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "¡FOXBIN2PRG es solo para Visual FoxPro 9.0!" #DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC "FOXBIN2PRG: ¡ATENCIÓN!" - #DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "El Menú [<>] NO está en formato VFP 9! - Por favor convertirlo a VFP 9 con MODIFY MENU <>" + #DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "El Menú [<>] NO está en formato VFP 9! - Por favor convertirlo a VFP 9 con MODIFY MENU '<>'" #DEFINE C_LANGUAGE_LOC "ES" #DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC "* Se ha encontrado el programa de capitalización de nombres [<>]" #DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC "* No se ha encontrado el programa de capitalización de nombres [<>]" @@ -427,6 +427,7 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb #DEFINE C_PROCESSING_LOC "Procesando archivo" #DEFINE C_PROCESS_PROGRESS_LOC "Avance del proceso:" #DEFINE C_PROPERTY_NAME_NOT_RECOGNIZED_LOC "Propiedad [<>] no reconocida." + #DEFINE C_REPORT_NOT_IN_VFP9_FORMAT_LOC "El Reporte [<>] NO está en formato VFP 9! - Por favor convertirlo a VFP 9 con MODIFY REPORT '<>'" #DEFINE C_REQUESTING_CAPITALIZATION_OF_FILE_LOC "- Solicitado capitalizar el archivo [<>]" #DEFINE C_SOURCEFILE_LOC "Archivo origen: " #DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC "Error de anidamiento de estructuras. Se esperaba ENDPROC pero se encontró ENDDEFINE en la clase <> (<>), línea <> del archivo <>" @@ -451,7 +452,7 @@ loCnv = CREATEOBJECT("c_foxbin2prg") loEx = NULL lnResp = loCnv.ejecutar( tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug ; - , '', NULL, @loEx, .F., tcOriginalFileName, tcRecompile, tcNoTimestamps ) + , tcDontShowProgress, NULL, @loEx, .F., tcOriginalFileName, tcRecompile, tcNoTimestamps ) ADDPROPERTY(_SCREEN, 'ExitCode', lnResp) *IF _VFP.STARTMODE <= 1 @@ -668,7 +669,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM SET SEPARATOR TO ',' ON ESCAPE ERROR 1799 SET ESCAPE ON - + lcSys16 = SYS(16) IF LEFT(lcSys16,10) == 'PROCEDURE ' @@ -699,11 +700,12 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERASE ( lcFileCDX ) THIS.writeLog_Flush() - + THIS.descargar_frm_avance() CATCH FINALLY ON ESCAPE + THIS.o_Frm_Avance = NULL THIS.o_FSO = NULL THIS.o_FNC = NULL ENDTRY @@ -715,7 +717,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM PROCEDURE AvanceDelProceso LPARAMETERS tcTexto, tnValor, tnTotal, tnTipo - IF THIS.l_ShowProgress AND PEMSTATUS(THIS, 'o_Frm_Avance', 5) THEN + *IF THIS.l_ShowProgress AND VARTYPE(THIS.o_Frm_Avance) = "O" THEN + *-- Si o_Frm_Avance se habilitó de forma externa, l_ShowProgress podría ser .F. para controlarlo desde fuera. + IF VARTYPE(THIS.o_Frm_Avance) = "O" THEN THIS.o_Frm_Avance.AvanceDelProceso( tcTexto, tnValor, tnTotal, tnTipo ) ENDIF ENDPROC @@ -1183,17 +1187,17 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM tcOutputFile_Ext1 = FORCEEXT(tcOutputFile, lcExt_1) IF FILE( tcOutputFile_Ext1 ) - *-- LOG - DO CASE - CASE EMPTY(lcExt_2) + *-- LOG + DO CASE + CASE EMPTY(lcExt_2) .writeLog( C_BACKUP_OF_LOC + tcOutputFile_Ext1 ) - CASE EMPTY(lcExt_3) + CASE EMPTY(lcExt_3) .writeLog( C_BACKUP_OF_LOC + tcOutputFile_Ext1 + '/' + lcExt_2 ) - OTHERWISE + OTHERWISE .writeLog( C_BACKUP_OF_LOC + tcOutputFile_Ext1 + '/' + lcExt_2 + '/' + lcExt_3 ) - ENDCASE + ENDCASE - *-- COPIA BACKUP + *-- COPIA BACKUP COPY FILE ( tcOutputFile_Ext1 ) TO ( tcBakFile_1 ) IF NOT EMPTY(lcExt_2) @@ -1201,7 +1205,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM IF FILE( tcOutputFile_Ext2 ) COPY FILE ( tcOutputFile_Ext2 ) TO ( tcBakFile_2 ) - ENDIF + ENDIF ENDIF IF NOT EMPTY(lcExt_3) @@ -1209,11 +1213,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM IF FILE( tcOutputFile_Ext3 ) COPY FILE ( tcOutputFile_Ext3 ) TO ( tcBakFile_3 ) + ENDIF + ENDIF ENDIF ENDIF ENDIF - ENDIF - ENDIF ENDWITH && THIS CATCH TO toEx @@ -1236,8 +1240,19 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM PROCEDURE cargar_frm_avance - THIS.o_Frm_Avance = CREATEOBJECT("frm_avance") - THIS.o_Frm_Avance.Show() + IF VARTYPE(THIS.o_Frm_Avance) <> "O" THEN + THIS.o_Frm_Avance = CREATEOBJECT("frm_avance") + THIS.o_Frm_Avance.Show() + ENDIF + ENDPROC + + + PROCEDURE descargar_frm_avance + IF THIS.l_ShowProgress AND VARTYPE(THIS.o_Frm_Avance) = "O" THEN + THIS.o_Frm_Avance.Hide() + THIS.o_Frm_Avance.Release() + THIS.o_Frm_Avance = NULL + ENDIF ENDPROC @@ -1274,7 +1289,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .l_CFG_CachedAccess = (.n_CFG_Actual > 0) ENDIF - *IF NOT .l_ConfigEvaluated lo_CFG = THIS IF .n_CFG_Actual = 0 THEN @@ -1520,7 +1534,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .writeLog( '> n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) ) .writeLog( '> l_OptimizeByFilestamp: ' + TRANSFORM(.l_OptimizeByFilestamp) ) .writeLog( '> l_DropNullCharsFromCode: ' + TRANSFORM(.l_DropNullCharsFromCode) ) - .writeLog( '> l_ClearDBFLastUpdate: ' + TRANSFORM(.l_ClearDBFLastUpdate) ) + .writeLog( '> l_ClearDBFLastUpdate: ' + TRANSFORM(.l_ClearDBFLastUpdate) ) lo_CFG = NULL RELEASE lo_CFG @@ -1573,7 +1587,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * tcStrFileName2 (v! IN ) ***NO IMPLEMENTADO*** Contenido del archivo2 a comparar *--------------------------------------------------------------------------------------------------- LPARAMETERS tcFilename1, tcFilename2, tcStrFileName2 - + LOCAL lnComparacion, lnLen1, lnLen2, lnHandle1, lnHandle2, lnTipoComp, lnChunkSize ; , loEx as Exception @@ -1605,30 +1619,30 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM lnComparacion = 0 && Son distintos EXIT ENDIF - + *-- Comparación de contenido FSEEK( lnHandle1, 0, 0 ) FSEEK( lnHandle2, 0, 0 ) - + DO WHILE NOT ( FEOF(lnHandle1) OR FEOF(lnHandle2) ) IF NOT SYS( 2007, FREAD( lnHandle1, lnChunkSize ), -1, 1 ) == SYS( 2007, FREAD( lnHandle2, lnChunkSize ), -1, 1 ) THEN lnComparacion = 0 && Son distintos EXIT ENDIF ENDDO - + IF lnComparacion = 0 THEN EXIT ENDIF - + lnComparacion = 1 && Son iguales ENDCASE - + CATCH TO loEx lnComparacion = -1 && Error THROW - + FINALLY DO CASE CASE lnTipoComp = 1 @@ -1638,7 +1652,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDCASE ENDTRY - + RETURN lnComparacion ENDFUNC @@ -2069,7 +2083,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- Escribo la información de error en el archivo log de errores TRY - STRTOFILE( lcErrorInfo, EVL(tc_InputFile,'foxbin2prg') + '.ERR' ) + STRTOFILE( STRCONV(lcErrorInfo,9), EVL(tc_InputFile,'foxbin2prg') + '.ERR' ) CATCH TO loEx2 ENDTRY @@ -2089,11 +2103,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM FINALLY USE IN (SELECT("TABLABIN")) THIS.writeLog_Flush() - IF THIS.l_ShowProgress AND VARTYPE(THIS.o_Frm_Avance) = "O" - THIS.o_Frm_Avance.HIDE() - THIS.o_Frm_Avance.RELEASE() - STORE NULL TO THIS.o_Frm_Avance - ENDIF + *THIS.descargar_frm_avance() CD (JUSTPATH(THIS.c_CurDir)) STORE NULL TO loFSO RELEASE tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ; @@ -2372,7 +2382,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .o_Conversor.c_OriginalFileName = .c_OriginalFileName .o_Conversor.c_Foxbin2prg_FullPath = .c_Foxbin2prg_FullPath *-- - .AvanceDelProceso( C_PROCESSING_LOC + ' ' + .c_InputFile + '...', 1, 1, 0 ) + .AvanceDelProceso( C_PROCESSING_LOC + ' ' + .c_InputFile + '...', 0, 0, 0 ) BINDEVENT( .o_Conversor, 'AvanceDelProceso', THIS, 'AvanceDelProceso' ) .o_Conversor.Convertir( @toModulo, .F., THIS ) @@ -2538,41 +2548,41 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDCASE - *-- Normalizar archivo(s) de entrada. El primero siempre se normaliza (??2, ??X, DBF, DBC) + *-- Normalizar archivo(s) de entrada. El primero siempre se normaliza (??2, ??X, DBF, DBC) .RenameFile( tcFileName, lcEXE_CAPS, loFSO, llRelanzarError ) - DO CASE - CASE lcType = 'PJX' + DO CASE + CASE lcType = 'PJX' .RenameFile( FORCEEXT(tcFileName,'PJT'), lcEXE_CAPS, loFSO, llRelanzarError ) - CASE lcType = 'VCX' + CASE lcType = 'VCX' .RenameFile( FORCEEXT(tcFileName,'VCT'), lcEXE_CAPS, loFSO, llRelanzarError ) - CASE lcType = 'SCX' + CASE lcType = 'SCX' .RenameFile( FORCEEXT(tcFileName,'SCT'), lcEXE_CAPS, loFSO, llRelanzarError ) - CASE lcType = 'FRX' + CASE lcType = 'FRX' .RenameFile( FORCEEXT(tcFileName,'FRT'), lcEXE_CAPS, loFSO, llRelanzarError ) - CASE lcType = 'LBX' + CASE lcType = 'LBX' .RenameFile( FORCEEXT(tcFileName,'LBT'), lcEXE_CAPS, loFSO, llRelanzarError ) - CASE lcType = 'DBF' + CASE lcType = 'DBF' IF FILE( FORCEEXT(tcFileName,'FPT') ) .RenameFile( FORCEEXT(tcFileName,'FPT'), lcEXE_CAPS, loFSO, llRelanzarError ) - ENDIF + ENDIF IF FILE( FORCEEXT(tcFileName,'CDX') ) .RenameFile( FORCEEXT(tcFileName,'CDX'), lcEXE_CAPS, loFSO, llRelanzarError ) - ENDIF + ENDIF - CASE lcType = 'DBC' + CASE lcType = 'DBC' .RenameFile( FORCEEXT(tcFileName,'DCX'), lcEXE_CAPS, loFSO, llRelanzarError ) .RenameFile( FORCEEXT(tcFileName,'DCT'), lcEXE_CAPS, loFSO, llRelanzarError ) - CASE lcType = 'MNX' + CASE lcType = 'MNX' .RenameFile( FORCEEXT(tcFileName,'MNT'), lcEXE_CAPS, loFSO, llRelanzarError ) - ENDCASE + ENDCASE ENDWITH && THIS @@ -2608,7 +2618,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM LPARAMETERS tcFileName LOCAL lcTmpFile, loFSO AS Scripting.FileSystemObject, loEx as Exception - + TRY *loFSO = THIS.o_FSO lcTmpFile = tcFileName + '.TMP' @@ -2659,7 +2669,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ******************************************************************************************************************* PROCEDURE writeLog_Flush IF THIS.l_Debug AND NOT EMPTY(THIS.c_TextLog) - STRTOFILE( THIS.c_TextLog + CR_LF, THIS.c_LogFile, 1 ) + STRTOFILE( STRCONV(THIS.c_TextLog + CR_LF,9), THIS.c_LogFile, 1 ) THIS.c_TextLog = '' ENDIF ENDPROC @@ -2702,7 +2712,7 @@ DEFINE CLASS frm_avance AS FORM DoCreate = .T. AutoCenter = .T. BorderStyle = 2 - CAPTION = C_PROCESS_PROGRESS_LOC + ' ' + CAPTION = C_PROCESS_PROGRESS_LOC + ' (Press Esc to Cancel)' ControlBox = .F. BackColor = RGB(255,255,255) nmax_value = 100 @@ -2785,23 +2795,38 @@ DEFINE CLASS frm_avance AS FORM PROCEDURE AvanceDelProceso LPARAMETERS tcTexto, tnValor, tnTotal, tnTipo - + WITH THIS AS frm_avance OF foxbin2prg.prg DO CASE CASE tnTipo = 0 - .lbl_tarea.Caption = tcTexto - .nMax_Value = tnTotal - .nValue = tnValor + IF NOT EMPTY(tcTexto) THEN + .lbl_tarea.Caption = tcTexto + ENDIF + + IF tnTotal > 0 THEN + .nmax_value = tnTotal + .nvalue = tnValor + ENDIF CASE tnTipo = 1 - .lbl_tarea2.Caption = tcTexto - .nMax_Value2 = tnTotal - .nValue2 = tnValor + IF NOT EMPTY(tcTexto) THEN + .lbl_tarea2.Caption = tcTexto + ENDIF + + IF tnTotal > 0 THEN + .nmax_value2 = tnTotal + .nvalue2 = tnValor + ENDIF CASE tnTipo = 2 - .lbl_tarea2.Caption = tcTexto - .nMax_Value2 = tnTotal - .nValue2 = tnValor + IF NOT EMPTY(tcTexto) THEN + .lbl_tarea2.Caption = tcTexto + ENDIF + + IF tnTotal > 0 THEN + .nmax_value2 = tnTotal + .nvalue2 = tnValor + ENDIF ENDCASE ENDWITH && THIS @@ -2814,15 +2839,15 @@ DEFINE CLASS frm_avance AS FORM LPARAMETERS vNewVal WITH THIS - .nValue = m.vNewVal - .shp_avance.WIDTH = m.vNewVal * .shp_base.WIDTH / .nMax_Value + .nvalue = m.vNewVal + .shp_avance.WIDTH = m.vNewVal * .shp_base.WIDTH / .nmax_value ENDWITH ENDPROC PROCEDURE Init - THIS.nValue = 0 - THIS.nValue2 = 0 + THIS.nvalue = 0 + THIS.nvalue2 = 0 ENDPROC @@ -2830,8 +2855,8 @@ DEFINE CLASS frm_avance AS FORM LPARAMETERS vNewVal WITH THIS - .nValue2 = m.vNewVal - .shp_avance2.WIDTH = m.vNewVal * .shp_base2.WIDTH / .nMax_Value2 + .nvalue2 = m.vNewVal + .shp_avance2.WIDTH = m.vNewVal * .shp_base2.WIDTH / .nmax_value2 ENDWITH ENDPROC @@ -2937,6 +2962,8 @@ DEFINE CLASS c_conversor_base AS SESSION SET TABLEPROMPT OFF SET BLOCKSIZE TO 0 SET EXACT ON + *ON ESCAPE ERROR 1799 + SET ESCAPE ON PUBLIC C_FB2PRG_CODE C_FB2PRG_CODE = '' && Contendrá todo el código generado @@ -6448,7 +6475,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base llEXTERNAL_CLASS_Completed = .T. *CASE .analizarBloque_DEFINE_CLASS( @toModulo, @loClase, @lcLine, @taCodeLines, @I, tnCodeLines ; - , @lcProcedureAbierto, @taLineasExclusion, @tnBloquesExclusion, @lc_Comentario ) + , @lcProcedureAbierto, @taLineasExclusion, @tnBloquesExclusion, @lc_Comentario ) *-- Puede haber varias clases definidas * llEXTERNAL_CLASS_Completed = .T. @@ -9173,12 +9200,12 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base PROCEDURE Classify_PAM_Hidden_Protected *--------------------------------------------------------------------------------------------------- * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT) - * tnPropsAndValues_Count (@! IN ) - * taPropsAndValues (@! IN ) - * tnProtected_Count (@! IN ) - * taProtected (@! IN ) - * tnPropsAndComments_Count (@! IN ) - * taPropsAndComments (@! IN ) + * tnPropsAndValues_Count (@! IN ) + * taPropsAndValues (@! IN ) + * tnProtected_Count (@! IN ) + * taProtected (@! IN ) + * tnPropsAndComments_Count (@! IN ) + * taPropsAndComments (@! IN ) * tcHiddenProp (@! OUT) Lista de propiedades Hidden * tcProtectedProp (@! OUT) Lista de propiedades Protected *--------------------------------------------------------------------------------------------------- @@ -9196,7 +9223,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base DO CASE CASE EMPTY( taProtected(I) ) LOOP - + CASE RIGHT( taProtected(I), 1 ) == '^' *-- Hidden Property or method lcProp = CHRTRAN( taProtected(I), '^', '' ) @@ -9369,7 +9396,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base WHERE TABLABIN.PLATFORM = "COMMENT" AND TABLABIN.RESERVED2 == "OLEPublic" ; ORDER BY 1 ; INTO ARRAY ta_NombresObjsOle - + FOR I = 1 TO _TALLY ta_NombresObjsOle(I) = ALLTRIM( ta_NombresObjsOle(I) ) ENDFOR @@ -10215,12 +10242,12 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base IF tnPropsAndComments_Count > 0 THEN lnComment = ASCAN( taPropsAndComments, taPropsAndValues(I,1), 1, 0, 1, 1+2+4+8) - IF lnComment > 0 AND NOT EMPTY(taPropsAndComments(lnComment,2)) - *TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - * <<>> && <> - *ENDTEXT - tcCodigo = tcCodigo + CHR(9) + CHR(9) + '&' + '& ' + taPropsAndComments(lnComment,2) - ENDIF + IF lnComment > 0 AND NOT EMPTY(taPropsAndComments(lnComment,2)) + *TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + * <<>> && <> + *ENDTEXT + tcCodigo = tcCodigo + CHR(9) + CHR(9) + '&' + '& ' + taPropsAndComments(lnComment,2) + ENDIF ENDIF ENDFOR @@ -10906,7 +10933,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *-- COMO CONSECUENCIA, LOS FORMS O CLASES CON OBJETOS OLE DARÁN DIFERENCIA POR ÚNICA VEZ EN LA CABECERA. - fdbozzo. 29/11/2014 (v1.19.37) * *SELECT COUNT(*) FROM TABLABIN WHERE TABLABIN.PLATFORM = "WINDOWS" AND BASECLASS == 'olecontrol' INTO ARRAY laOLE - + *IF laOLE(1) > 0 THEN * *-- Lo del <<>> para crear una línea vacía es solamente por compatibilidad con lo antiguo, * *-- donde se creaba esta línea cuando el form o clase tenía al menos un objeto OLE. @@ -10916,9 +10943,9 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base * ENDTEXT *ELSE - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 * - ENDTEXT + ENDTEXT *ENDIF *!* CATCH TO loEx @@ -11064,9 +11091,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen, lnObjCount ; , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) ; , laObjs(1,3), I, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count, lcCodigo, laClasses(1,2) ; - , lnClassCount, lcOutputFile, lcExternalHeader, lnClassTotal + , lnClassCount, lcOutputFile, lcExternalHeader, lnClassTotal, lnStepCount, lnStep STORE 0 TO lnCodError, lnLastClass, lnObjCount, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count ; - , lnMethodCount, lnClassCount + , lnMethodCount, lnClassCount, lnStepCount, lnStep STORE '' TO laMethods, laCode, laProtected, laPropsAndComments, laObjs, lcCodigo, laClasses, lcOutputFile ; , C_FB2PRG_CODE, lcExternalHeader STORE NULL TO loRegClass, loRegObj @@ -11075,6 +11102,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN .n_Avance_Maximo = _TALLY + lnStepCount = 7 USE IN (SELECT("_TABLAORIG")) INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE @@ -11131,7 +11159,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg lcObjName = ALLTRIM( loRegClass.OBJNAME ) laClasses(lnClassCount,1) = LOWER( lcObjName ) - .AvanceDelProceso( 'Processing Class ' + lcObjName + '...', lnClassCount, lnClassTotal, 1 ) + + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + '...', lnStep, lnClassTotal*lnStepCount, 1 ) .write_DEFINE_CLASS( @la_NombresObjsOle, @loRegClass, @lcCodigo ) @@ -11192,17 +11222,26 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg .write_INCLUDE( @loRegClass, @lcCodigo ) + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Writing Properties...', lnStep, lnClassTotal*lnStepCount, 1 ) + .write_CLASS_PROPERTIES( @loRegClass, @laPropsAndValues, @laPropsAndComments, @laProtected ; , @lnPropsAndValues_Count, @lnPropsAndComments_Count, @lnProtected_Count, @lcCodigo ) ASORT(laObjs, 3, -1, 0, 0) && Orden Alfabético (del SCAN original) + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Writing Obtects with Properties...', lnStep, lnClassTotal*lnStepCount, 1 ) + FOR I = 1 TO lnObjCount .write_ADD_OBJECTS_WithProperties( laObjs(I,1), @lcCodigo ) ENDFOR *-- OBTENGO LOS MÉTODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Getting Methods...', lnStep, lnClassTotal*lnStepCount, 1 ) + DIMENSION laMethods(1,3), laCode(1) STORE '' TO laMethods, laCode lnMethodCount = 0 @@ -11216,6 +11255,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg lcMethods = '' *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA OBTENER SUS MÉTODOS + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Getting Objects Methods...', lnStep, lnClassTotal*lnStepCount, 1 ) + lnRecno = RECNO() LOCATE FOR UPPER( TABLABIN.PLATFORM ) = "WINDOWS" AND LOWER( ALLTRIM( GETWORDNUM( TABLABIN.PARENT, 1, '.' ) ) ) == LOWER(lcObjName) @@ -11244,6 +11286,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg , @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg ) ENDSCAN + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Writing Objects Methods...', lnStep, lnClassTotal*lnStepCount, 1 ) + .write_ALL_OBJECT_METHODS( @lcMethods, @laMethods, @laCode, @lnMethodCount, @laPropsAndComments, lnPropsAndComments_Count, @laProtected ; , lnProtected_Count, @toFoxBin2Prg, @lcCodigo ) @@ -11257,7 +11302,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg ENDIF *-- Genero el VC2 - .AvanceDelProceso( 'Writing VC2...', 2, 2, 1 ) + lnStep = lnStep + 1 + .AvanceDelProceso( 'Writing VC2...', lnStep, lnClassTotal*lnStepCount, 1 ) + lcOutputFile = .c_OutputFile lcCodigo = toFoxBin2Prg.get_PROGRAM_HEADER() + lcExternalHeader + C_FB2PRG_CODE @@ -11281,7 +11328,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg ENDFOR .write_OutputFile( @lcCodigo, lcOutputFile, @toFoxBin2Prg ) - ENDIF + ENDIF ENDIF ENDWITH && THIS @@ -11335,9 +11382,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen, lnObjCount ; , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) ; , laObjs(1,3), I, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count, lcCodigo, laClasses(1,2) ; - , lnClassCount, lcOutputFile, lcExternalHeader, lnClassTotal + , lnClassCount, lcOutputFile, lcExternalHeader, lnClassTotal, lnStepCount, lnStep STORE 0 TO lnCodError, lnLastClass, lnObjCount, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count ; - , lnMethodCount, lnClassCount + , lnMethodCount, lnClassCount, lnStepCount, lnStep STORE '' TO laMethods, laCode, laProtected, laPropsAndComments, laObjs, lcCodigo, laClasses, lcOutputFile ; , C_FB2PRG_CODE, lcExternalHeader STORE NULL TO loRegClass, loRegObj @@ -11386,8 +11433,8 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg COUNT ALL FOR TABLABIN.PLATFORM = "WINDOWS" ; - AND ( EMPTY( TABLABIN.PARENT ) ; - AND INLIST( LOWER( TABLABIN.BASECLASS ), 'dataenvironment', 'form', 'formset' ) ) TO lnClassTotal + AND ( EMPTY( TABLABIN.PARENT ) ; + AND INLIST( LOWER( TABLABIN.BASECLASS ), 'dataenvironment', 'form', 'formset' ) ) TO lnClassTotal SCAN ALL FOR TABLABIN.PLATFORM = "WINDOWS" ; AND ( EMPTY( TABLABIN.PARENT ) ; @@ -11418,7 +11465,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg lcObjName = ALLTRIM(loRegClass.OBJNAME) laClasses(lnClassCount,1) = LOWER( lcObjName ) - .AvanceDelProceso( 'Processing Class ' + lcObjName + '...', lnClassCount, lnClassTotal, 1 ) + + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + '...', lnStep, lnClassTotal*lnStepCount, 1 ) .write_DEFINE_CLASS( @la_NombresObjsOle, @loRegClass, @lcCodigo ) @@ -11479,18 +11528,26 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg .write_INCLUDE( @loRegClass, @lcCodigo ) + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Writing Properties...', lnStep, lnClassTotal*lnStepCount, 1 ) + .write_CLASS_PROPERTIES( @loRegClass, @laPropsAndValues, @laPropsAndComments, @laProtected ; , @lnPropsAndValues_Count, @lnPropsAndComments_Count, @lnProtected_Count, @lcCodigo ) - ASORT(laObjs, 3, -1, 0, 0) && Orden Alfabético de objetos (del SCAN original) + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Writing Obtects with Properties...', lnStep, lnClassTotal*lnStepCount, 1 ) + FOR I = 1 TO lnObjCount .write_ADD_OBJECTS_WithProperties( laObjs(I,1), @lcCodigo ) ENDFOR *-- OBTENGO LOS MÉTODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Getting Methods...', lnStep, lnClassTotal*lnStepCount, 1 ) + DIMENSION laMethods(1,3), laCode(1) STORE '' TO laMethods, laCode lnMethodCount = 0 @@ -11504,6 +11561,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg lcMethods = '' *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA OBTENER SUS MÉTODOS + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Getting Objects Methods...', lnStep, lnClassTotal*lnStepCount, 1 ) + lnRecno = RECNO() LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND LOWER( ALLTRIM( GETWORDNUM( TABLABIN.PARENT, 1, '.' ) ) ) == LOWER(lcObjName) @@ -11534,6 +11594,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg , @laPropsAndComments, lnPropsAndComments_Count, @laProtected, lnProtected_Count, @toFoxBin2Prg ) ENDSCAN + lnStep = lnStep + 1 + .AvanceDelProceso( 'Processing Class ' + lcObjName + ' > Writing Objects Methods...', lnStep, lnClassTotal*lnStepCount, 1 ) + .write_ALL_OBJECT_METHODS( @lcMethods, @laMethods, @laCode, @lnMethodCount, @laPropsAndComments, lnPropsAndComments_Count, @laProtected ; , lnProtected_Count, @toFoxBin2Prg, @lcCodigo ) @@ -11547,7 +11610,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg ENDIF *-- Genero el SC2 - .AvanceDelProceso( 'Writing SC2...', 2, 2, 1 ) + lnStep = lnStep + 1 + .AvanceDelProceso( 'Writing SC2...', lnStep, lnClassTotal*lnStepCount, 1 ) + lcOutputFile = .c_OutputFile lcCodigo = toFoxBin2Prg.get_PROGRAM_HEADER() + lcExternalHeader + C_FB2PRG_CODE @@ -11571,7 +11636,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg ENDFOR .write_OutputFile( @lcCodigo, lcOutputFile, @toFoxBin2Prg ) - ENDIF + ENDIF ENDIF ENDWITH && THIS @@ -12349,10 +12414,17 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_pjm_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG + THIS.AvanceDelProceso( 'Scanning FRX...', 1, 2, 1 ) + + *-- Verificación de REPORTE VFP 9 + IF FCOUNT() < 75 OR EMPTY(FIELD("USER")) + *ERROR 'Report [' + (.c_InputFile) + '] is NOT VFP 9 Format! - Please convert to VFP 9 with MODIFY REPORT ' + JUSTFNAME((.c_InputFile)) + ERROR (TEXTMERGE(C_REPORT_NOT_IN_VFP9_FORMAT_LOC)) + ENDIF + SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN_0 .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) - THIS.AvanceDelProceso( 'Scanning FRX...', 1, 2, 1 ) *-- Header LOCATE FOR ObjType = 1 @@ -12509,7 +12581,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_dbf_a_prg OF 'FOXBIN2PRG.PRG' *-- EVALUAR OPCIONES ESPECÍFICAS DE DBF - .AvanceDelProceso( 'Scanning DBF Structure...', 1, 2, 1 ) + .AvanceDelProceso( 'Scanning DBF Structure...', 1, 3, 1 ) *-- Include IF NOT EMPTY(toFoxBin2Prg.DBF_Conversion_Included) AND NOT toFoxBin2Prg.DBF_Conversion_Included == '*' ; @@ -12536,23 +12608,23 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg *-- Header loTable = CREATEOBJECT('CL_DBF_TABLE') - + IF toFoxBin2Prg.DBF_Conversion_Support = 4 *-- Exportación de estructura y datos (para Diff solamente) ERASE (.c_OutputFile + '.TMP' ) toFoxBin2Prg.n_FileHandle = FCREATE( .c_OutputFile + '.TMP' ) - + IF toFoxBin2Prg.n_FileHandle = -1 THEN ERROR 102, (.c_OutputFile) ENDIF - + FWRITE( toFoxBin2Prg.n_FileHandle, C_FB2PRG_CODE ) loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg ) FCLOSE( toFoxBin2Prg.n_FileHandle ) - + *-- Genero el DB2, renombrando el TMP - .AvanceDelProceso( 'Writing DB2...', 2, 2, 1 ) + .AvanceDelProceso( 'Writing DB2...', 3, 3, 1 ) IF .l_Test toModulo = C_FB2PRG_CODE ELSE @@ -12574,7 +12646,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg *-- Genero el DB2 - .AvanceDelProceso( 'Writing DB2...', 2, 2, 1 ) + .AvanceDelProceso( 'Writing DB2...', 3, 3, 1 ) IF .l_Test toModulo = C_FB2PRG_CODE ELSE @@ -12745,7 +12817,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) - .AvanceDelProceso( 'Analyzing MNX...', 2, 2, 1 ) + .AvanceDelProceso( 'Analyzing MNX...', 1, 2, 1 ) *-- Verificación de menú VFP 9 IF FCOUNT() < 25 OR EMPTY(FIELD("RESNAME")) OR EMPTY(FIELD("SYSRES")) @@ -18001,10 +18073,11 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE #ENDIF TRY - LOCAL lcText, loEx AS EXCEPTION, I ; + LOCAL lcText, loEx AS EXCEPTION, I, lnReccount ; , loRecord AS CL_DBF_RECORD OF 'FOXBIN2PRG.PRG' - lcText = '' - I = 0 + lcText = '' + I = 0 + lnReccount = RECCOUNT() && Realmente no es muy exacto, pero al menos muestra el avance. TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <<>> @@ -18023,11 +18096,15 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE I = I + 1 lcText = loRecord.toText(@taFields, tnField_Count) FWRITE( toFoxBin2Prg.n_FileHandle, lcText ) - IF MOD(I,10000) = 0 THEN - FFLUSH( toFoxBin2Prg.n_FileHandle, .T. ) + IF MOD(I,1000) = 0 THEN + toFoxBin2Prg.AvanceDelProceso( 'Exporting DBF Data...', 1+(I/lnReccount), 3, 2 ) + + IF MOD(I,10000) = 0 THEN + FFLUSH( toFoxBin2Prg.n_FileHandle, .T. ) + ENDIF ENDIF ENDSCAN - + lcText = '' TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -20615,7 +20692,7 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION , loField AS CL_DBF_UTILS_FIELD OF 'FOXBIN2PRG.PRG' STORE NULL TO loField tn_HexFileType = 0 - tcDBC_Name = '' + STORE '' TO tcDBC_Name, lcStr lnHandle = FOPEN(tc_FileName,0) IF lnHandle = -1 @@ -20696,6 +20773,10 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION ENDWITH CATCH TO loEx + loEx.UserValue = loEx.UserValue + 'lcStr = [' + TRANSFORM(lcStr) + '] / LenStr = ' + TRANSFORM(LEN(TRANSFORM(lcStr))) + CR_LF + IF loEx.ErrorNo = 11 THEN && + loEx.UserValue = loEx.UserValue + '> POSSIBLE CORRUPTED TABLE' + CR_LF + ENDIF IF THIS.l_Debug AND _VFP.STARTMODE = 0 SET STEP ON ENDIF diff --git a/foxbin2prg_de.h b/foxbin2prg_de.h index ce53faf..e2d9e06 100644 --- a/foxbin2prg_de.h +++ b/foxbin2prg_de.h @@ -31,7 +31,7 @@ #DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "FOXBIN2PRG ist nur für Visual FoxPro 9.0!" #DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC "FOXBIN2PRG: WARNUNG!" #DEFINE C_LANGUAGE_LOC "DE" -#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY MENU <>" +#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY MENU '<>'" #DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC "* Programm für Großschreibungssetzung [<>] gefunden" #DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC "* Programm für Großschreibungssetzung [<>] nicht gefunden" #DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Objekt [<>] enthält nicht oReg Objekt (level <>)" @@ -42,6 +42,7 @@ #DEFINE C_PROCESSING_LOC "Bearbeite Datei" #DEFINE C_PROCESS_PROGRESS_LOC "Bearbeitungsfortschritt:" #DEFINE C_PROPERTY_NAME_NOT_RECOGNIZED_LOC "Eigenschaft [<>] nicht erkannt." +#DEFINE C_REPORT_NOT_IN_VFP9_FORMAT_LOC "Report [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY REPORT '<>'" #DEFINE C_REQUESTING_CAPITALIZATION_OF_FILE_LOC "- Forder Großschreibung für Datei [<>] an" #DEFINE C_SOURCEFILE_LOC "Source Datei: " #DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC "Fehler in Verschachtelungsstruktur. ENDPROC erwartet, aber es wurde ENDDEFINE in Klasse <> (<>), Zeile <> der Datei <> gefunden" diff --git a/foxbin2prg_en.h b/foxbin2prg_en.h index b811b7b..bac361d 100644 --- a/foxbin2prg_en.h +++ b/foxbin2prg_en.h @@ -31,7 +31,7 @@ #DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "FOXBIN2PRG is only for Visual FoxPro 9.0!" #DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC "FOXBIN2PRG: WARNING!" #DEFINE C_LANGUAGE_LOC "EN" -#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<>] is NOT in VFP 9 Format! - Please convert to VFP 9 with MODIFY MENU <>" +#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<>] is NOT in VFP 9 Format! - Please convert to VFP 9 with MODIFY MENU '<>'" #DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC "* Names capitalization program [<>] found" #DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC "* Names capitalization program [<>] not found" #DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Object [<>] does not contain oReg object (level <>)" @@ -42,6 +42,7 @@ #DEFINE C_PROCESSING_LOC "Processing file" #DEFINE C_PROCESS_PROGRESS_LOC "Process Progress:" #DEFINE C_PROPERTY_NAME_NOT_RECOGNIZED_LOC "Property [<>] is not recognized." +#DEFINE C_REPORT_NOT_IN_VFP9_FORMAT_LOC "Report [<>] is NOT in VFP 9 Format! - Please convert to VFP 9 with MODIFY REPORT '<>'" #DEFINE C_REQUESTING_CAPITALIZATION_OF_FILE_LOC "- Requesting capitalization of file [<>]" #DEFINE C_SOURCEFILE_LOC "Source file: " #DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC "Nesting structure error. ENDPROC expected but found ENDDEFINE on class <> (<>), line <> of file <>" From b93fbe67f1e550d088efbf20b75e4d0de50cad20 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sun, 30 Nov 2014 16:59:58 +0100 Subject: [PATCH 09/11] =?UTF-8?q?Changeset:=20531=20fdbozzo=20-=2030/11/20?= =?UTF-8?q?14=2016:32:36:=20-=20Actualizaci=C3=B3n=20del=20log=20interno?= =?UTF-8?q?=20de=20cambios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index c3e9ea5..7a2ae35 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -111,7 +111,12 @@ * 19/11/2014 FDBOZZO v1.19.37 Arreglo bug: "String is too long to fit" cuando se procesa un DBF grande con DBF_Conversion_Support = 4 (edyshor) * 19/11/2014 FDBOZZO v1.19.37 Mejora dbf: Nuevo parámetro ClearDBFLastUpdate para evitar diferencias por este dato (edyshor) * 21/10/2014 FDBOZZO v1.19.37 Mejora: Permitir generar una clase por archivo (Ryan Harris/Lutz Scheffler) -* 30/10/2014 FDBOZZO v1.19.37 Mejora: Optimizaciones +* 29/11/2014 FDBOZZO v1.19.37 Arreglo bug scx/vcx: Algunas propiedades a veces tomaban la descripción de otras propiedades similares +* 29/11/2014 FDBOZZO v1.19.37 Arreglo bug scx/vcx: Las propiedades "Protected" y "Hidden" no siempre estaban ordenadas alfabéticamente +* 30/10/2014 FDBOZZO v1.19.37 Mejora: Optimizaciones en velocidad de proceso para scx/vcx/dbf +* 30/11/2014 FDBOZZO v1.19.37 Mejora: Indicador de avance de proceso más informativo +* 30/11/2014 FDBOZZO v1.19.37 Mejora: Se puede cancelar el proceso con la tecla Esc +* 30/11/2014 FDBOZZO v1.19.37 Mejora: Agregado control para detectar reportes no compatibles con VFP 9 * * *--------------------------------------------------------------------------------------------------- From edc7bb67352e9b5c2fe5e76269df7872d8f46cf4 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sun, 30 Nov 2014 17:13:18 +0100 Subject: [PATCH 10/11] =?UTF-8?q?Changeset:=20532=20fdbozzo=20-=2030/11/20?= =?UTF-8?q?14=2017:02:06:=20-=20Limpieza=20de=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 52 ++++++-------------------------------------------- 1 file changed, 6 insertions(+), 46 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 7a2ae35..6ccbab0 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -722,7 +722,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM PROCEDURE AvanceDelProceso LPARAMETERS tcTexto, tnValor, tnTotal, tnTipo - *IF THIS.l_ShowProgress AND VARTYPE(THIS.o_Frm_Avance) = "O" THEN *-- Si o_Frm_Avance se habilitó de forma externa, l_ShowProgress podría ser .F. para controlarlo desde fuera. IF VARTYPE(THIS.o_Frm_Avance) = "O" THEN THIS.o_Frm_Avance.AvanceDelProceso( tcTexto, tnValor, tnTotal, tnTipo ) @@ -1868,20 +1867,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM lnFileCount = ADIR( laFiles, lcFileSpec, '', 1 ) - *IF .l_ShowProgress - * .o_Frm_Avance.nMAX_VALUE = lnFileCount - *ENDIF - FOR I = 1 TO lnFileCount lcFile = FORCEPATH( laFiles(I,1), JUSTPATH( lcFileSpec ) ) - *.o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' - *.o_Frm_Avance.nVALUE = I .AvanceDelProceso( C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - *IF .l_ShowProgress - * .o_Frm_Avance.SHOW() - *ENDIF - IF FILE( lcFile ) lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) ENDIF @@ -1957,26 +1946,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM 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 + '...' - *.o_Frm_Avance.nVALUE = I .AvanceDelProceso( C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - *IF .l_ShowProgress - * .o_Frm_Avance.SHOW() - *ENDIF - IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) ENDIF @@ -2014,26 +1988,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM 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 .AvanceDelProceso( C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - *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 @@ -2967,8 +2926,9 @@ DEFINE CLASS c_conversor_base AS SESSION SET TABLEPROMPT OFF SET BLOCKSIZE TO 0 SET EXACT ON - *ON ESCAPE ERROR 1799 - SET ESCAPE ON + IF NOT EMPTY( ON("ESCAPE") ) THEN + SET ESCAPE ON + ENDIF PUBLIC C_FB2PRG_CODE C_FB2PRG_CODE = '' && Contendrá todo el código generado @@ -5336,7 +5296,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base IF loObjeto._WriteOrder = 0 AND LOWER(loObjeto._Nombre) == LOWER(lcObjName) N = N + 1 loObjeto._WriteOrder = N - .insert_Object( toClase, loObjeto, toFoxBin2Prg ) + .insert_Object( @toClase, @loObjeto, @toFoxBin2Prg ) EXIT ENDIF ENDFOR @@ -5346,7 +5306,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 - .insert_Object( toClase, loObjeto, toFoxBin2Prg ) + .insert_Object( @toClase, @loObjeto, @toFoxBin2Prg ) ENDIF ENDFOR @@ -20779,7 +20739,7 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION CATCH TO loEx loEx.UserValue = loEx.UserValue + 'lcStr = [' + TRANSFORM(lcStr) + '] / LenStr = ' + TRANSFORM(LEN(TRANSFORM(lcStr))) + CR_LF - IF loEx.ErrorNo = 11 THEN && + IF loEx.ErrorNo = 11 THEN && Function argument value, type, or count is invalid loEx.UserValue = loEx.UserValue + '> POSSIBLE CORRUPTED TABLE' + CR_LF ENDIF IF THIS.l_Debug AND _VFP.STARTMODE = 0 From 111097fbc7d0e670978bb0d10f5c389e285541d4 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sun, 30 Nov 2014 17:18:34 +0100 Subject: [PATCH 11/11] =?UTF-8?q?Changeset:=20533=20fdbozzo=20-=2030/11/20?= =?UTF-8?q?14=2017:17:04:=20-=20Limpieza=20de=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 6ccbab0..5922edd 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -2877,8 +2877,6 @@ DEFINE CLASS c_conversor_base AS SESSION + [] ; + [] ; + [] ; - + [] ; - + [] ; + [] ; + [] @@ -2911,8 +2909,6 @@ DEFINE CLASS c_conversor_base AS SESSION c_OriginalFileName = '' c_ClaseActual = '' oFSO = NULL - n_Avance_Proceso = 0 - n_Avance_Maximo = 0 ******************************************************************************************************************* @@ -6590,7 +6586,6 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin ENDIF lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - .n_Avance_Maximo = lnCodeLines *-- Identifico los TEXT/ENDTEXT, #IF .F./#ENDIF .AvanceDelProceso( 'Identifying Excluded Blocks...', 3, lnCodeLines, 1 ) @@ -6928,7 +6923,6 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin ENDIF lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - .n_Avance_Maximo = lnCodeLines *-- Identifico los TEXT/ENDTEXT, #IF .F./#ENDIF .AvanceDelProceso( 'Identifying Excluded Blocks...', 3, lnCodeLines, 1 ) @@ -7244,7 +7238,6 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -8043,7 +8036,6 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -8475,7 +8467,6 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin WITH THIS AS c_conversor_prg_a_dbf OF 'FOXBIN2PRG.PRG' C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -8772,7 +8763,6 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin WITH THIS AS c_conversor_prg_a_dbc OF 'FOXBIN2PRG.PRG' C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -8953,7 +8943,6 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin WITH THIS AS c_conversor_prg_a_mnx OF 'FOXBIN2PRG.PRG' C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - .n_Avance_Maximo = lnCodeLines toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -11066,7 +11055,6 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_vcx_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN - .n_Avance_Maximo = _TALLY lnStepCount = 7 USE IN (SELECT("_TABLAORIG")) @@ -11357,7 +11345,6 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_scx_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN - .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE @@ -11661,7 +11648,6 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN - .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) loServerHead = CREATEOBJECT('CL_PROJ_SRV_HEAD') @@ -12388,7 +12374,6 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg ENDIF SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN_0 - .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) *-- Header @@ -12780,7 +12765,6 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg WITH THIS AS c_conversor_mnx_a_prg OF 'FOXBIN2PRG.PRG' USE (.c_InputFile) SHARED AGAIN NOUPDATE ALIAS _TABLAORIG SELECT * FROM _TABLAORIG INTO CURSOR TABLABIN - .n_Avance_Maximo = _TALLY USE IN (SELECT("_TABLAORIG")) .AvanceDelProceso( 'Analyzing MNX...', 1, 2, 1 )