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:
45
README.txt
45
README.txt
@@ -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
|
||||||
|
|||||||
@@ -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
88
foxbin2prg.pj2
Normal 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
|
||||||
BIN
foxbin2prg.pjt
BIN
foxbin2prg.pjt
Binary file not shown.
BIN
foxbin2prg.pjx
BIN
foxbin2prg.pjx
Binary file not shown.
3203
foxbin2prg.prg
3203
foxbin2prg.prg
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user