From 209ec3d8e75fc62d04ace521d0008f95c62cbf4c Mon Sep 17 00:00:00 2001 From: fdbozzo <> Date: Fri, 5 Jan 2018 18:39:31 +0100 Subject: [PATCH 1/4] BugFix vcx/scx: FoxBin2Prg should ignore the records that VFP Designer ignores (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/15) --- FoxBin2PRGVersionFile.txt | 7 ++++-- foxbin2prg.prg | 52 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index 3f1bebc..79efbaf 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -2,8 +2,8 @@ Lparameters toUpdateInfo Local lcNote With toUpdateInfo - .VersionNumber = 'v1.19.49.4' - .VersionDate = Date(2017,12,04) + .VersionNumber = 'v1.19.49.6' + .VersionDate = Date(2018,01,04) .SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip' .Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG' @@ -21,6 +21,9 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg Change History ------------------------------------------------------------- +2018/01/04 v1.19.49.6 +- BugFix vcx/scx: FoxBin2Prg should ignore the records that VFP Designer ignores (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/15) + 2017/12/20 v1.19.49.5 - BugFix DBF: When FoxBin2PRG converts a DB2 file to a DBF file and imports the data (using DBF_Conversion_Support = 8), tabs at the start of lines in memo fields are lost (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/13) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 6ae085d..33c9828 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -204,6 +204,7 @@ * 03/12/2017 JS&FDBOZZO v1.19.49.3 Bug Fix db2: Los campos "Double" asumen 2 decimales cuando se definen con 0 decimales (Jerry Stager) * 04/12/2017 FDBOZZO v1.19.49.4 Cuando se usa ClassPerFile an Modo API y se importan clases simples, a veces sus nombres se toman sin comillas, provocando errores (Lutz Scheffler) * 20/12/2017 DH&FDBOZZO v1.19.49.5 Bug Fix dbf: Cuando se importan datos de un DB2 a DBF (con DBF_Conversion_Support = 8), los tabs al inicio de los memo se pierden (Doug Hennig) +* 04/01/2018 FDBOZZO v1.19.49.6 Bug Fix vcx/scx: FoxBin2Prg debería ignorar los registros que el diseñador de FoxPro ignora (Doug Hennig) * * *--------------------------------------------------------------------------------------------------- @@ -321,6 +322,7 @@ * 31/08/2017 Jerry Stager Reporte bug db2 v1.19.48: Los campos "Double" asumen 2 decimales cuando se definen con 0 decimales (Agregado en v1.19.49.3) * 03/12/2017 Lutz Scheffler Reporte Bug vx2 v1.19.49: Cuando se usa ClassPerFile an Modo API y se importan clases simples, a veces sus nombres se toman sin comillas, provocando errores (Arreglado en v1.19.49.4) * 18/12/2017 Doug Hennnig Reporte Bug dbf v1.19.49: Cuando se importan datos de un DB2 a DBF (con DBF_Conversion_Support = 8), los tabs al inicio de los memo se pierden (Arreglado en v1.19.49.5) +* 04/01/2018 Doug Hennnig Reporte Bug vcx/scx v1.19.49: FoxBin2Prg debería ignorar los registros que el diseñador de FoxPro ignora (Arreglado en v1.19.49.6) * * *--------------------------------------------------------------------------------------------------- @@ -10446,7 +10448,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin * Si tiene objetos asociados, antes debo eliminar los existentes para no duplicarlos DELETE ALL FOR PLATFORM == PADR('WINDOWS', FSIZE('PLATFORM')) AND LOWER(PARENT) == loClase._ObjName - + .insert_AllObjects( @loClase, @toFoxBin2Prg ) ELSE @@ -13510,6 +13512,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -14025,6 +14028,43 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base + PROCEDURE ignoreIncorrectDefinedObjects(lcCursor) + * Issue#15 - VFP Designer ignored objects should be ignored by FoxBin2Prg + LOCAL lcObjName, lcParent, lcParentObjName, loObjs as Collection + loObjs = CREATEOBJECT("Collection") + SELECT (lcCursor) + + SCAN FOR PLATFORM = "WINDOWS" + lcObjName = LOWER(OBJNAME) + lcParent = LOWER(PARENT) + + IF EMPTY(lcParent) + lcParentObjName = lcObjName + ELSE + lcParentObjName = lcParent + '.' + lcObjName + ENDIF + + IF NOT EMPTY(lcParent) + * Tiene Parent, y debe existir, si no es ignorado + IF loObjs.GetKey(lcParent) > 0 + * Existe: se agrega al array el nuevo objeto + loObjs.Add( '', lcParentObjName ) + ELSE + * No existe: se ignora + DELETE + ENDIF + ELSE + * No Existe: se agrega al array + loObjs.Add( '', lcParentObjName ) + + ENDIF + ENDSCAN + + RETURN + ENDPROC + + + PROCEDURE indentMemo LPARAMETERS tcMethod, tcIndentation, tlKeepProcHeader *-- INDENTA EL CÓDIGO DE UN MÉTODO DADO Y QUITA LA CABECERA DE MÉTODO (PROCEDURE/ENDPROC) SI LA ENCUENTRA @@ -15398,7 +15438,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg IF toFoxBin2Prg.n_UseClassPerFile = 0 OR EMPTY(toFoxBin2Prg.c_ClassToConvert) THEN *-- Exportar la librería entera a texto - SELECT _TABLAORIG.*,RECNO() regnum FROM _TABLAORIG INTO CURSOR TABLABIN + SELECT _TABLAORIG.*,RECNO() regnum FROM _TABLAORIG INTO CURSOR TABLABIN READWRITE ELSE *-- Exportar solo una clase a texto cuando se usa ClassPerFile y se indicó una clase SELECT _TABLAORIG.*,RECNO() regnum FROM _TABLAORIG INTO CURSOR TABLABIN ; @@ -15411,6 +15451,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg lnStepCount = 7 USE IN (SELECT("_TABLAORIG")) + * Issue#15: Ignorar objetos mal definidos + .ignoreIncorrectDefinedObjects('TABLABIN') + INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ ADDITIVE SET ORDER TO 0 IN TABLABIN @@ -15763,9 +15806,12 @@ 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 _TABLAORIG.*,RECNO() regnum FROM _TABLAORIG INTO CURSOR TABLABIN + SELECT _TABLAORIG.*,RECNO() regnum FROM _TABLAORIG INTO CURSOR TABLABIN READWRITE USE IN (SELECT("_TABLAORIG")) + * Issue#15: Ignorar objetos mal definidos + .ignoreIncorrectDefinedObjects('TABLABIN') + INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ ADDITIVE SET ORDER TO 0 IN TABLABIN From 2f2a5a89381ce4a048ae3f8bac4f03e01236abab Mon Sep 17 00:00:00 2001 From: fdbozzo <> Date: Sat, 6 Jan 2018 18:18:15 +0100 Subject: [PATCH 2/4] BugFix vcx/scx: FoxBin2Prg encodes MemberData property with CR/LF, which can cause "property '_memberdata' value is too long" error (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/16) --- foxbin2prg.prg | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 33c9828..2370eef 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -205,6 +205,7 @@ * 04/12/2017 FDBOZZO v1.19.49.4 Cuando se usa ClassPerFile an Modo API y se importan clases simples, a veces sus nombres se toman sin comillas, provocando errores (Lutz Scheffler) * 20/12/2017 DH&FDBOZZO v1.19.49.5 Bug Fix dbf: Cuando se importan datos de un DB2 a DBF (con DBF_Conversion_Support = 8), los tabs al inicio de los memo se pierden (Doug Hennig) * 04/01/2018 FDBOZZO v1.19.49.6 Bug Fix vcx/scx: FoxBin2Prg debería ignorar los registros que el diseñador de FoxPro ignora (Doug Hennig) +* 04/01/2018 FDBOZZO v1.19.49.6 Bug Fix vcx/scx: Cuando se regenera la propiedad _MemberData se agregan CR/LF por cada miembro, pudiendo provocar un error de "valor muy largo" (Doug Hennnig) * * *--------------------------------------------------------------------------------------------------- @@ -323,6 +324,7 @@ * 03/12/2017 Lutz Scheffler Reporte Bug vx2 v1.19.49: Cuando se usa ClassPerFile an Modo API y se importan clases simples, a veces sus nombres se toman sin comillas, provocando errores (Arreglado en v1.19.49.4) * 18/12/2017 Doug Hennnig Reporte Bug dbf v1.19.49: Cuando se importan datos de un DB2 a DBF (con DBF_Conversion_Support = 8), los tabs al inicio de los memo se pierden (Arreglado en v1.19.49.5) * 04/01/2018 Doug Hennnig Reporte Bug vcx/scx v1.19.49: FoxBin2Prg debería ignorar los registros que el diseñador de FoxPro ignora (Arreglado en v1.19.49.6) +* 04/01/2018 Doug Hennnig Reporte Bug vcx/scx v1.19.49: Cuando se regenera la propiedad _MemberData se agregan CR/LF por cada miembro, pudiendo provocar un error de "valor muy largo" (Arreglado en v1.19.49.6) * * *--------------------------------------------------------------------------------------------------- @@ -6351,12 +6353,6 @@ DEFINE CLASS c_conversor_base AS Custom LOCAL lnCodError, lnPos, lcValue tcComentario = '' - *-- Limpieza de caracteres sin uso - *IF INLIST(tcValue, '..\', '..\..\' ) THEN - * MESSAGEBOX( 'Encontrado valor "' + tcValue + '" en propiedad "' + tcProp, 4096, PROGRAM() ) - * tcValue = '' - *ENDIF - *-- Ajustes de algunos casos especiales DO CASE CASE tcProp == '_memberdata' @@ -6364,16 +6360,13 @@ DEFINE CLASS c_conversor_base AS Custom 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 - lcValue = lcValue + CHR(13) + CHR(10) + CHRTRAN( STREXTRACT( tcValue, '', I, 1+4 ), CR_LF, ' ' ) + * issue#16: memberdata property should be saved in compressed format + lcValue = lcValue + CHRTRAN( STREXTRACT( tcValue, '', I, 1+4 ), CR_LF, ' ' ) ENDFOR + * issue#16: memberdata property should be saved in compressed format TEXT TO tcValue TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - - <> - + <> ENDTEXT IF LEN(lcValue) > 255 From 9f9efb2fc86df0cada4fb7a0602e9dcb6760a38d Mon Sep 17 00:00:00 2001 From: fdbozzo <> Date: Sat, 6 Jan 2018 18:19:32 +0100 Subject: [PATCH 3/4] FoxBin2PrgVersionFile update --- FoxBin2PRGVersionFile.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index 79efbaf..8695fcd 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -3,7 +3,7 @@ Lparameters toUpdateInfo Local lcNote With toUpdateInfo .VersionNumber = 'v1.19.49.6' - .VersionDate = Date(2018,01,04) + .VersionDate = Date(2018,01,06) .SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip' .Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG' @@ -23,6 +23,7 @@ Change History ------------------------------------------------------------- 2018/01/04 v1.19.49.6 - BugFix vcx/scx: FoxBin2Prg should ignore the records that VFP Designer ignores (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/15) +- BugFix vcx/scx: FoxBin2Prg encodes MemberData property with CR/LF, which can cause "property '_memberdata' value is too long" error (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/16) 2017/12/20 v1.19.49.5 - BugFix DBF: When FoxBin2PRG converts a DB2 file to a DBF file and imports the data (using DBF_Conversion_Support = 8), tabs at the start of lines in memo fields are lost (Doug Hennig / https://github.com/fdbozzo/foxbin2prg/issues/13) From f0454e0392ba8bdeee1561c122686c33c61e4c7c Mon Sep 17 00:00:00 2001 From: fdbozzo <> Date: Sat, 6 Jan 2018 21:40:10 +0100 Subject: [PATCH 4/4] foxbin2prg.prg: Issue#15 fix (check only main object) lib_controles.vcx: Change PCT_DLL.dll path ut__foxbin2prg__c_conversor_prg_a_bin__analyzeAssignmentOf_Tag.prg: Adapt test case for issue#15 EXE generation --- TESTS/DATOS_READONLY/lib_controles.vc2 | 3 ++- TESTS/DATOS_READONLY/lib_controles.vct | Bin 388757 -> 388850 bytes TESTS/DATOS_READONLY/lib_controles.vcx | Bin 33405 -> 33405 bytes ...sor_prg_a_bin__analyzeAssignmentOf_TAG.prg | 4 +++- foxbin2prg.exe | Bin 624434 -> 625148 bytes foxbin2prg.prg | 3 ++- 6 files changed, 7 insertions(+), 3 deletions(-) diff --git a/TESTS/DATOS_READONLY/lib_controles.vc2 b/TESTS/DATOS_READONLY/lib_controles.vc2 index 4027987..9713188 100644 --- a/TESTS/DATOS_READONLY/lib_controles.vc2 +++ b/TESTS/DATOS_READONLY/lib_controles.vc2 @@ -1544,7 +1544,7 @@ DEFINE CLASS f_base AS form tcFilename = SYS(5) + ADDBS(CURDIR()) + "TESTS\DATOS_TEST\" + tcFilename + '.bmp' ENDIF - Declare Integer formtobmp IN "TESTS\PCT_DLL.dll" integer hwnd,String bmpFileName + Declare Integer formtobmp IN "PCT_DLL.dll" integer hwnd,String bmpFileName retVal = formtobmp( THISFORM.HWnd, tcFilename ) *Declare Integer formtobmpA IN "TESTS\PCT_DLL.dll" string bmpfilename,integer nX,integer nY,integer nX2,integer nY2 @@ -1561,6 +1561,7 @@ DEFINE CLASS f_base AS form ENDPROC PROCEDURE Init + SET PATH TO (FULLPATH("..\", THIS.ClassLibrary)) ADDITIVE THISFORM.cmdCapturar.SetFocus() ENDPROC diff --git a/TESTS/DATOS_READONLY/lib_controles.vct b/TESTS/DATOS_READONLY/lib_controles.vct index 86434eff646bf70bbdfe0545316130f7058ea6da..c2ae1d2e04bce4ff66138604f65af737eda6a680 100644 GIT binary patch delta 648 zcmXX@T}YEr7=F)p&haOQI%%7es4qj@Dh4^Bx(U|Q91Yx`iXi1IS5~&|+fWt;lP>J4 zs8bw+-9#5bH&!?2LTYw32#My5G?FL+g&<rpCaZc&TAq z=83PQ=|(Cyo5~@P$|+|z8d|6eHH2Ui8<=^o1EYVeJPw6WMlz9SrgC}{8*b)X=2fKQo0R&*EaFoO`X!ySksh9+A& z4#?_^9I8^KllUU}2|0a>-mqzivItOSHrl8 zCz8m_=QO0_8=Z8J%R{ZsW)`u?ERwwu{&b#L#4VMa!{T};{njYv4$^m6Y#t*?MZDLM z6)f64)Qf~QN-q&HG(ZcrqB=rbk$5#idm4l^mAWxRQbZW0X;NeJOH~SfEw&bLJrepC z_zmJCXsL~OSU<$1Y~6~=<0F> UTm#+wd>Y$$xqse*W8OX$1Y^GYzk)J8fNX zZ~NB)h$roZbaHlK@yPET6UGKd$3`b$#GqUB0##?^ z(Vj53+vFviWnQMndWf%RWoaD0@M)(x;>{^~9iY*+thIcszejnRI_#n)EIvg8Kac_8WAgfyeS5PoRlD8^N59 qCimEiW;?WR1apTpUPX^09(YB+I*ESNfjBItwLa$_v2lij~*OK}G diff --git a/TESTS/DATOS_READONLY/lib_controles.vcx b/TESTS/DATOS_READONLY/lib_controles.vcx index 1ef9e56f152e9e365880effe86417e881dc71629..b10f42f41ab1f858668ed03e66bb38288f7997b5 100644 GIT binary patch literal 33405 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 WvpMc_{f+umda~`5I;QIH%=|wwIgxk( diff --git a/TESTS/ut__foxbin2prg__c_conversor_prg_a_bin__analyzeAssignmentOf_TAG.prg b/TESTS/ut__foxbin2prg__c_conversor_prg_a_bin__analyzeAssignmentOf_TAG.prg index 7a92e4d..585d1e2 100644 --- a/TESTS/ut__foxbin2prg__c_conversor_prg_a_bin__analyzeAssignmentOf_TAG.prg +++ b/TESTS/ut__foxbin2prg__c_conversor_prg_a_bin__analyzeAssignmentOf_TAG.prg @@ -290,7 +290,9 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_prg_a_bin__analyzeAssignmentOf_TAG AS F *-- DATOS ESPERADOS STORE 0 TO lnCodError_Esperado - lcValue_Esperado = REPLICATE( CHR(1), 517 ) + STR(23 + LEN(lcMemberdata),8) + '' + CR_LF + lcMemberdata + CR_LF + '' + *lcValue_Esperado = REPLICATE( CHR(1), 517 ) + STR(23 + LEN(lcMemberdata),8) + '' + CR_LF + lcMemberdata + CR_LF + '' + lcMemberdata = CHRTRAN(lcMemberdata,CR_LF,'') && Issue#15 - Doug Hennig + lcValue_Esperado = REPLICATE( CHR(1), 517 ) + STR(19 + LEN(lcMemberdata),8) + '' + lcMemberdata + '' *-- TEST loObj.analyzeAssignmentOf_TAG( @lcPropName, @lcPropValue, @laProps, @lnProp_Count ; diff --git a/foxbin2prg.exe b/foxbin2prg.exe index 218e840fab2fe58f9fd6c85cd984158de10bd2b6..753cd3cf8b24172ea457d984313250b1b0634a1c 100644 GIT binary patch delta 19689 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 delta 19260 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 H)6xF|!^ZNn diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 2370eef..fe2a768 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -14039,7 +14039,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base IF NOT EMPTY(lcParent) * Tiene Parent, y debe existir, si no es ignorado - IF loObjs.GetKey(lcParent) > 0 + * NOTA: Del parent solo se puede comprobar el objeto primario. + IF loObjs.GetKey(GETWORDNUM(lcParent + '.', 1, '.')) > 0 * Existe: se agrega al array el nuevo objeto loObjs.Add( '', lcParentObjName ) ELSE