v1.19.49.8
- Bug Fix: When converting a VCX corrupted with duplicated objects to text, "The specified key already exists" error is thrown (Kirides)
This commit is contained in:
@@ -2,8 +2,8 @@ Lparameters toUpdateInfo
|
|||||||
|
|
||||||
Local lcNote
|
Local lcNote
|
||||||
With toUpdateInfo
|
With toUpdateInfo
|
||||||
.VersionNumber = 'v1.19.49.7'
|
.VersionNumber = 'v1.19.49.8'
|
||||||
.VersionDate = Date(2018,01,11)
|
.VersionDate = Date(2018,02,03)
|
||||||
.SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip'
|
.SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip'
|
||||||
|
|
||||||
.Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG'
|
.Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG'
|
||||||
@@ -21,6 +21,9 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg
|
|||||||
|
|
||||||
Change History -------------------------------------------------------------
|
Change History -------------------------------------------------------------
|
||||||
|
|
||||||
|
2018-02-03 v1.19.49.8
|
||||||
|
- Bug Fix: When converting a VCX corrupted with duplicated objects to text, "The specified key already exists" error is thrown (Kirides)
|
||||||
|
|
||||||
2018-01-11 v1.19.49.7
|
2018-01-11 v1.19.49.7
|
||||||
- Bug Fix: When converting a DBF an error is thrown if there is a field called X or I (Francisco Prieto)
|
- Bug Fix: When converting a DBF an error is thrown if there is a field called X or I (Francisco Prieto)
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -2,10 +2,10 @@ lparameters toUpdateObject
|
|||||||
local ldDate, ;
|
local ldDate, ;
|
||||||
lnJulian, ;
|
lnJulian, ;
|
||||||
lcJulian
|
lcJulian
|
||||||
ldDate = date(2018,1,11)
|
ldDate = date(2018,2,3)
|
||||||
lnJulian = val(sys(11, ldDate)) - val(sys(11, {^2000-01-01}))
|
lnJulian = val(sys(11, ldDate)) - val(sys(11, {^2000-01-01}))
|
||||||
lcJulian = padl(transform(lnJulian), 4, '0')
|
lcJulian = padl(transform(lnJulian), 4, '0')
|
||||||
toUpdateObject.AvailableVersion = 'FoxBin2Prg-1.19.49.7' + lcJulian + ;
|
toUpdateObject.AvailableVersion = 'FoxBin2Prg-1.19.49.8' + lcJulian + ;
|
||||||
'-update-' + dtoc(ldDate, 1)
|
'-update-' + dtoc(ldDate, 1)
|
||||||
return toUpdateObject
|
return toUpdateObject
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
appName = FoxBin2Prg
|
appName = FoxBin2Prg
|
||||||
appID = FoxBin2Prg
|
appID = FoxBin2Prg
|
||||||
majorVersion = 1.19.49.7
|
majorVersion = 1.19.49.8
|
||||||
excludeFiles = *.bak,*.bat,*.fxp,*.tbk,*.tmp,*.dat,*.log,*.cvp,README.md,.gitignore,*.zip*,*.7z*,*- copia.*,*.private.*,test_*.*,xx*.*,*.lnk,vfp_init.*,tmp*.*,*.err
|
excludeFiles = *.bak,*.bat,*.fxp,*.tbk,*.tmp,*.dat,*.log,*.cvp,README.md,.gitignore,*.zip*,*.7z*,*- copia.*,*.private.*,test_*.*,xx*.*,*.lnk,vfp_init.*,tmp*.*,*.err
|
||||||
excludeFolders = *.plastic*,*ThorUpdater*,*Documentacion*,*foxunit*,*foxunit_*,*pruebas varias*,*versiones*,*datos_test*
|
excludeFolders = *.plastic*,*ThorUpdater*,*Documentacion*,*foxunit*,*foxunit_*,*pruebas varias*,*versiones*,*datos_test*
|
||||||
|
|||||||
BIN
foxbin2prg.exe
BIN
foxbin2prg.exe
Binary file not shown.
@@ -207,6 +207,7 @@
|
|||||||
* 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: 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)
|
* 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)
|
||||||
* 11/01/2018 FDBOZZO v1.19.49.7 Bug Fix: Cuando se convierte la estructura de un DBF puede dar error si existe un campo llamado I o X (Francisco Prieto)
|
* 11/01/2018 FDBOZZO v1.19.49.7 Bug Fix: Cuando se convierte la estructura de un DBF puede dar error si existe un campo llamado I o X (Francisco Prieto)
|
||||||
|
* 30/01/2018 FDBOZZO v1.19.49.8 Bug Fix: Cuando se convierte a texto una libreria corrupta con registros duplicados, se genera el error "The specified key already exists" (Kirides)
|
||||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -327,6 +328,7 @@
|
|||||||
* 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: 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)
|
* 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)
|
||||||
* 11/01/2018 Francisco Prieto Reporte Bug v1.19.49: Cuando se convierte la estructura de un DBF puede dar error si existe un campo llamado I o X (Arreglado en v1.19.49.7)
|
* 11/01/2018 Francisco Prieto Reporte Bug v1.19.49: Cuando se convierte la estructura de un DBF puede dar error si existe un campo llamado I o X (Arreglado en v1.19.49.7)
|
||||||
|
* 30/01/2018 Kirides Reporte Bug v1.19.49: Cuando se convierte a texto una libreria corrupta con registros duplicados, se genera el error "The specified key already exists" (Arreglado en v1.19.49.9)
|
||||||
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -13927,6 +13929,29 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE ignoreCorruptedObjects(lcCursor)
|
||||||
|
* Issue#17 - Error, The specified key already exists
|
||||||
|
* Para evitar este error se deben ignorar los objetos corruptos (duplicados)
|
||||||
|
* Se identifican porque la clase principal el campo Reserved1 tiene vacio en vez de "Class"
|
||||||
|
LOCAL lcParentObjName, lcSetDeleted
|
||||||
|
SELECT (lcCursor)
|
||||||
|
lcSetDeleted = SET("Deleted")
|
||||||
|
SET DELETED OFF
|
||||||
|
|
||||||
|
SCAN FOR PLATFORM = "WINDOWS" AND EMPTY(Parent) AND EMPTY(Reserved1)
|
||||||
|
lcParentObjName = LOWER(OBJNAME)
|
||||||
|
DELETE
|
||||||
|
SKIP
|
||||||
|
DELETE REST WHILE GETWORDNUM(LOWER(PARENT) + '.', 1, '.') == lcParentObjName
|
||||||
|
SKIP -1
|
||||||
|
ENDSCAN
|
||||||
|
|
||||||
|
SET DELETED &lcSetDeleted.
|
||||||
|
RETURN
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE ignoreIncorrectDefinedObjects(lcCursor)
|
PROCEDURE ignoreIncorrectDefinedObjects(lcCursor)
|
||||||
* Issue#15 - VFP Designer ignored objects should be ignored by FoxBin2Prg
|
* Issue#15 - VFP Designer ignored objects should be ignored by FoxBin2Prg
|
||||||
LOCAL lcObjName, lcParent, lcParentObjName, loObjs as Collection
|
LOCAL lcObjName, lcParent, lcParentObjName, loObjs as Collection
|
||||||
@@ -13948,7 +13973,10 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
* NOTA: Del parent solo se puede comprobar el objeto primario.
|
* NOTA: Del parent solo se puede comprobar el objeto primario.
|
||||||
IF loObjs.GetKey(GETWORDNUM(lcParent + '.', 1, '.')) > 0
|
IF loObjs.GetKey(GETWORDNUM(lcParent + '.', 1, '.')) > 0
|
||||||
* Existe: se agrega al array el nuevo objeto
|
* Existe: se agrega al array el nuevo objeto
|
||||||
loObjs.Add( '', lcParentObjName )
|
* NOTA: Podría estar duplicado, pero no se trata ese caso aquí
|
||||||
|
IF NOT EMPTY(lcParentObjName) AND loObjs.GetKey(lcParentObjName) = 0
|
||||||
|
loObjs.Add( '', lcParentObjName )
|
||||||
|
ENDIF
|
||||||
ELSE
|
ELSE
|
||||||
* No existe: se ignora
|
* No existe: se ignora
|
||||||
DELETE
|
DELETE
|
||||||
@@ -15353,7 +15381,10 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
|
|||||||
lnStepCount = 7
|
lnStepCount = 7
|
||||||
USE IN (SELECT("_TABLAORIG"))
|
USE IN (SELECT("_TABLAORIG"))
|
||||||
|
|
||||||
* Issue#15: Ignorar objetos mal definidos
|
* Issue#17: Error, The Specified Key already exists (Kirides)
|
||||||
|
.ignoreCorruptedObjects('TABLABIN')
|
||||||
|
|
||||||
|
* Issue#15: Ignorar objetos mal definidos (Doug Hennig)
|
||||||
.ignoreIncorrectDefinedObjects('TABLABIN')
|
.ignoreIncorrectDefinedObjects('TABLABIN')
|
||||||
|
|
||||||
INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ ADDITIVE
|
INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ ADDITIVE
|
||||||
|
|||||||
Reference in New Issue
Block a user