Changeset: 126 - v1.16 // Agregado soporte bidireccional para conversión de Menus // Agregada clave HomeDir en generación de Proyectos a texto para saber ubicación original al regenerar el proyecto en un dir.temporal // Mejora del backup: Ahora también se hace de los archivos de texto // Optimizaciones varias, limpieza de código, refactorizaciones

This commit is contained in:
fernando
2014-01-02 02:24:06 +01:00
6 changed files with 2935 additions and 421 deletions

View File

@@ -1,41 +1,45 @@
02/12/2013 FOXBIN2PRG VER.1.7 FOR VISUAL FOXPRO 9 Fernando D. Bozzo (fdbozzo@gmail.com) 21/12/2013 FOXBIN2PRG VER.1.15 FOR VISUAL FOXPRO 9 BINARIES Fernando D. Bozzo (fdbozzo@gmail.com)
ESPA<EFBFBD>OL -------------------------------------------------------------------------------------------- ESPAÑOL --------------------------------------------------------------------------------------------
<EFBFBD>Que es FOXBIN2PRG? ¿Que es FOXBIN2PRG?
Es un programa pensado para ser usado con herramientas SCM (Source Code Managers) que pretende Es un programa pensado para ser usado con herramientas SCM (Source Code Managers) que pretende
sustituir a SCCTEXT y mejorarlo, generando versiones TEXTO bidireccionales que permiten volver sustituir a SCCTEXT y mejorarlo, generando versiones TEXTO bidireccionales que permiten volver
a generar el archivo binario original. a generar el archivo binario original.
Ventajas: Ventajas:
- Genera versiones tipo "PRG" (no compilables), para comparaci<EFBFBD>n visual - Genera versiones tipo "PRG" (no compilables), para comparación visual
- Permite modificar la versi<EFBFBD>n TEXTO tan f<EFBFBD>cilmente como si se modificara un PRG - Permite modificar la versión TEXTO tan fácilmente como si se modificara un PRG
- Todo el c<EFBFBD>digo del programa est<EFBFBD> en un solo PRG, para simplificar su copia y mantenimiento - Todo el código del programa está en un solo PRG, para simplificar su copia y mantenimiento
- Con las versiones TEXTO se pueden volver a generar los binarios, lo que sirve como backup - Con las versiones TEXTO se pueden volver a generar los binarios, lo que sirve como backup
- Las extensiones son configurables si se crea un archivo FOXBIN2PRG.CFG - Las extensiones son configurables si se crea un archivo FOXBIN2PRG.CFG
- Los m<EFBFBD>todos y propiedades de la versi<EFBFBD>n TEXTO se ordenan alfab<EFBFBD>ticamente para facilitar su comparaci<EFBFBD>n - Los métodos y propiedades de la versión TEXTO se ordenan alfabéticamente para facilitar su comparación
- Tiene compatibilidad con SCCTEXT a nivel de par<EFBFBD>metros para usarlo como sustituto en SourceSafe - Tiene compatibilidad con SCCTEXT a nivel de parámetros para usarlo como sustituto en SourceSafe
Actualmente soporta las conversiones de archivos SCX, VCX y PJX, para los que genera las versiones TEXTO Actualmente soporta las conversiones de archivos PJX,SCX,VCX,FRX,LBX,DBC y DBF para los que genera las
con extensi<EFBFBD>n SC2,VC2 y PJ2, que pueden reconfigurarse para compatibilizar con SourceSafe. versiones TEXTO con extensión PJ2,SC2,VC2,FR2,LB2,DC2 y DB2, que pueden reconfigurarse para compatibilizar
con SourceSafe.
Estructura del archivo de configuraci<EFBFBD>n FOXBIN2PRG.CFG Estructura del archivo de configuración FOXBIN2PRG.CFG
extension: SC2=SCA extension: SC2=SCA
extension: VC2=VCA extension: VC2=VCA
extension: PJ2=PJA extension: PJ2=PJA
USO: USO:
DO FOXBIN2PRG.PRG WITH "<ruta>\archivo.scx" ==> Genera la versi<EFBFBD>n TEXTO con extensi<EFBFBD>n sc2 DO FOXBIN2PRG.PRG WITH "<ruta>\archivo.scx" ==> Genera la versión TEXTO con extensión sc2
DO FOXBIN2PRG.PRG WITH "<ruta>\archivo.sc2" ==> Regenera la versi<EFBFBD>n binaria con extensi<EFBFBD>n scx DO FOXBIN2PRG.PRG WITH "<ruta>\archivo.sc2" ==> Regenera la versión binaria con extensión scx
TRUCO UTIL:
Se puede crear un acceso directo en la carpeta "SendTo" del perfil del usuario, para poder "enviar"
el archivo elegido (pjx,pj2,etc) a Foxbin2prg.exe, y así se hacen conversiones al vuelo.
NOTA FINAL: NOTA FINAL:
Este programa es Open Source y "libre", y como tal no ofrezco garant<EFBFBD>as de que cumpla con sus espectativas Este programa es Open Source y "libre", y como tal no ofrezco garantías de que cumpla con sus espectativas
o de que est<EFBFBD> libre de fallos, que intentar<EFBFBD> solucionar si me reporta y mis obligaciones me lo permiten. o de que está libre de fallos, que intentaré solucionar si me reporta y mis obligaciones me lo permiten.
LICENCIA: LICENCIA:
Esta obra est<EFBFBD> sujeta a la licencia Reconocimiento-CompartirIgual 4.0 Internacional de Creative Commons. Esta obra está sujeta a la licencia Reconocimiento-CompartirIgual 4.0 Internacional de Creative Commons.
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_ES. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_ES.
@@ -56,8 +60,9 @@ Advantages:
- Methods and properties of TEXT version are alphabetically sorted for easy comparison - Methods and properties of TEXT version are alphabetically sorted for easy comparison
- It has compatibility with SCCTEXT at parameter level so can be used as sustitute with SourceSafe - It has compatibility with SCCTEXT at parameter level so can be used as sustitute with SourceSafe
Actually supports conversions between SCX, VCX and PJX files, for which it generates TEXT versions Actually supports conversions between PJX,SCX,VCX,FRX,LBX,DBC and DBF files, for which it generates
with extension SC2,VC2 and PJ2, that can be reconfigured to compatibilize with SourceSafe. TEXT versions with extension PJ2,SC2,VC2,FR2,LB2,DC2 and DB2 that can be reconfigured to compatibilize
with SourceSafe.
Structure of configuration file FOXBIN2PRG.CFG Structure of configuration file FOXBIN2PRG.CFG
extension: SC2=SCA extension: SC2=SCA
@@ -68,6 +73,10 @@ USE:
DO FOXBIN2PRG.PRG WITH "<ruta>\archivo.scx" ==> Generates the TEXT version sc2 extension DO FOXBIN2PRG.PRG WITH "<ruta>\archivo.scx" ==> Generates the TEXT version sc2 extension
DO FOXBIN2PRG.PRG WITH "<ruta>\archivo.sc2" ==> Regenerates the binary version with scx extension DO FOXBIN2PRG.PRG WITH "<ruta>\archivo.sc2" ==> Regenerates the binary version with scx extension
USEFUL TRICK:
You can create a shortcut in the "SendTo" folder on your user Windows Profile, so you can "send"
the selected file (pjx,pj2,etc) to Foxbin2prg.exe, and make on-the-fly conversions.
FINAL NOTE: FINAL NOTE:
This program is Open Source and "libre", and I don't make any garanties that it fulfills your espectations This program is Open Source and "libre", and I don't make any garanties that it fulfills your espectations

View File

@@ -24,12 +24,12 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__doBackup AS FxuTestCase OF FxuTes
******************************************************************************************************************************************* *******************************************************************************************************************************************
FUNCTION SETUP FUNCTION SETUP
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG" LOCAL loObj AS c_foxbin2prg OF "FOXBIN2PRG.PRG"
SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG') oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG')
oFXU_LIB.setup_comun() oFXU_LIB.setup_comun()
THIS.icObj = NEWOBJECT("c_conversor_bin_a_prg", "FOXBIN2PRG.PRG") THIS.icObj = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
loObj = THIS.icObj loObj = THIS.icObj
loObj.l_Test = .T. loObj.l_Test = .T.
@@ -59,7 +59,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__doBackup AS FxuTestCase OF FxuTes
#IF .F. #IF .F.
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG' PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
#ENDIF #ENDIF
LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG" LOCAL loObj AS c_foxbin2prg OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj loObj = THIS.icObj
IF PCOUNT() = 0 IF PCOUNT() = 0
@@ -67,7 +67,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__doBackup AS FxuTestCase OF FxuTes
RETURN .T. RETURN .T.
ENDIF ENDIF
IF ISNULL(toEx) IF VARTYPE(toEx) <> 'O'
*-- Visualizaci<63>n de valores *-- Visualizaci<63>n de valores
THIS.messageout( 'BackFile_1: ' + TRANSFORM(tcBackFile_1) ) THIS.messageout( 'BackFile_1: ' + TRANSFORM(tcBackFile_1) )
THIS.messageout( 'BackFile_2: ' + TRANSFORM(tcBackFile_2) ) THIS.messageout( 'BackFile_2: ' + TRANSFORM(tcBackFile_2) )
@@ -76,7 +76,9 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__doBackup AS FxuTestCase OF FxuTes
*-- Evaluaci<63>n de valores *-- Evaluaci<63>n de valores
THIS.assertequals( .T., FILE(tcBackFile_1), "Existencia del archivo " + tcBackFile_1 ) THIS.assertequals( .T., FILE(tcBackFile_1), "Existencia del archivo " + tcBackFile_1 )
THIS.assertequals( .T., FILE(tcBackFile_2), "Existencia del archivo " + tcBackFile_2 ) IF NOT EMPTY(tcBackFile_2)
THIS.assertequals( .T., FILE(tcBackFile_2), "Existencia del archivo " + tcBackFile_2 )
ENDIF
IF NOT EMPTY(tcBackFile_3) IF NOT EMPTY(tcBackFile_3)
THIS.assertequals( .T., FILE(tcBackFile_3), "Existencia del archivo " + tcBackFile_3 ) THIS.assertequals( .T., FILE(tcBackFile_3), "Existencia del archivo " + tcBackFile_3 )
ENDIF ENDIF
@@ -102,7 +104,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__doBackup AS FxuTestCase OF FxuTes
LOCAL lnCodError, lcMenError, lnCodError_Esperado ; LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
, lcMemo, lcMemo_Salida, lcMemo_Esperado, lcBackFile_1, lcBackFile_2, lcBackFile_3 ; , lcMemo, lcMemo_Salida, lcMemo_Esperado, lcBackFile_1, lcBackFile_2, lcBackFile_3 ;
, loEx AS EXCEPTION , loEx AS EXCEPTION
LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG" LOCAL loObj AS c_foxbin2prg OF "FOXBIN2PRG.PRG"
loObj = THIS.icObj loObj = THIS.icObj
loEx = NULL loEx = NULL
loObj.c_OutputFile = FORCEPATH( 'FB2P_DBC.DBC', oFXU_LIB.cPathDatosTest ) loObj.c_OutputFile = FORCEPATH( 'FB2P_DBC.DBC', oFXU_LIB.cPathDatosTest )

88
foxbin2prg.pj2 Normal file
View File

@@ -0,0 +1,88 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.16" SourceFile="C:\DESA\foxbin2prg\foxbin2prg.pjx" Generated="2014/01/02 02:21:13" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
LPARAMETERS tcDir
lcCurdir = SYS(5)+CURDIR()
CD ( EVL( tcDir, JUSTPATH( SYS(16) ) ) )
*<DevInfo>
_Autor = "Fernando D. Bozzo"
_Company = ""
_Address = ""
_City = "Coslada"
_State = "MAD"
_PostalCode = "28823"
_Country = "Spain"
*--
_Comments = "Conversor bidireccional de binarios FoxPro 9 (scx,vcx,pjx) a texto para sustituir al scctext :-)"
_CompanyName = "Fernando D. Bozzo"
_FileDescription = "Conversor bidireccional de binarios FoxPro 9 (scx,vcx,pjx) a texto para sustituir al scctext :-)"
_LegalCopyright = "Open Source - LICENCIA Creative Commons: Reconocimiento - CompartirIgual (by-sa): http://es.creativecommons.org/blog/licencias/"
_LegalTrademark = "Open Source"
_ProductName = " FOXBIN2PRG"
_MajorVer = "1"
_MinorVer = "16"
_Revision = " 144"
_LanguageID = "1034"
_AutoIncrement = "1"
*</DevInfo>
*<BuildProj>
*<.HomeDir = 'c:\desa\foxbin2prg' />
FOR EACH loProject IN _VFP.Projects FOXOBJECT
loProject.Close()
ENDFOR
STRTOFILE( '', '__newproject.f2b' )
BUILD PROJECT foxbin2prg.pjx FROM '__newproject.f2b'
FOR EACH loProject IN _VFP.Projects FOXOBJECT
loProject.Close()
ENDFOR
MODIFY PROJECT 'foxbin2prg.pjx' NOWAIT NOSHOW NOPROJECTHOOK
loProject = _VFP.Projects('foxbin2prg.pjx')
WITH loProject.FILES
.ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" />
.ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1143083468" ID="1130644423" ObjRev="544" />
*</BuildProj>
.ITEM('__newproject.f2b').Remove()
*<FileComments>
.ITEM(lcCurdir + 'foxbin2prg.prg').Description = 'Conversor'
*</FileComments>
*<ExcludedFiles>
*</ExcludedFiles>
*<TextFiles>
.ITEM(lcCurdir + 'config\config.fpw').Type = 'T'
*</TextFiles>
ENDWITH
WITH loProject
*<ProjectProperties>
.SetMain(lcCurdir + 'foxbin2prg.prg')
.Debug = .T.
.Encrypted = .F.
*<.CmntStyle = 1 />
*<.NoLogo = .F. />
*<.SaveCode = .T. />
.ProjectHookLibrary = ''
.ProjectHookClass = ''
*</ProjectProperties>
ENDWITH
_VFP.Projects('foxbin2prg.pjx').Close()
*ERASE '__newproject.f2b'
CD (lcCurdir)
RETURN

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff