From 8d7b02409e0d63b7b56a09db5192abad34e738df Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Wed, 19 Nov 2014 19:11:36 +0100 Subject: [PATCH 1/9] =?UTF-8?q?Changeset:=20492=20fdbozzo=20-=2016/11/2014?= =?UTF-8?q?=2019:30:16:=20-=20Actualizaci=C3=B3n=20versi=C3=B3n=20proyecto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.pj2 | 2 +- foxbin2prg.pjt | Bin 614249 -> 624170 bytes foxbin2prg.pjx | Bin 9123 -> 9123 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index f4405c7..dff68b5 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): _ProductName = "FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = "36" +_Revision = "37" _LanguageID = "1034" _AutoIncrement = "0" * diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index ce434fb488b951a50111fe2b0495c693a3f36e0c..e3cbbe58f1357580ca4915492e0eebfd2a25c487 100644 GIT binary patch delta 51129 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 delta 42575 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 c1?eo2=>{P2+iTb9S7Q{Y7^WXpe36eUqTL1t6 diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 2b168750f9bb8b879789afc3f48d7e0f92718616..677609bd4726b234110110f0f52318cfe27920d2 100644 GIT binary patch delta 1251 zcmYk6YlsbD7{{NPGka#)ox`5pwP&5(ov}K*i)1eEJ7>xi*m^p?>W29yi-&2d;kA==9&L9@0@Ns-KN=z zvcx6rnx?bB%i7$=9c_n}br?skG=-%lt0uC*wQbI5=xFVztMmMqddKM3=;D-Bo~@78Q5wDV{TOd70V38Rful^Im&tSBqb(XB^r7dTF#mCl-|73CfJYNVUvXijxUUs*HG2`uI~ z4-;x7T!)JSv$ktv)ab3HJ`0>M@NAr{OBs)56ZHq;+jU(Qh>%RYN@t*?t2O2YUf!Y) zj3>%f#1N*tV$2P3qOMjy(?YcKi;A1+uE@Bnlj!{m6;tb$#aS5IcHt56>u-t78Msxq zLi7IDTq|bt)K@X1e!0d2Kgbs~W{)QNDo(LE#4fy4W1`>8z-Xw7Ea&DB-L_P+yujz! zpbuJl8>(YGbTFpAHu3EZQQv1pIG8UiIddi|OsT@_1w`AP3Ej$y{&trQR)A#DU(F|a ze2?(JjGEKiJBZrO5;`pL#tVw<)39*r@-)DHDozOxSI%vs`VteN9x}?BtntmEuO|!ui4|m-}>FKHrdbc%$L?LuT ze93IrxbOIh!BB|T(TgIh0Zb)hr|784ulev=m z8X0-rS|H*{rZbGw0%y`uE<(?j@F31gsP;2N=Ilwi)w>M6f;sc-L^Jg*Lw-S8H*OqG zWzEB6)+-8f@Scv%wm6eDU zOY`^OnvCZVFOk&S7?98yoq02yfU)E#t)=NvlnD%#N{1s@80}8KWp%hEFqPv*)XtUg z0PYA3EiXVx+0kt7hRkyvhU?`~yh}D`-;BoBNr#yZ0iZwqJ zdlr9~dvRRMkuN?-F|F{l#OpC9F8Ao)MD#0P5nrrtSvZ+9)dR9ezqEnq*ct`T} From 32dd640de23bb644ebc8a12d33bbb617113f18ae Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Wed, 19 Nov 2014 21:33:22 +0100 Subject: [PATCH 2/9] Changeset: 493 fdbozzo - 19/11/2014 19:13:33: - Arreglo "Error 1903, String is too long to fit." --- foxbin2prg.prg | 108 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 86 insertions(+), 22 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 1e10043..5000c69 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -107,6 +107,7 @@ * 19/09/2014 FDBOZZO v1.19.34 Arreglo bug: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error al intentar capitalizar el archivo de entrada (Jim Nelson) * 26/09/2014 FDBOZZO v1.19.35 Mejora: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Marcio Gomez G.) * 08/10/2014 FDBOZZO v1.19.36 Arreglo bug: Al generar el mn2 el identificador queda vacío (bug introducido en v1.19.35) +* 19/11/2014 FDBOZZO v1.19.37 Arreglo bug: String is too long to fit (edyshor) * * *--------------------------------------------------------------------------------------------------- @@ -153,6 +154,7 @@ * 28/08/2014 Peter Hipp REPORTE BUG mnx v1.19.32: Si una opción tiene asociado un Procedure de 1 línea, no se mantiene como Procedure y se convierte a Command (solucionado en v1.19.33) * 19/09/2014 Jim Nelson REPORTE BUG v1.19.33: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error (solucionado en v1.19.34) * 26/09/2014 Marcio Gomez G. MEJORA v1.19.34: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Agregado en v1.19.35) +* 19/11/2014 edyshor REPORTE BUG dbf v1.19.36: * * *--------------------------------------------------------------------------------------------------- @@ -530,6 +532,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -598,6 +601,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM n_ClassTimeStamp = 1130668032 && 2013/11/04 20:00:00 n_CFG_Actual = 0 n_ID = 0 + n_FileHandle = 0 o_Conversor = NULL o_Frm_Avance = NULL o_FSO = NULL @@ -11465,24 +11469,59 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg *-- Header loTable = CREATEOBJECT('CL_DBF_TABLE') - C_FB2PRG_CODE = C_FB2PRG_CODE + loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg ) + + 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 ) + *fdb* + + *-- Genero el DB2 + IF .l_Test + toModulo = C_FB2PRG_CODE + ELSE + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + DO CASE + CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) + *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) + .writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( .c_OutputFile, '-R' ) ; + AND STRTOFILE( C_FB2PRG_CODE, .c_OutputFile ) = 0 + *ERROR 'No se puede generar el archivo [' + .c_OutputFile + '] porque es ReadOnly' + ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) + ENDCASE + ENDIF - - *-- Genero el DB2 - IF .l_Test - toModulo = C_FB2PRG_CODE ELSE - lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) - DO CASE - CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) - *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) - .writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) - CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; - AND toFoxBin2Prg.ChangeFileAttribute( .c_OutputFile, '-R' ) ; - AND STRTOFILE( C_FB2PRG_CODE, .c_OutputFile ) = 0 - *ERROR 'No se puede generar el archivo [' + .c_OutputFile + '] porque es ReadOnly' - ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) - ENDCASE + C_FB2PRG_CODE = C_FB2PRG_CODE + loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg ) + + + *-- Genero el DB2 + IF .l_Test + toModulo = C_FB2PRG_CODE + ELSE + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + DO CASE + CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) + *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) + .writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) + CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; + AND toFoxBin2Prg.ChangeFileAttribute( .c_OutputFile, '-R' ) ; + AND STRTOFILE( C_FB2PRG_CODE, .c_OutputFile ) = 0 + *ERROR 'No se puede generar el archivo [' + .c_OutputFile + '] porque es ReadOnly' + ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) + ENDCASE + ENDIF + ENDIF *-- Hook para permitir ejecución externa (por ejemplo, para exportar datos) @@ -16284,8 +16323,10 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE *** DH 06/02/2014: added _Records loRecords = THIS._Records - lcText = lcText + loRecords.toText(@laFields, lnFieldCount, lc_DBF_Conversion_Condition) - + *lcText = lcText + loRecords.toText(@laFields, lnFieldCount, lc_DBF_Conversion_Condition) + FWRITE( toFoxBin2Prg.n_FileHandle, lcText ) + loRecords.toText(@laFields, lnFieldCount, lc_DBF_Conversion_Condition, @toFoxBin2Prg) + lcText = '' ENDIF TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -16293,6 +16334,11 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE <<>> ENDTEXT + IF toFoxBin2Prg.DBF_Conversion_Support = 4 && BIN2PRG (DATA EXPORT FOR DIFF) + FWRITE( toFoxBin2Prg.n_FileHandle, lcText ) + lcText = '' + ENDIF + CATCH TO loEx IF THIS.l_Debug AND _VFP.STARTMODE = 0 @@ -16887,21 +16933,29 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE * taFields (@! IN ) Array de información de campos * tnField_Count (v! IN ) Cantidad de campos * tc_DBF_Conversion_Condition (v? IN ) Condición de filtro para la conversión. Solo se exporta lo que la cumpla. + * toFoxBin2Prg (@! IN ) Referencia de toFoxBin2Prg *--------------------------------------------------------------------------------------------------- - LPARAMETERS taFields, tnField_Count, tc_DBF_Conversion_Condition + LPARAMETERS taFields, tnField_Count, tc_DBF_Conversion_Condition, toFoxBin2Prg EXTERNAL ARRAY taFields + #IF .F. + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + #ENDIF + TRY - LOCAL lcText, loEx AS EXCEPTION ; + LOCAL lcText, loEx AS EXCEPTION, I ; , loRecord AS CL_DBF_RECORD OF 'FOXBIN2PRG.PRG' - lcText = '' + lcText = '' + I = 0 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <<>> <<>> <> ENDTEXT + FWRITE( toFoxBin2Prg.n_FileHandle, lcText ) + lcText = '' loRecord = CREATEOBJECT('CL_DBF_RECORD') IF EMPTY(tc_DBF_Conversion_Condition) @@ -16909,14 +16963,24 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE ENDIF SCAN FOR &tc_DBF_Conversion_Condition. - lcText = lcText + loRecord.toText(@taFields, tnField_Count) + 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. ) + ENDIF ENDSCAN + + lcText = '' TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <<>> <> <<>> ENDTEXT + FWRITE( toFoxBin2Prg.n_FileHandle, lcText ) + lcText = '' + CATCH TO loEx loEx.UserValue = loEx.UserValue + 'tc_DBF_Conversion_Condition = [' + TRANSFORM(tc_DBF_Conversion_Condition) + ']' + CR_LF From 34433479314c535ee97d66192f69428278270b10 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 20 Nov 2014 19:37:38 +0100 Subject: [PATCH 3/9] =?UTF-8?q?Changeset:=20494=20fdbozzo=20-=2019/11/2014?= =?UTF-8?q?=2021:33:23:=20-=20Nueva=20rutina=20FilesComparedAreEqual()=20p?= =?UTF-8?q?ara=20comparar=20archivos=20de=20cualquier=20tama=C3=B1o=20a=20?= =?UTF-8?q?bajo=20nivel=20cuando=20DBF=5FConversion=5FSupport=20=3D=204=20?= =?UTF-8?q?-=20Nueva=20rutina=20RenameTmpFile2Tx2File()=20para=20renombrar?= =?UTF-8?q?=20el=20nuevo=20archivo=20temporal=20generado=20al=20tx2=20corr?= =?UTF-8?q?espondiente=20cuando=20DBF=5FConversion=5FSupport=20=3D=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 114 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 109 insertions(+), 5 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 5000c69..dea3142 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -502,6 +502,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -548,6 +549,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -1424,6 +1426,84 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + FUNCTION FilesComparedAreEqual + *--------------------------------------------------------------------------------------------------- + * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT) + * tcFilename1 (v! IN ) Nombre del archivo1 a comparar + * tcFilename2 (v! IN ) Nombre del archivo2 a comparar + * 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 + + TRY + STORE -1 TO lnComparacion, lnHandle1, lnHandle2 + lnTipoComp = 0 + lnChunkSize = 65535 + + DO CASE + CASE NOT EMPTY(tcFilename1) AND NOT EMPTY(tcFilename2) + lnTipoComp = 1 + lnHandle1 = FOPEN( tcFilename1 ) + + IF lnHandle1 = -1 + EXIT + ENDIF + + lnHandle2 = FOPEN( tcFilename2 ) + + IF lnHandle2 = -1 + EXIT + ENDIF + + lnLen1 = FSEEK( lnHandle1, 0, 2 ) + lnLen2 = FSEEK( lnHandle2, 0, 2 ) + + *-- Comparación de tamaño + IF lnLen1 <> lnLen2 THEN + 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 + FCLOSE( lnHandle1 ) + FCLOSE( lnHandle2 ) + + ENDCASE + + ENDTRY + + RETURN lnComparacion + ENDFUNC + + FUNCTION FilenameFoundInFilter *--------------------------------------------------------------------------------------------------- * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT) @@ -2357,6 +2437,30 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + ******************************************************************************************************************* + PROCEDURE RenameTmpFile2Tx2File + LPARAMETERS tcFileName + + LOCAL lcTmpFile, loFSO AS Scripting.FileSystemObject, loEx as Exception + + TRY + *loFSO = THIS.o_FSO + lcTmpFile = tcFileName + '.TMP' + THIS.ChangeFileAttribute( tcFileName, '+N' ) + ERASE (tcFileName) + RENAME (lcTmpFile) TO (tcFileName) + + CATCH TO loEx + THROW + + FINALLY + *loFSO = NULL + ENDTRY + + RETURN + ENDPROC + + ******************************************************************************************************************* PROCEDURE writeErrorLog LPARAMETERS tcText @@ -11482,20 +11586,20 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg 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 ) - *fdb* + - *-- Genero el DB2 + *-- Genero el DB2, renombrando el TMP IF .l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE - CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) + CASE FILE(.c_OutputFile) AND toFoxBin2Prg.FilesComparedAreEqual( .c_OutputFile + '.TMP', .c_OutputFile ) = 1 + ERASE (.c_OutputFile + '.TMP') *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) .writeLog( TEXTMERGE(C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC) ) CASE toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) ; AND toFoxBin2Prg.ChangeFileAttribute( .c_OutputFile, '-R' ) ; - AND STRTOFILE( C_FB2PRG_CODE, .c_OutputFile ) = 0 + AND NOT toFoxBin2Prg.RenameTmpFile2Tx2File( .c_OutputFile ) *ERROR 'No se puede generar el archivo [' + .c_OutputFile + '] porque es ReadOnly' ERROR (TEXTMERGE(C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC)) ENDCASE From a299d356451c132c883fb4b3fc7f4dd6b70f3371 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 20 Nov 2014 19:39:46 +0100 Subject: [PATCH 4/9] =?UTF-8?q?Changeset:=20495=20fdbozzo=20-=2020/11/2014?= =?UTF-8?q?=2019:37:38:=20-=20Correcci=C3=B3n=20cr=C3=A9ditos=20y=20agrade?= =?UTF-8?q?cimientos?= 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 dea3142..c1b9fc4 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -107,7 +107,7 @@ * 19/09/2014 FDBOZZO v1.19.34 Arreglo bug: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error al intentar capitalizar el archivo de entrada (Jim Nelson) * 26/09/2014 FDBOZZO v1.19.35 Mejora: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Marcio Gomez G.) * 08/10/2014 FDBOZZO v1.19.36 Arreglo bug: Al generar el mn2 el identificador queda vacío (bug introducido en v1.19.35) -* 19/11/2014 FDBOZZO v1.19.37 Arreglo bug: String is too long to fit (edyshor) +* 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) * * *--------------------------------------------------------------------------------------------------- @@ -154,7 +154,7 @@ * 28/08/2014 Peter Hipp REPORTE BUG mnx v1.19.32: Si una opción tiene asociado un Procedure de 1 línea, no se mantiene como Procedure y se convierte a Command (solucionado en v1.19.33) * 19/09/2014 Jim Nelson REPORTE BUG v1.19.33: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error (solucionado en v1.19.34) * 26/09/2014 Marcio Gomez G. MEJORA v1.19.34: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Agregado en v1.19.35) -* 19/11/2014 edyshor REPORTE BUG dbf v1.19.36: +* 19/11/2014 edyshor REPORTE BUG dbf v1.19.36: "String is too long to fit" cuando se procesa un DBF grande con DBF_Conversion_Support = 4 (Agregado en v1.19.37) * * *--------------------------------------------------------------------------------------------------- From 3db9453ad152345d1c369ccee697beb879e71752 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 20 Nov 2014 21:22:13 +0100 Subject: [PATCH 5/9] =?UTF-8?q?Changeset:=20496=20fdbozzo=20-=2020/11/2014?= =?UTF-8?q?=2019:39:47:=20-=20Nuevo=20par=C3=A1metro=20ClearDBFLastUpdate?= =?UTF-8?q?=20para=20evitar=20diferencias=20por=20este=20dato=20(edyshor)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index c1b9fc4..1ac51d0 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -108,6 +108,7 @@ * 26/09/2014 FDBOZZO v1.19.35 Mejora: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Marcio Gomez G.) * 08/10/2014 FDBOZZO v1.19.36 Arreglo bug: Al generar el mn2 el identificador queda vacío (bug introducido en v1.19.35) * 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) * * *--------------------------------------------------------------------------------------------------- @@ -155,6 +156,7 @@ * 19/09/2014 Jim Nelson REPORTE BUG v1.19.33: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error (solucionado en v1.19.34) * 26/09/2014 Marcio Gomez G. MEJORA v1.19.34: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Agregado en v1.19.35) * 19/11/2014 edyshor REPORTE BUG dbf v1.19.36: "String is too long to fit" cuando se procesa un DBF grande con DBF_Conversion_Support = 4 (Agregado en v1.19.37) +* 19/11/2014 edyshor MEJORA dbf v1.19.36: Nuevo parámetro ClearDBFLastUpdate para evitar diferencias por este dato (Agregado en v1.19.37) * * *--------------------------------------------------------------------------------------------------- @@ -515,6 +517,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -594,6 +597,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM l_Recompile = .T. l_NoTimestamps = .T. l_ClearUniqueID = .T. + l_ClearDBFLastUpdate = .T. l_OptimizeByFilestamp = .F. l_MethodSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias l_PropSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias @@ -744,6 +748,15 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE l_ClearDBFLastUpdate_ACCESS + IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) ) + RETURN THIS.l_ClearDBFLastUpdate + ELSE + RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).l_ClearDBFLastUpdate, THIS.l_ClearDBFLastUpdate ) + ENDIF + ENDPROC + + PROCEDURE l_OptimizeByFilestamp_ACCESS IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) ) RETURN THIS.l_OptimizeByFilestamp @@ -1250,6 +1263,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .writeLog( JUSTFNAME(lcConfigFile) + ' > ClearUniqueID: ' + TRANSFORM(lcValue) ) ENDIF + CASE LEFT( laConfig(I), 19 ) == LOWER('ClearDBFLastUpdate:') + lcValue = ALLTRIM( SUBSTR( laConfig(I), 20 ) ) + IF INLIST( lcValue, '0', '1' ) THEN + lo_CFG.l_ClearDBFLastUpdate = ( TRANSFORM(lcValue) == '1' ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > ClearDBFLastUpdate: ' + TRANSFORM(lcValue) ) + ENDIF + CASE LEFT( laConfig(I), 20 ) == LOWER('OptimizeByFilestamp:') lcValue = ALLTRIM( SUBSTR( laConfig(I), 21 ) ) IF NOT INLIST( TRANSFORM(tcOptimizeByFilestamp), '0', '1' ) AND INLIST( lcValue, '0', '1' ) THEN @@ -7947,7 +7967,12 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin USE IN (SELECT(JUSTSTEM(.c_OutputFile))) *-- La actualización de la fecha sirve para evitar diferencias al regenerar el DBF - ldLastUpdate = EVALUATE( '{^' + toTable._LastUpdate + '}' ) + IF toFoxBin2Prg.l_ClearDBFLastUpdate THEN + ldLastUpdate = EVALUATE( '{^2013/11/04}' ) + ELSE + ldLastUpdate = EVALUATE( '{^' + toTable._LastUpdate + '}' ) + ENDIF + loDBFUtils.write_DBC_BackLink( .c_OutputFile, toTable._Database, ldLastUpdate ) ENDWITH && THIS @@ -16374,7 +16399,7 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE <> <<>> <> <<>> <> - <<>> <> + <<>> <> <<>> <> <<>> <> <<>> <> @@ -20149,6 +20174,7 @@ DEFINE CLASS CL_CFG AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -20187,6 +20213,7 @@ DEFINE CLASS CL_CFG AS CUSTOM l_Recompile = NULL l_NoTimestamps = NULL l_ClearUniqueID = NULL + l_ClearDBFLastUpdate = NULL l_OptimizeByFilestamp = NULL n_ExtraBackupLevels = NULL c_VC2 = NULL From 9c7273d46b2be38cb60ed57f86a2d52665366b15 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 20 Nov 2014 21:52:36 +0100 Subject: [PATCH 6/9] Changeset: 497 fdbozzo - 20/11/2014 21:52:17: --- foxbin2prg.prg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 3d37316..a1e49ff 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -107,7 +107,7 @@ * 19/09/2014 FDBOZZO v1.19.34 Arreglo bug: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error al intentar capitalizar el archivo de entrada (Jim Nelson) * 26/09/2014 FDBOZZO v1.19.35 Mejora: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Marcio Gomez G.) * 08/10/2014 FDBOZZO v1.19.36 Arreglo bug: Al generar el mn2 el identificador queda vacío (bug introducido en v1.19.35) -* 30/10/2014 FDBOZZO v1.19.37 Mejora: Optimizaciones y condicionamiento de EXTERNAL +* 30/10/2014 FDBOZZO v1.19.37 Mejora: Optimizaciones * * *--------------------------------------------------------------------------------------------------- From 1ec5c192d3a707a13f03f0cf30a4f31c2e949548 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 20 Nov 2014 22:32:59 +0100 Subject: [PATCH 7/9] =?UTF-8?q?Changeset:=20500=20fdbozzo=20-=2020/11/2014?= =?UTF-8?q?=2022:10:08:=20-=20Actualizaci=C3=B3n=20de=20foxbin2prg.cfg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.cfg | 32 ++++++++++++++++++++++++++++++-- foxbin2prg.exe | Bin 447279 -> 459895 bytes 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/foxbin2prg.cfg b/foxbin2prg.cfg index 6cd76ad..8f79247 100644 --- a/foxbin2prg.cfg +++ b/foxbin2prg.cfg @@ -2,8 +2,7 @@ * FOXBIN2PRG v1.19.26 * CONFIGURATION FILE / ARCHIVO DE CONFIGURACIÓN *--------------------------------------------------------------------------------------------------- -* EN: DON'T MODIFY THIS DOCUMENTATION SECTION, MODIFY *UNDER* THIS SECTION -* ES: NO MODIFIQUE ESTA SECCIÓN DE DOCUMENTACIÓN, MODIFIQUE *DEBAJO* DE ESTA SECCIÓN +* DON'T MODIFY THIS DOCUMENTATION SECTION / NO MODIFIQUE ESTA SECCIÓN DE DOCUMENTACIÓN * * DETAIL OF SUPPORTED VALUES / DETALLE DE VALORES SOPORTADOS * If no values given, this are the defaults / Si no se proporcionan valores, estos son los predeterminados @@ -15,6 +14,7 @@ * Debug: 0 && Don't Activate individual .Log by default / No Activar .Log por defecto * ExtraBackupLevels: 1 && By default 1 BAK is created. With this you can make more .N.BAK, or none / Por defecto 1 BAK es creado. Con esto puede crear más .N.BAK, o ninguno * ClearUniqueID: 1 && 0=Keep UniqueID, 1=Clear Unique ID. Useful for Diff and Merge / 0=Mantener UniqueID, 1=Borrar Unique ID. Util para Diff y Merge +* ClearDBFLastUpdate: 1 && 0=Keep DBF LastUpdate, 1=Clear DBF LastUpdate. Useful for Diff. / 0=Mantener DBF LastDate, , 1=Borrar DBF LastDate. Util para Diff. * OptimizeByFilestamp: 0 && Optimize file regeneration depending on file timestamp / Optimizar la regeneración de archivos dependiendo del timestamp de archivo * AllowMultiConfig: 1 && 1=Allow CFG files per directory. if no CFG found, then use Main CFG. 0=Only use Main CFG * DropNullCharsFromCode: 1 && 1=Drop NULL chars from source code / 0=Leave Nulls in code, if any @@ -53,3 +53,31 @@ *extension: db2=dba *extension: dc2=dca + +* EN: Uncomment to activate the new value, comment to deactivate and use the default +* ES: Descomente para activar el nuevo valor, comente para desactivarlo y usar el predeterminado +*--------------------------------------------------------------------------------------------------- +*DontShowProgress: 1 +*DontShowErrors: 1 +*NoTimestamps: 0 +*Debug: 1 +*ExtraBackupLevels: 0 +*ClearUniqueID: 0 +*ClearDBFLastUpdate: 0 +*OptimizeByFilestamp: 0 +*AllowMultiConfig: 0 +*DropNullCharsFromCode: 0 + + +* EN: Uncomment to activate the new value, comment to deactivate and use the default +* ES: Descomente para activar el nuevo valor, comente para desactivarlo y usar el predeterminado +* 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge), 4=Generate TXT with DATA for DIFF (DBF only) +*--------------------------------------------------------------------------------------------------- +*PJX_Conversion_Support: 2 +*VCX_Conversion_Support: 2 +*SCX_Conversion_Support: 2 +*FRX_Conversion_Support: 2 +*LBX_Conversion_Support: 2 +*MNX_Conversion_Support: 2 +*DBC_Conversion_Support: 2 +*DBF_Conversion_Support: 4 diff --git a/foxbin2prg.exe b/foxbin2prg.exe index 607e255d785f5fb54b22305c78b8b7bedf539880..e88254e09a7fa7b0e103156f59c7ca4b2ed67d7f 100644 GIT binary patch delta 53030 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
$lE@3Xg=M?@Wg>@Jf82oW<^z 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 RY6LZCR+}fct~=V${{oBX+7$o* From 2b6deca4f8f281fd0cdd0851f9ad443d31d73490 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Fri, 21 Nov 2014 17:32:18 +0100 Subject: [PATCH 8/9] Changeset: 501 fdbozzo - 21/11/2014 16:58:27: - Agregado soporte para comentarios && en las configuraciones de foxbin2prg.cfg --- foxbin2prg.prg | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 1e10043..4c92918 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -107,6 +107,7 @@ * 19/09/2014 FDBOZZO v1.19.34 Arreglo bug: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error al intentar capitalizar el archivo de entrada (Jim Nelson) * 26/09/2014 FDBOZZO v1.19.35 Mejora: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Marcio Gomez G.) * 08/10/2014 FDBOZZO v1.19.36 Arreglo bug: Al generar el mn2 el identificador queda vacío (bug introducido en v1.19.35) +* 19/11/2014 FDBOZZO v1.19.37 Mejora: Las configuraciones de foxbin2prg.cfg no permiten comentarios && al final (edyshor) * * *--------------------------------------------------------------------------------------------------- @@ -153,6 +154,7 @@ * 28/08/2014 Peter Hipp REPORTE BUG mnx v1.19.32: Si una opción tiene asociado un Procedure de 1 línea, no se mantiene como Procedure y se convierte a Command (solucionado en v1.19.33) * 19/09/2014 Jim Nelson REPORTE BUG v1.19.33: Si se ejecuta FoxBin2Prg desde ventana de comandos FoxPro para un proyecto y hay algún archivo abierto o cacheado, se produce un error (solucionado en v1.19.34) * 26/09/2014 Marcio Gomez G. MEJORA v1.19.34: Generar siempre el mismo Timestamp y UniqueID para los binarios minimizaría los cambios al regenerarlos (Agregado en v1.19.35) +* 19/11/2014 edyshor MEJORA cfg v1.19.36: DBF_Conversion_Excluded no permite comentarios && al final (Agregado en v1.19.37) * * *--------------------------------------------------------------------------------------------------- @@ -504,6 +506,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -545,6 +548,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -1138,7 +1142,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM LPARAMETERS tcDontShowProgress, tcDontShowErrors, tcNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ; , tcClearUniqueID, tcOptimizeByFilestamp, tc_InputFile - LOCAL lcConfigFile, llExisteConfig, laConfig(1), I, lcConfData, lcExt, lcValue, lc_CFG_Path ; + LOCAL lcConfigFile, llExisteConfig, laConfig(1), I, lcConfData, lcExt, lcValue, lc_CFG_Path, lcConfigLine ; , lo_CFG AS CL_CFG OF 'FOXBIN2PRG.PRG' ; , lo_Configuration AS Collection ; , loEx as Exception @@ -1185,10 +1189,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF FOR I = 1 TO ALINES( laConfig, FILETOSTR( lcConfigFile ), 1+4 ) - laConfig(I) = LOWER( laConfig(I) ) + *laConfig(I) = LOWER( laConfig(I) ) + .set_Line( @lcConfigLine, @laConfig, I ) + .get_SeparatedLineAndComment( @lcConfigLine ) + laConfig(I) = LOWER( lcConfigLine ) DO CASE - CASE INLIST( LEFT( laConfig(I), 1 ), '*', '#', '/', "'" ) + CASE EMPTY( laConfig(I) ) OR INLIST( LEFT( laConfig(I), 1 ), '*', '#', '/', "'" ) LOOP CASE LEFT( laConfig(I), 10 ) == LOWER('Extension:') @@ -2212,6 +2219,26 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE get_SeparatedLineAndComment + *--------------------------------------------------------------------------------------------------- + * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT) + * tcLine (!@ IN/OUT) Línea a separar del comentario + * tcComment (@? OUT) Comentario + *--------------------------------------------------------------------------------------------------- + LPARAMETERS tcLine, tcComment + LOCAL ln_AT_Cmt + tcComment = '' + ln_AT_Cmt = AT( '&'+'&', tcLine) + + IF ln_AT_Cmt > 0 + tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) + tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9) ) && Quito TABS + ENDIF + + RETURN (ln_AT_Cmt > 0) + ENDPROC + + ******************************************************************************************************************* PROCEDURE normalizarCapitalizacionArchivos LPARAMETERS tl_NormalizeInputFile @@ -2353,6 +2380,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + ******************************************************************************************************************* + PROCEDURE set_Line + LPARAMETERS tcLine, taCodeLines, I + tcLine = LTRIM( taCodeLines(I), 0, ' ', CHR(9) ) + ENDPROC + + ******************************************************************************************************************* PROCEDURE writeErrorLog LPARAMETERS tcText From 1330fee3f02ff0fc998e668fbed27b247ca4fb1b Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Fri, 21 Nov 2014 18:31:03 +0100 Subject: [PATCH 9/9] =?UTF-8?q?Changeset:=20503=20fdbozzo=20-=2021/11/2014?= =?UTF-8?q?=2017:52:46:=20-=20Vuelvo=20a=20renombrar=20el=20archivo=20de?= =?UTF-8?q?=20traducci=C3=B3n=20al=20alem=C3=A1n=20como=20"de",=20que=20es?= =?UTF-8?q?=20el=20c=C3=B3digo=20ISO=20est=C3=A1ndar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FoxBin2Prg__kompilieren_auf_Deutsch.vbs | 2 +- foxbin2prg_ge.h => foxbin2prg_de.h | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename foxbin2prg_ge.h => foxbin2prg_de.h (100%) diff --git a/FoxBin2Prg__kompilieren_auf_Deutsch.vbs b/FoxBin2Prg__kompilieren_auf_Deutsch.vbs index f5c068c..e7a5ab1 100644 --- a/FoxBin2Prg__kompilieren_auf_Deutsch.vbs +++ b/FoxBin2Prg__kompilieren_auf_Deutsch.vbs @@ -12,7 +12,7 @@ Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") Set oVFP9 = CreateObject("VisualFoxPro.Application.9") foxbin2prg_exe = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.exe") nExitCode = 0 -cOrigFile = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg_ge.h") +cOrigFile = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg_de.h") cDestFile = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.h") cPath = FileSystemObject.GetParentFolderName( cOrigFile ) nRet = FileSystemObject.CopyFile( cOrigFile, cDestFile, True ) diff --git a/foxbin2prg_ge.h b/foxbin2prg_de.h similarity index 100% rename from foxbin2prg_ge.h rename to foxbin2prg_de.h