Changeset: 293 fdbozzo - 14/06/2014 17:24:06:
- Bug Fix: Un campo de tabla llamado "text" que comienza la línea puede confundirse con la estructura TEXT/ENDTEXT y reconocer mal el resto del código (Mario Peschke) - Modificado el README.txt para que primero esté el texto en Inglés (Internacionalización)
This commit is contained in:
@@ -28,7 +28,7 @@ nExitCode = 0
|
||||
' 4=Don't show FoxBin2prg error modal messages
|
||||
' 8=Show end of process message
|
||||
' 16=Empty timestamps
|
||||
nDebug = 1+0+4+0+16
|
||||
nDebug = 1+0+4+8
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
|
||||
If WScript.Arguments.Count = 0 Then
|
||||
@@ -102,7 +102,7 @@ Else
|
||||
& cFlagRecompile & "," & cNoTimestamps & " )"
|
||||
End If
|
||||
If cFlagJustShowCall = "1" Then
|
||||
MsgBox cCMD, 64, "PARAMETROS ENVIADOS"
|
||||
MsgBox cCMD, 64, "PARAMETERS"
|
||||
Else
|
||||
oVFP9.DoCmd( cCMD )
|
||||
nExitCode = oVFP9.Eval("_SCREEN.ExitCode")
|
||||
@@ -115,7 +115,7 @@ Else
|
||||
oVFP9.DoCmd( "oFoxBin2prg = NULL" )
|
||||
|
||||
If GetBit(nDebug, 4) Then
|
||||
MsgBox "Fin del Proceso!", 64, WScript.ScriptName
|
||||
MsgBox "End of Process!", 64, WScript.ScriptName
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ nExitCode = 0
|
||||
' 4=Don't show FoxBin2prg error modal messages
|
||||
' 8=Show end of process message
|
||||
' 16=Empty timestamps
|
||||
nDebug = 1+0+4+0+16
|
||||
nDebug = 1+0+4+8
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
|
||||
If WScript.Arguments.Count = 0 Then
|
||||
@@ -109,7 +109,7 @@ Else
|
||||
& cFlagRecompile & "," & cNoTimestamps & " )"
|
||||
End If
|
||||
If cFlagJustShowCall = "1" Then
|
||||
MsgBox cCMD, 64, "PARAMETROS ENVIADOS"
|
||||
MsgBox cCMD, 64, "PARAMETERS"
|
||||
Else
|
||||
oVFP9.DoCmd( cCMD )
|
||||
nExitCode = oVFP9.Eval("_SCREEN.ExitCode")
|
||||
@@ -122,7 +122,7 @@ Else
|
||||
oVFP9.DoCmd( "oFoxBin2prg = NULL" )
|
||||
|
||||
If GetBit(nDebug, 4) Then
|
||||
MsgBox "Fin del Proceso!", 64, WScript.ScriptName
|
||||
MsgBox "End of Process!", 64, WScript.ScriptName
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
109
README.txt
109
README.txt
@@ -1,56 +1,8 @@
|
||||
26/01/2014 FOXBIN2PRG v1.19 FOR VISUAL FOXPRO 9 BINARIES Fernando D. Bozzo (fdbozzo@gmail.com)
|
||||
Blog: http://fdbozzo.blogspot.com.es/
|
||||
Project info: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg
|
||||
|
||||
|
||||
ESPAÑOL --------------------------------------------------------------------------------------------
|
||||
|
||||
¿Que es FOXBIN2PRG?
|
||||
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
|
||||
a generar el archivo binario original.
|
||||
|
||||
Ventajas:
|
||||
- Genera versiones tipo "PRG" (no compilables), para comparación visual
|
||||
- Permite modificar la versión TEXTO tan fácilmente como si se modificara un PRG
|
||||
- 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
|
||||
- Las extensiones son configurables si se crea un archivo FOXBIN2PRG.CFG
|
||||
- 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ámetros para usarlo como sustituto en SourceSafe
|
||||
|
||||
Actualmente soporta las conversiones de archivos PJX,SCX,VCX,FRX,LBX,DBC,DBF y MNX para los que genera las
|
||||
versiones TEXTO con extensión PJ2,SC2,VC2,FR2,LB2,DC2,DB2 y MN2, que pueden reconfigurarse para compatibilizar
|
||||
con SourceSafe.
|
||||
|
||||
Estructura del archivo de configuración FOXBIN2PRG.CFG
|
||||
extension: SC2=SCA
|
||||
extension: VC2=VCA
|
||||
extension: PJ2=PJA
|
||||
|
||||
USO:
|
||||
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ó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.
|
||||
|
||||
LOCALIZACIÓN:
|
||||
Si se crea un archivo [foxbin2prg.h], se pueden trasladar los textos a otros idiomas. Se adjunta
|
||||
un archivo de ejemplo [foxbin2prg_en.h] con la traslación al inglés.
|
||||
Es necesario recompilar el programa para que se actualicen los textos con el archivo include.
|
||||
|
||||
|
||||
NOTA FINAL:
|
||||
Este programa es Open Source y "libre", y como tal no ofrezco garantías de que cumpla con sus espectativas
|
||||
o de que está libre de fallos, que intentaré solucionar si me reporta y mis obligaciones me lo permiten.
|
||||
Project info and updated: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg
|
||||
|
||||
|
||||
LICENCIA:
|
||||
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.
|
||||
|
||||
ENGLISH/ESPAÑOL
|
||||
|
||||
|
||||
ENGLISH --------------------------------------------------------------------------------------------
|
||||
@@ -95,9 +47,64 @@ Recompiling is necesary to update the strings from the include file.
|
||||
FINAL NOTE:
|
||||
This program is Open Source and "libre", and I don't make any garanties that it fulfills your espectations
|
||||
or that it will be free of bugs, that I will try to fix if my obligations let me do it.
|
||||
Información del proyecto y actualizaciones: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg_es
|
||||
Project info and updated: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg
|
||||
|
||||
|
||||
LICENCE:
|
||||
This work is licensed under the Creative Commons Attribution 4.0 International License.
|
||||
To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.
|
||||
|
||||
|
||||
|
||||
|
||||
ESPAÑOL --------------------------------------------------------------------------------------------
|
||||
|
||||
¿Que es FOXBIN2PRG?
|
||||
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
|
||||
a generar el archivo binario original.
|
||||
|
||||
Ventajas:
|
||||
- Genera versiones tipo "PRG" (no compilables), para comparación visual
|
||||
- Permite modificar la versión TEXTO tan fácilmente como si se modificara un PRG
|
||||
- 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
|
||||
- Las extensiones son configurables si se crea un archivo FOXBIN2PRG.CFG
|
||||
- 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ámetros para usarlo como sustituto en SourceSafe
|
||||
|
||||
Actualmente soporta las conversiones de archivos PJX,SCX,VCX,FRX,LBX,DBC,DBF y MNX para los que genera las
|
||||
versiones TEXTO con extensión PJ2,SC2,VC2,FR2,LB2,DC2,DB2 y MN2, que pueden reconfigurarse para compatibilizar
|
||||
con SourceSafe.
|
||||
|
||||
Estructura del archivo de configuración FOXBIN2PRG.CFG
|
||||
extension: SC2=SCA
|
||||
extension: VC2=VCA
|
||||
extension: PJ2=PJA
|
||||
|
||||
USO:
|
||||
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ó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.
|
||||
|
||||
LOCALIZACIÓN:
|
||||
Si se crea un archivo [foxbin2prg.h], se pueden trasladar los textos a otros idiomas. Se adjunta
|
||||
un archivo de ejemplo [foxbin2prg_en.h] con la traslación al inglés.
|
||||
Es necesario recompilar el programa para que se actualicen los textos con el archivo include.
|
||||
|
||||
|
||||
NOTA FINAL:
|
||||
Este programa es Open Source y "libre", y como tal no ofrezco garantías de que cumpla con sus espectativas
|
||||
o de que está libre de fallos, que intentaré solucionar si me reporta y mis obligaciones me lo permiten.
|
||||
Información del proyecto y actualizaciones: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg_es
|
||||
|
||||
|
||||
LICENCIA:
|
||||
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.
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -158,4 +158,81 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_NoEncontrarNingunBloque_TEXT_ENDTEXT_CuandoUnaLineaQueComienzaConUnCampoLlamado_Text_esEvaluado
|
||||
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2)
|
||||
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
|
||||
*-- Input and expected params
|
||||
STORE '' TO lcMethod
|
||||
laExpected_Pos(1,1) = 0
|
||||
laExpected_Pos(1,2) = 0
|
||||
|
||||
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2+4
|
||||
<<C_PROC>> myMethod_B
|
||||
*-- Code Block
|
||||
IF !FOUND()
|
||||
APPEND BLANK
|
||||
REPLACE CURSOR WITH "cawlmain", START WITH 1, END WITH 999999, isnumeric WITH .F., lastused WITH "", ; && Worst case for next line
|
||||
TEXT WITH "W<>rmeobjekte", standard WITH .T.
|
||||
ENDIF
|
||||
|
||||
*-- Code Block
|
||||
CREATE CURSOR vorlaufsatz (;
|
||||
Satzlaenge C(4),;
|
||||
Satzart C(2),;
|
||||
Folgekennz C(2),;
|
||||
Absender C(2),;
|
||||
Empfaenger C(2),;
|
||||
Rohdatum C(8),;
|
||||
RohZeit C(4),;
|
||||
LFDNr C(4),; && Worst case for next line
|
||||
Text C(26),;
|
||||
Trenner C(2),;
|
||||
DATUM D NULL,;
|
||||
ZEIT C(8) NULL,;
|
||||
KEYLINEID N(6,0) NULL )
|
||||
|
||||
*-- Code Block
|
||||
CREATE CURSOR eomaildbf (;
|
||||
adresse c(8) NULL DEFAULT .NULL.,;
|
||||
zaehler i AUTOINC NEXTVALUE 1 STEP 1,;
|
||||
startseite N(6) NOT NULL DEFAULT 0,;
|
||||
endseite N(6) NOT NULL DEFAULT 0,;
|
||||
vseite N(6) NOT NULL DEFAULT 0,;
|
||||
lfdnr c(30) NULL DEFAULT .NULL.,;
|
||||
linkkey int,;
|
||||
email CHAR(60) NULL DEFAULT .NULL.,;
|
||||
subject VARCHAR(254) NULL DEFAULT .NULL.,; && Worst case for next line
|
||||
TEXT m NULL DEFAULT .NULL.,;
|
||||
docname c(50) NULL DEFAULT .NULL.,;
|
||||
versenden l NOT NULL DEFAULT .F.,;
|
||||
signierung l NOT NULL DEFAULT .F.,;
|
||||
praefix c(10) NULL DEFAULT .NULL.,;
|
||||
signdatei VARCHAR(254) NULL DEFAULT .NULL.,;
|
||||
signiert l NOT NULL DEFAULT .F.,;
|
||||
ccemail VARCHAR(254) NULL DEFAULT .NULL.,;
|
||||
datei VARCHAR(254) NULL DEFAULT .NULL.)
|
||||
|
||||
*-- Code Block
|
||||
CREATE CURSOR c_prf_zeilen (;
|
||||
lauf I NULL, ;
|
||||
zeile I NOT NULL, ;
|
||||
Text C(200) NULL ;
|
||||
)
|
||||
|
||||
<<C_ENDPROC>>
|
||||
ENDTEXT
|
||||
|
||||
lnLineas = ALINES( laLineas, lcMethod )
|
||||
|
||||
*-- Test
|
||||
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laPos, @lnPos_Count )
|
||||
|
||||
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
ENDDEFINE
|
||||
|
||||
BIN
foxbin2prg.exe
BIN
foxbin2prg.exe
Binary file not shown.
@@ -23,10 +23,10 @@ _CompanyName = "Fernando D. Bozzo"
|
||||
_FileDescription = "Conversor bidireccional de binarios FoxPro 9 (scx,vcx,pjx) a texto para sustituir al scctext :-)"
|
||||
_LegalCopyright = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
|
||||
_LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
|
||||
_ProductName = " FOXBIN2PRG v1.19.23"
|
||||
_ProductName = " FOXBIN2PRG v1.19.24"
|
||||
_MajorVer = "1"
|
||||
_MinorVer = "19"
|
||||
_Revision = "23"
|
||||
_Revision = "24"
|
||||
_LanguageID = "1034"
|
||||
_AutoIncrement = "0"
|
||||
*</DevInfo>
|
||||
@@ -91,6 +91,7 @@ WITH loProject.FILES
|
||||
.ADD('props_xmladapter.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||
.ADD('props_xmlfield.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||
.ADD('props_xmltable.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||
.ADD('readme.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||
.ADD('tests\foxunit_path.txt') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||
.ADD('tests\ft__foxbin2prg__c_conversor_prg_a_dbc.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" />
|
||||
.ADD('tests\ft__foxbin2prg__c_conversor_prg_a_dbf.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" />
|
||||
@@ -118,6 +119,7 @@ WITH loProject.FILES
|
||||
*</FileComments>
|
||||
|
||||
*<ExcludedFiles>
|
||||
.ITEM(lcCurdir + 'readme.txt').Exclude = .T.
|
||||
.ITEM(lcCurdir + 'tests\foxunit_path.txt').Exclude = .T.
|
||||
.ITEM(lcCurdir + 'tests\ft__foxbin2prg__c_conversor_prg_a_dbc.prg').Exclude = .T.
|
||||
.ITEM(lcCurdir + 'tests\ft__foxbin2prg__c_conversor_prg_a_dbf.prg').Exclude = .T.
|
||||
|
||||
BIN
foxbin2prg.pjt
BIN
foxbin2prg.pjt
Binary file not shown.
BIN
foxbin2prg.pjx
BIN
foxbin2prg.pjx
Binary file not shown.
@@ -1,6 +1,7 @@
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
* M<>dulo.........: FOXBIN2PRG.PRG - PARA VISUAL FOXPRO 9.0
|
||||
* Autor..........: Fernando D. Bozzo (mailto:fdbozzo@gmail.com) - http://fdbozzo.blogspot.com
|
||||
* Project info...: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg
|
||||
* Fecha creaci<63>n.: 04/11/2013
|
||||
*
|
||||
* LICENCIA:
|
||||
@@ -84,7 +85,9 @@
|
||||
* 17/04/2014 FDBOZZO v1.19.20 Relativizaci<63>n de directorios de CDX dentro de los DB2 para minimizar diferencias
|
||||
* 29/04/2014 FDBOZZO v1.19.21 Agregada posibilidad de convertir un proyecto entero a tx2 // Optimizaciones en generaci<63>n seg<65>n timestamps // AGAIN en aperturas // Simplificaci<63>n secci<63>n PAM
|
||||
* 08/05/2014 FDBOZZO v1.19.22 Arreglo bug vcx/scx: La propiedad Picture de una clase form se pierde y no muestra la imagen
|
||||
* 27/05/2014 FDBOZZO v1.19.23 Arreglo bugs vcx/scx: Redimensionamiento incorrecto de imagenes en ciertas situaciones (props_image.txt y props_optiongroup.txt actualizados)
|
||||
* 27/05/2014 FDBOZZO v1.19.23 Arreglo bug vcx/scx: Redimensionamiento incorrecto de imagenes en ciertas situaciones (props_image.txt y props_optiongroup.txt actualizados)
|
||||
* 09/06/2014 FDBOZZO v1.19.24 Arreglo bug vcx/scx: La falta de AGAIN en algunos comandos USE provoca error de "tabla en uso" si se usa el PRG desde la ventana de comandos
|
||||
* 14/06/2014 FDBOZZO v1.19.24 Arreglo bug vcx/scx: Un campo de tabla llamado "text" que comienza la l<>nea puede confundirse con la estructura TEXT/ENDTEXT y reconocer mal el resto del c<>digo
|
||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||
*
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
@@ -115,6 +118,8 @@
|
||||
* 09/05/2014 Miguel Dur<75>n REPORTE BUG vcx/scx v1.19.21: Algunas opciones del optiongroup pierden el width cuando se subclasan de una clase con autosize=.T. (Arreglado en v1.19.22)
|
||||
* 13/05/2014 Andr<64>s Mendoza REPORTE BUG vcx/scx v1.19.21: Los m<>todos que contengan l<>neas o variables que comiencen con TEXT, provocan que los siguientes m<>todos queden mal indentados y se dupliquen vac<61>os (Arreglado en v1.19.22)
|
||||
* 27/05/2014 Kenny Vermassen REPORTE DE BUG img v1.19.22: La propiedad Stretch no estaba incluida en la lista de propiedades props_image.txt, lo que provocaba un mal redimensionamiento de las imagenes en ciertas situaciones (Arreglado en v1.19.23)
|
||||
* 09/06/2014 Matt Slay REPORTE BUG vcx/scx v1.19.23: La falta de AGAIN en algunos comandos USE provoca error de "tabla en uso" si se usa el PRG desde la ventana de comandos (Arreglado en v1.19.24)
|
||||
* 13/06/2014 Mario Peschke REPORTE BUG vcx/scx v1.19.23: Los campos de tabla con nombre "text" a veces provocan corrupci<63>n del binario generado (Arreglado en v1.19.24)
|
||||
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
||||
*
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
@@ -3304,7 +3309,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
||||
EXTERNAL ARRAY ta_ID_Bloques, taBloquesExclusion
|
||||
|
||||
TRY
|
||||
LOCAL lnBloques, I, X, lnPrimerID, lnLen_IDFinBQ, lnID_Bloques_Count, lcWord, lnAnidamientos
|
||||
LOCAL lnBloques, I, X, lnPrimerID, lnLen_IDFinBQ, lnID_Bloques_Count, lcWord, lnAnidamientos, lcLine, lcPrevLine
|
||||
DIMENSION taBloquesExclusion(1,2)
|
||||
STORE 0 TO tnBloquesExclusion, lnPrimerID, I, X, lnLen_IDFinBQ
|
||||
|
||||
@@ -3340,6 +3345,15 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
||||
ENDFOR
|
||||
|
||||
IF lnPrimerID > 0 && Se ha identificado un ID de bloque excluyente
|
||||
IF I > 1
|
||||
*-- Analizo la l<>nea anterior para saber si termina con ";" y la actual es continuaci<63>n
|
||||
lcPrevLine = taCodeLines(I-1)
|
||||
.get_SeparatedLineAndComment( @lcPrevLine )
|
||||
IF RIGHT( lcPrevLine,1 ) = ';' && Esta l<>nea es continuaci<63>n de la anterior
|
||||
LOOP
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
tnBloquesExclusion = tnBloquesExclusion + 1
|
||||
lnLen_IDFinBQ = LEN( ta_ID_Bloques(lnPrimerID,2) )
|
||||
DIMENSION taBloquesExclusion(tnBloquesExclusion,2)
|
||||
|
||||
Reference in New Issue
Block a user