diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index a9275e1..fe78a31 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -2,8 +2,8 @@ Lparameters toUpdateInfo Local lcNote With toUpdateInfo - .VersionNumber = 'v1.19.46' - .VersionDate = Date(2016,02,06) + .VersionNumber = 'v1.19.47' + .VersionDate = Date(2016,02,10) .SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip' .Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG' @@ -17,6 +17,9 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg Change History ------------------------------------------------------------- +2016/02/10 v1.19.47 +- Bug Fix: When a filename "*" is specified with a type "*", an automatic regeneration of all binary files is made from text files (Alejandro Sosa) + 2016/02/06 v1.19.46 - Bug Fix: set_UserValue() method causes error when trying to get information about another error and the VFP binary table can not be opened (ie, because corrupted memo) - Feature: Added internal support for querying directory cfg information, with a new optional parameter, for API methods that require it (ie: get_Ext2FromExt, hasSupport*) diff --git a/foxbin2prg.exe b/foxbin2prg.exe index 856974a..c46a8c7 100644 Binary files a/foxbin2prg.exe and b/foxbin2prg.exe differ diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 65e0f7b..190b5c3 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 = "46" +_Revision = "47" _LanguageID = "1034" _AutoIncrement = "0" * diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 1752025..fec17fc 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index ed05983..7254432 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 7877070..66ac7d6 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -182,6 +182,7 @@ * 25/11/2015 FDBOZZO v1.19.46 Bug Fix Pj2: Se genera un error al regenerar un PJX desde un PJ2 donde algún archivo contiene paréntesis (EddieC) * 25/11/2015 FDBOZZO v1.19.46 Mejora dbf: Nuevo parámetro ExcludeDBFAutoincNextval para evitar diferencias por este dato (edyshor) * 04/02/2016 FDBOZZO v1.19.46 Bug Fix: Cuando se procesa un archivo en el directorio raiz, se genera un error 2062 (Aurélien Dellieux) +* 10/02/2016 FDBOZZO v1.19.46 Bug Fix: Cuando se indica como nombre de archivo "*" y como tipo "*", se regeneran automáticamente todos los archivos binarios desde los archivos de texto (Alejandro Sosa) * * *--------------------------------------------------------------------------------------------------- @@ -282,6 +283,7 @@ * 20/11/2015 EddieC Reporte bug Pjx v1.19.45: Se genera un error al regenerar un PJX desde un PJ2 donde algún archivo contiene paréntesis (Arreglado en v1.19.46 Preview-9) * 24/11/2015 edyshor Mejora dbf v1.19.45: Nuevo parámetro ExcludeDBFAutoincNextval para evitar diferencias por este dato (Agregado en v1.19.46 Preview-9) * 01/02/2016 Aurélien Dellieux Reporte bug v1.19.45: Cuando se procesa un archivo en el directorio raiz, se genera un error 2062 (Arreglado en v1.19.46 Preview-10) +* 10/02/2016 Alejandro Sosa Reporte bug v1.19.46: Cuando se indica como nombre de archivo "*" y como tipo "*", se regeneran automáticamente todos los archivos binarios desde los archivos de texto (Arreglado en v1.19.47 Preview-1) * * *--------------------------------------------------------------------------------------------------- @@ -2764,6 +2766,10 @@ DEFINE CLASS c_foxbin2prg AS Session ENDCASE ENDIF + CASE EMPTY( JUSTEXT( EVL(tc_InputFile,'') ) ) + *-- NO SE INDICÓ NINGUNA EXTENSIÓN + ERROR loLang.C_INVALID_PARAMETER_LOC + ': cInputFile = "' + tc_InputFile + '"' + OTHERWISE *-- DEMÁS ARCHIVOS *-- Filespec: "*.EXT" @@ -3920,7 +3926,7 @@ DEFINE CLASS c_foxbin2prg AS Session *-- Verifico si el carácter es un separador de cadenas: '"[ X = AT( SUBSTR(lcStr, I, 1), lcSeparadoresIzq) - + IF X > 0 THEN lnAT1 = AT(laSeparador(X,1), lcStr) ENDIF @@ -4582,7 +4588,7 @@ DEFINE CLASS c_foxbin2prg AS Session ENDPROC - FUNCTION WScriptShell_Run + FUNCTION wscriptshell_run * Modificación basada en la rutina RunExitCode.prg de William GC Steinford (nov 2002) * pero compatible con el método Run de WScript.Shell para su reemplazo cuando no es posible usarlo. * http://fox.wikis.com/wc.dll?Wiki~ProcessExitCode @@ -4730,8 +4736,8 @@ DEFINE CLASS c_foxbin2prg AS Session * HKEY hkeyClass; 4 * DWORD dwHotKey; 4 * union { - * HANDLE hIcon; - * HANDLE hMonitor; + * HANDLE hIcon; + * HANDLE hMonitor; * } DUMMYUNIONNAME; 4 * HANDLE hProcess; 4 *} SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO; @@ -4772,7 +4778,7 @@ DEFINE CLASS c_foxbin2prg AS Session * TerminateProcess(ln_hProcess, 0) *ENDIF ENDIF - + ELSE IF tlDebug ? "Could not create process" @@ -6387,7 +6393,7 @@ DEFINE CLASS c_conversor_base AS Custom *-- Verifico si el carácter es un separador de cadenas: '"[ X = AT( SUBSTR(lcStr, I, 1), lcSeparadoresIzq) - + IF X > 0 THEN lnAT1 = AT(laSeparador(X,1), lcStr) ENDIF @@ -11688,9 +11694,9 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin IF C_DATA_F $ tcLine && Fin del valor lcValue = lcValue + CR_LF + STREXTRACT( tcLine, '', C_DATA_F ) - + *-- Ajustes: En los labels, no se usa CR+LF, sino que se usa solo CR - IF toReg.objType = "5" THEN + IF toReg.ObjType = "5" THEN lcValue = STRTRAN(lcValue, CR_LF, C_CR) ENDIF @@ -16377,9 +16383,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() *SELECT * FROM _TABLAORIG ; - WHERE ObjType IN (1,25,26) ; - ORDER BY ObjType ASC ; - INTO CURSOR TABLABIN_0 READWRITE + WHERE ObjType IN (1,25,26) ; + ORDER BY ObjType ASC ; + INTO CURSOR TABLABIN_0 READWRITE *-- Arreglo bug agrupación de controles. 29/10/2015 SELECT * FROM _TABLAORIG ; WHERE ObjType IN (1,25,26) ; @@ -17136,7 +17142,7 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM *-- Verifico si el carácter es un separador de cadenas: '"[ X = AT( SUBSTR(lcStr, I, 1), lcSeparadoresIzq) - + IF X > 0 THEN lnAT1 = AT(laSeparador(X,1), lcStr) ENDIF @@ -17311,7 +17317,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION *-- Verifico si el carácter es un separador de cadenas: '"[ X = AT( SUBSTR(lcStr, I, 1), lcSeparadoresIzq) - + IF X > 0 THEN lnAT1 = AT(laSeparador(X,1), lcStr) ENDIF @@ -23031,7 +23037,7 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE *-- of DBF with this field. taFields(I,17) = 1 ENDIF - + lcText = lcText + loField.toText( @taFields, I ) ENDFOR @@ -23639,10 +23645,10 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE DO CASE CASE lcFieldType == 'G' luValue = 'GENERAL FIELD NOT SUPPORTED' - *CASE lcFieldType == 'W' - * luValue = 'BLOB FIELD NOT SUPPORTED' - *CASE lcFieldType == 'Q' - * luValue = 'VARBINARY FIELD NOT SUPPORTED' + *CASE lcFieldType == 'W' + * luValue = 'BLOB FIELD NOT SUPPORTED' + *CASE lcFieldType == 'Q' + * luValue = 'VARBINARY FIELD NOT SUPPORTED' OTHERWISE luValue = EVALUATE(lcField) ENDCASE