Changeset: 419 v1.19.31
- Limpieza de código basura en campo methods, normalmente puesto por programas como ReFox y otros - Agregada versión del EXE cuando se genera LOG de depuración - Mejorado el reconocimiento de instrucciones #IF..#ENDIF cuando hay espacios entre # y el nombre de comando - Ajuste de capitalización de los archivos origen - Agregada nueva propiedad c_Language para conocer el lenguaje activo (EN,ES,DE,etc)
This commit is contained in:
@@ -2,8 +2,8 @@ Lparameters toUpdateInfo
|
||||
|
||||
Local lcNote
|
||||
With toUpdateInfo
|
||||
.VersionNumber = 'v1.19.30'
|
||||
.VersionDate = Date(2014,08,07)
|
||||
.VersionNumber = 'v1.19.31'
|
||||
.VersionDate = Date(2014,08,22)
|
||||
.SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip'
|
||||
|
||||
.Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG'
|
||||
@@ -17,6 +17,13 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg
|
||||
|
||||
Change History -------------------------------------------------------------
|
||||
|
||||
2014/08/22 v1.19.31
|
||||
- Trash cleanup code on binary methods, normally added by tools like ReFox and others
|
||||
- Added EXE version number when generating a debug LOG file
|
||||
- Enhanced recognition of #IF..#ENDIF instructions when there are spaces between # symbol and the command name
|
||||
- Added capitalization normalization for input files
|
||||
- Added new c_Language property for querying actual compiled language (EN,ES,DE,etc)
|
||||
|
||||
2014/08/07 v1.19.30
|
||||
- Bug Fix vcx/scx: Bad EndText block detection when the previous line ends with "," or ";" (Jim Nelson)
|
||||
- Bug Fix vcx/scx: Some methods are not alphabetically sorted in some inheritance situations (Ryan Harris)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
Const ForReading = 1
|
||||
Dim WSHShell, FileSystemObject
|
||||
Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), filename_caps_log
|
||||
Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), filename_caps_log, nRet
|
||||
Dim i, x, str_cfg, aConf
|
||||
Set WSHShell = WScript.CreateObject("WScript.Shell")
|
||||
Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject")
|
||||
@@ -91,7 +91,7 @@ Private Sub evaluateFile( tcFile )
|
||||
If cFlagJustShowCall = "1" Then
|
||||
MsgBox cCMD, 0, "PARAMETERS"
|
||||
Else
|
||||
oVFP9.DoCmd( cCMD )
|
||||
nRet = oVFP9.DoCmd( cCMD )
|
||||
'nExitCode = oVFP9.Eval("_SCREEN.ExitCode")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
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.30"
|
||||
_ProductName = " FOXBIN2PRG v1.19.31"
|
||||
_MajorVer = "1"
|
||||
_MinorVer = "19"
|
||||
_Revision = "30"
|
||||
_Revision = "31"
|
||||
_LanguageID = "1034"
|
||||
_AutoIncrement = "0"
|
||||
*</DevInfo>
|
||||
@@ -109,7 +109,7 @@ WITH loProject.FILES
|
||||
.ADD('tests\ut__foxbin2prg__c_conversor_prg_a_bin__analizarasignacion_tag_indicado.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" />
|
||||
.ADD('tests\ut__foxbin2prg__c_conversor_prg_a_bin__insert_allobjects.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" />
|
||||
.ADD('tests\ut__foxbin2prg__c_foxbin2prg__evaluarconfiguracion.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" />
|
||||
.ADD('tests\ut__foxbin2prg__c_foxbin2prg__filenamefoundinfilter.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||
.ADD('tests\ut__foxbin2prg__c_foxbin2prg__filenamefoundinfilter.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" />
|
||||
*</BuildProj>
|
||||
|
||||
.ITEM('__newproject.f2b').Remove()
|
||||
|
||||
BIN
foxbin2prg.pjt
BIN
foxbin2prg.pjt
Binary file not shown.
BIN
foxbin2prg.pjx
BIN
foxbin2prg.pjx
Binary file not shown.
176
foxbin2prg.prg
176
foxbin2prg.prg
@@ -98,6 +98,9 @@
|
||||
* 29/07/2014 FDBOZZO v1.19.29 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
|
||||
* 07/08/2014 FDBOZZO v1.19.30 Arreglo bug vcx/scx: Cuando la l<>nea anterior a un ENDTEXT termina en ";" o "," no se reconoce como ENDTEXT sino como continuaci<63>n (Jim Nelson)
|
||||
* 08/08/2014 FDBOZZO v1.19.30 Arreglo bug vcx/vct v1.19.29: En ciertos casos de herencia no se mantiene el orden alfabetico de algunos metodos (Ryan Harris)
|
||||
* 17/08/2014 FDBOZZO v1.19.31 Agregada versi<73>n del EXE cuando se genera LOG de depuraci<63>n
|
||||
* 20/08/2014 FDBOZZO v1.19.31 Mejora vcx/scx: Mejorado el reconocimiento de instrucciones #IF..#ENDIF cuando hay espacios entre # y el nombre de funci<63>n
|
||||
* 20/08/2014 FDBOZZO v1.19.31 Mejora: Ajuste de capitalizaci<63>n de los archivos origen, as<61> ya no hay que hacerlo manualmente
|
||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||
*
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
@@ -365,6 +368,7 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb
|
||||
#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "<22>FOXBIN2PRG es solo para Visual FoxPro 9.0!"
|
||||
#DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC "FOXBIN2PRG: <20>ATENCI<43>N!"
|
||||
#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "El Men<65> [<<THIS.c_InputFile>>] NO est<73> en formato VFP 9! - Por favor convertirlo a VFP 9 con MODIFY MENU <<JUSTFNAME((THIS.c_InputFile))>>"
|
||||
#DEFINE C_LANGUAGE_LOC "ES"
|
||||
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC "* Se ha encontrado el programa de capitalizaci<63>n de nombres [<<lcEXE_CAPS>>]"
|
||||
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC "* No se ha encontrado el programa de capitalizaci<63>n de nombres [<<lcEXE_CAPS>>]"
|
||||
#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Objeto [<<toObj.CLASS>>] no contiene el objeto oReg (nivel <<TRANSFORM(tnNivel)>>)"
|
||||
@@ -435,11 +439,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
#ENDIF
|
||||
_MEMBERDATA = [<VFPData>] ;
|
||||
+ [<memberdata name="convertir" display="Convertir"/>] ;
|
||||
+ [<memberdata name="c_fb2prg_exe_version" display="c_FB2PRG_EXE_Version"/>] ;
|
||||
+ [<memberdata name="c_curdir" display="c_CurDir"/>] ;
|
||||
+ [<memberdata name="c_errorlog" display="c_ErrorLog"/>] ;
|
||||
+ [<memberdata name="c_foxbin2prg_fullpath" display="c_Foxbin2prg_FullPath"/>] ;
|
||||
+ [<memberdata name="c_foxbin2prg_configfile" display="c_Foxbin2prg_ConfigFile"/>] ;
|
||||
+ [<memberdata name="c_inputfile" display="c_InputFile"/>] ;
|
||||
+ [<memberdata name="c_language" display="c_Language"/>] ;
|
||||
+ [<memberdata name="c_originalfilename" display="c_OriginalFileName"/>] ;
|
||||
+ [<memberdata name="c_outputfile" display="c_OutputFile"/>] ;
|
||||
+ [<memberdata name="c_type" display="c_Type"/>] ;
|
||||
@@ -521,6 +527,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
*-- Localized properties
|
||||
c_loc_processing_file = C_PROCESSING_LOC
|
||||
*--
|
||||
c_Language = 'ES'
|
||||
c_FB2PRG_EXE_Version = 0
|
||||
c_Foxbin2prg_FullPath = ''
|
||||
c_Foxbin2prg_ConfigFile = ''
|
||||
c_CurDir = ''
|
||||
@@ -582,7 +590,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
|
||||
|
||||
PROCEDURE INIT
|
||||
LOCAL lcSys16, lnPosProg
|
||||
LOCAL lcSys16, lnPosProg, lc_Foxbin2prg_EXE, laValues(1,5)
|
||||
SET DELETED ON
|
||||
SET DATE YMD
|
||||
SET HOURS TO 24
|
||||
@@ -599,11 +607,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
lnPosProg = 1
|
||||
ENDIF
|
||||
|
||||
THIS.c_Language = C_LANGUAGE_LOC
|
||||
THIS.c_Foxbin2prg_FullPath = SUBSTR( lcSys16, lnPosProg )
|
||||
THIS.c_Foxbin2prg_ConfigFile = FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'CFG' )
|
||||
THIS.c_CurDir = SYS(5) + CURDIR()
|
||||
THIS.o_FSO = NEWOBJECT("Scripting.FileSystemObject")
|
||||
THIS.o_Configuration = CREATEOBJECT("COLLECTION")
|
||||
lc_Foxbin2prg_EXE = FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'EXE' )
|
||||
THIS.c_FB2PRG_EXE_Version = IIF( AGETFILEVERSION( laValues, lc_Foxbin2prg_EXE ) = 0, TRANSFORM(THIS.n_FB2PRG_Version), laValues(4) )
|
||||
ADDPROPERTY(_SCREEN, 'ExitCode', 0)
|
||||
RETURN
|
||||
ENDPROC
|
||||
@@ -1491,7 +1502,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
lnCodError = 0
|
||||
|
||||
.writeLog( .c_Foxbin2prg_FullPath + CR_LF ;
|
||||
.writeLog( '---' )
|
||||
.writeLog( .c_Foxbin2prg_FullPath + ' (EXE Version: ' + .c_FB2PRG_EXE_Version + ')' + CR_LF ;
|
||||
+ C_TAB + 'tc_InputFile: ' + TRANSFORM(tc_InputFile) + CR_LF ;
|
||||
+ C_TAB + 'tcType: ' + TRANSFORM(tcType) + CR_LF;
|
||||
+ C_TAB + 'tcTextName: ' + TRANSFORM(tcTextName) + CR_LF ;
|
||||
@@ -1871,6 +1883,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
ENDIF
|
||||
|
||||
lcExtension = UPPER( JUSTEXT(.c_InputFile) )
|
||||
.normalizarCapitalizacionArchivos( .T. )
|
||||
|
||||
DO CASE
|
||||
CASE lcExtension = 'VCX'
|
||||
@@ -2166,9 +2179,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
|
||||
*******************************************************************************************************************
|
||||
PROCEDURE normalizarCapitalizacionArchivos
|
||||
LPARAMETERS tl_NormalizeInputFile
|
||||
|
||||
TRY
|
||||
LOCAL lcPath, lcEXE_CAPS, lcOutputFile, loEx AS EXCEPTION ;
|
||||
, loFSO AS Scripting.FileSystemObject
|
||||
, loFSO AS Scripting.FileSystemObject, lcType
|
||||
|
||||
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
|
||||
lcPath = JUSTPATH(.c_Foxbin2prg_FullPath)
|
||||
@@ -2199,40 +2214,82 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
|
||||
ENDCASE
|
||||
|
||||
.RenameFile( .c_OutputFile, lcEXE_CAPS, loFSO )
|
||||
IF tl_NormalizeInputFile
|
||||
lcType = UPPER( JUSTEXT( .c_InputFile ) )
|
||||
|
||||
DO CASE
|
||||
CASE .c_Type = 'PJX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'PJT'), lcEXE_CAPS, loFSO )
|
||||
*-- Normalizar archivo(s) de entrada. El primero siempre se normaliza (??2, ??X, DBF, DBC)
|
||||
.RenameFile( .c_InputFile, lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'VCX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'VCT'), lcEXE_CAPS, loFSO )
|
||||
DO CASE
|
||||
CASE lcType = 'PJX'
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'PJT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'SCX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'SCT'), lcEXE_CAPS, loFSO )
|
||||
CASE lcType = 'VCX'
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'VCT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'FRX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'FRT'), lcEXE_CAPS, loFSO )
|
||||
CASE lcType = 'SCX'
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'SCT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'LBX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'LBT'), lcEXE_CAPS, loFSO )
|
||||
CASE lcType = 'FRX'
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'FRT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'DBF'
|
||||
IF FILE( FORCEEXT(.c_OutputFile,'FPT') )
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'FPT'), lcEXE_CAPS, loFSO )
|
||||
ENDIF
|
||||
IF FILE( FORCEEXT(.c_OutputFile,'CDX') )
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'CDX'), lcEXE_CAPS, loFSO )
|
||||
ENDIF
|
||||
CASE lcType = 'LBX'
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'LBT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'DBC'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'DCX'), lcEXE_CAPS, loFSO )
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'DCT'), lcEXE_CAPS, loFSO )
|
||||
CASE lcType = 'DBF'
|
||||
IF FILE( FORCEEXT(.c_InputFile,'FPT') )
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'FPT'), lcEXE_CAPS, loFSO )
|
||||
ENDIF
|
||||
IF FILE( FORCEEXT(.c_InputFile,'CDX') )
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'CDX'), lcEXE_CAPS, loFSO )
|
||||
ENDIF
|
||||
|
||||
CASE .c_Type = 'MNX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'MNT'), lcEXE_CAPS, loFSO )
|
||||
CASE lcType = 'DBC'
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'DCX'), lcEXE_CAPS, loFSO )
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'DCT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
ENDCASE
|
||||
CASE lcType = 'MNX'
|
||||
.RenameFile( FORCEEXT(.c_InputFile,'MNT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
ENDCASE
|
||||
|
||||
ELSE
|
||||
*-- Normalizar archivo(s) de salida. El primero siempre se normaliza (??2, ??X, DBF, DBC)
|
||||
.RenameFile( .c_OutputFile, lcEXE_CAPS, loFSO )
|
||||
|
||||
DO CASE
|
||||
CASE .c_Type = 'PJX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'PJT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'VCX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'VCT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'SCX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'SCT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'FRX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'FRT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'LBX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'LBT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'DBF'
|
||||
IF FILE( FORCEEXT(.c_OutputFile,'FPT') )
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'FPT'), lcEXE_CAPS, loFSO )
|
||||
ENDIF
|
||||
IF FILE( FORCEEXT(.c_OutputFile,'CDX') )
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'CDX'), lcEXE_CAPS, loFSO )
|
||||
ENDIF
|
||||
|
||||
CASE .c_Type = 'DBC'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'DCX'), lcEXE_CAPS, loFSO )
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'DCT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
CASE .c_Type = 'MNX'
|
||||
.RenameFile( FORCEEXT(.c_OutputFile,'MNT'), lcEXE_CAPS, loFSO )
|
||||
|
||||
ENDCASE
|
||||
ENDIF
|
||||
ENDWITH && THIS
|
||||
|
||||
CATCH TO loEx
|
||||
@@ -2691,6 +2748,13 @@ DEFINE CLASS c_conversor_base AS SESSION
|
||||
LOCAL llEncontrado, lcWord
|
||||
|
||||
TRY
|
||||
*-- Pre-normalizaci<63>n
|
||||
lcLine = tcLine
|
||||
|
||||
IF LEFT(lcLine,1) == '#'
|
||||
lcLine = CHRTRAN( lcLine, ' ', '' ) && Quito los espacios a lo que comience con #
|
||||
ENDIF
|
||||
|
||||
IF tnIniFin = 1
|
||||
*-- TOKENS DE INICIO
|
||||
IF UPPER( LEFT( tcLine, LEN(ta_ID_Bloques(X,1)) ) ) == ta_ID_Bloques(X,1)
|
||||
@@ -8846,7 +8910,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
|
||||
DO CASE
|
||||
CASE laLineasExclusion(I)
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF
|
||||
IF tnMethodCount > 0 AND llProcOpen
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF
|
||||
ELSE
|
||||
*-- Invalid method code, as outer code added for tools like ReFox or others, is cleaned up
|
||||
ENDIF
|
||||
|
||||
CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 10) ) == 'PROCEDURE '
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
@@ -8854,7 +8922,16 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 11) )
|
||||
taMethods(tnMethodCount, 2) = tnMethodCount
|
||||
taMethods(tnMethodCount, 3) = ''
|
||||
taCode(tnMethodCount) = laLine(I) + CR_LF
|
||||
taCode(tnMethodCount) = 'PROCEDURE ' + taMethods(tnMethodCount, 1) + CR_LF && laLine(I) + CR_LF
|
||||
llProcOpen = .T.
|
||||
|
||||
CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 9) ) == 'FUNCTION ' && NOT VALID WITH VFP IDE, BUT 3rd. PARTY SOFTWARE CAN USE IT
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 10) )
|
||||
taMethods(tnMethodCount, 2) = tnMethodCount
|
||||
taMethods(tnMethodCount, 3) = ''
|
||||
taCode(tnMethodCount) = 'PROCEDURE ' + taMethods(tnMethodCount, 1) + CR_LF && laLine(I) + CR_LF
|
||||
llProcOpen = .T.
|
||||
|
||||
CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 17) ) == 'HIDDEN PROCEDURE '
|
||||
@@ -8863,7 +8940,16 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 18) )
|
||||
taMethods(tnMethodCount, 2) = tnMethodCount
|
||||
taMethods(tnMethodCount, 3) = 'HIDDEN '
|
||||
taCode(tnMethodCount) = laLine(I) + CR_LF
|
||||
taCode(tnMethodCount) = 'HIDDEN PROCEDURE ' + taMethods(tnMethodCount, 1) + CR_LF && laLine(I) + CR_LF
|
||||
llProcOpen = .T.
|
||||
|
||||
CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 16) ) == 'HIDDEN FUNCTION ' && NOT VALID WITH VFP IDE, BUT 3rd. PARTY SOFTWARE CAN USE IT
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 17) )
|
||||
taMethods(tnMethodCount, 2) = tnMethodCount
|
||||
taMethods(tnMethodCount, 3) = 'HIDDEN '
|
||||
taCode(tnMethodCount) = 'HIDDEN PROCEDURE ' + taMethods(tnMethodCount, 1) + CR_LF && laLine(I) + CR_LF
|
||||
llProcOpen = .T.
|
||||
|
||||
CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 20) ) == 'PROTECTED PROCEDURE '
|
||||
@@ -8872,7 +8958,16 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 21) )
|
||||
taMethods(tnMethodCount, 2) = tnMethodCount
|
||||
taMethods(tnMethodCount, 3) = 'PROTECTED '
|
||||
taCode(tnMethodCount) = laLine(I) + CR_LF
|
||||
taCode(tnMethodCount) = 'PROTECTED PROCEDURE ' + taMethods(tnMethodCount, 1) + CR_LF && laLine(I) + CR_LF
|
||||
llProcOpen = .T.
|
||||
|
||||
CASE lnTextNodes = 0 AND UPPER( LEFT(laLine(I), 19) ) == 'PROTECTED FUNCTION ' && NOT VALID WITH VFP IDE, BUT 3rd. PARTY SOFTWARE CAN USE IT
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(laLine(I), 20) )
|
||||
taMethods(tnMethodCount, 2) = tnMethodCount
|
||||
taMethods(tnMethodCount, 3) = 'PROTECTED '
|
||||
taCode(tnMethodCount) = 'PROTECTED PROCEDURE ' + taMethods(tnMethodCount, 1) + CR_LF && laLine(I) + CR_LF
|
||||
llProcOpen = .T.
|
||||
|
||||
CASE lnTextNodes = 0 AND LEFT(laLine(I), 7) == 'ENDPROC'
|
||||
@@ -8888,7 +8983,22 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) &&+ CR_LF
|
||||
llProcOpen = .F.
|
||||
|
||||
CASE tnMethodCount = 0 OR NOT llProcOpen AND LEFT( LTRIM(laLine(I)),1 ) = '*'
|
||||
CASE lnTextNodes = 0 AND LEFT(laLine(I), 7) == 'ENDFUNC' && NOT VALID WITH VFP IDE, BUT 3rd. PARTY SOFTWARE CAN USE IT
|
||||
lcLine = UPPER( CHRTRAN( laLine(I) , '&'+CHR(9)+CHR(0), ' ') ) + ' '
|
||||
IF lnLine_Len >= 7 AND LEFT(lcLine,8) == 'ENDFUNC '
|
||||
*-- Es el final de estructura ENDPROC
|
||||
laLine(I) = STRTRAN( laLine(I), 'ENDFUNC', 'ENDPROC' )
|
||||
ELSE
|
||||
*-- Es otra cosa (variable, etc)
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) &&+ CR_LF
|
||||
llProcOpen = .F.
|
||||
|
||||
*CASE tnMethodCount = 0 OR NOT llProcOpen AND LEFT( LTRIM(laLine(I)),1 ) = '*'
|
||||
CASE tnMethodCount = 0 OR NOT llProcOpen
|
||||
*-- Skip empty and commented lines before methods begin
|
||||
*-- Aqu<71> como condici<63>n podr<64>a poner: NOT llProcOpen AND LEFT(laLine(I), 7) # 'ENDPROC', pero abarcar<61>a demasiado.
|
||||
|
||||
|
||||
@@ -28,10 +28,11 @@
|
||||
+ " FOXBIN2PRG 'c:\development\classes\*.vc2' '0' '0' '0' '1' '0'"
|
||||
#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "FOXBIN2PRG ist nur f<>r Visual FoxPro 9.0!"
|
||||
#DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC "FOXBIN2PRG: WARNUNG!"
|
||||
#DEFINE C_LANGUAGE_LOC "DE"
|
||||
#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<<THIS.c_InputFile>>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY MENU <<JUSTFNAME((THIS.c_InputFile))>>"
|
||||
#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Objekt [<<toObj.CLASS>>] enth<74>lt nicht oReg Objekt (level <<TRANSFORM(tnNivel)>>)"
|
||||
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC "* Programm f<>r Gro<72>schreibungssetzung [<<lcEXE_CAPS>>] gefunden"
|
||||
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC "* Programm f<>r Gro<72>schreibungssetzung [<<lcEXE_CAPS>>] nicht gefunden"
|
||||
#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Objekt [<<toObj.CLASS>>] enth<74>lt nicht oReg Objekt (level <<TRANSFORM(tnNivel)>>)"
|
||||
#DEFINE C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC "Befehl nicht erkannt. Nur SETNAME und GETNAME erlaubt."
|
||||
#DEFINE C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC "Optimierung: Ausgabedatei [<<THIS.c_OutputFile>>] wurde nicht <20>berschrieben da sie dieselbe ist wie die neu generierte."
|
||||
#DEFINE C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC "Optimierung: Ausgabedatei [<<THIS.c_OutputFile>>] wurde nicht erneuert da sie neuer ist als die Ursprungsdatei."
|
||||
|
||||
@@ -28,10 +28,11 @@
|
||||
+ " FOXBIN2PRG 'c:\development\classes\*.vc2' '0' '0' '0' '1' '0'"
|
||||
#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "FOXBIN2PRG is only for Visual FoxPro 9.0!"
|
||||
#DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC "FOXBIN2PRG: WARNING!"
|
||||
#DEFINE C_LANGUAGE_LOC "EN"
|
||||
#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<<THIS.c_InputFile>>] is NOT in VFP 9 Format! - Please convert to VFP 9 with MODIFY MENU <<JUSTFNAME((THIS.c_InputFile))>>"
|
||||
#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Object [<<toObj.CLASS>>] does not contain oReg object (level <<TRANSFORM(tnNivel)>>)"
|
||||
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC "* Names capitalization program [<<lcEXE_CAPS>>] found"
|
||||
#DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC "* Names capitalization program [<<lcEXE_CAPS>>] not found"
|
||||
#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Object [<<toObj.CLASS>>] does not contain oReg object (level <<TRANSFORM(tnNivel)>>)"
|
||||
#DEFINE C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC "Operation not recognized. Only SETNAME and GETNAME allowed."
|
||||
#DEFINE C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC "Optimization: Output file [<<THIS.c_OutputFile>>] was not overwritten because it is the same as was generated."
|
||||
#DEFINE C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC "Optimization: Output file [<<THIS.c_OutputFile>>] was not regenerated because it is newer than the inputfile."
|
||||
|
||||
Reference in New Issue
Block a user