Changeset: 639 v1.19.41
- Bug Fix db2: Detección errónea de tabla inválida cuando el tamaño es inferior a 328 bytes. Límite mínimo cambiado a 65 bytes. - Bug Fix vcx/scx: Detección errónea de estructuras PROCEDURE/ENDPROC cuando se usan como parámetros en LPARAMETERS (Ryan Harris)
This commit is contained in:
@@ -2,8 +2,8 @@ Lparameters toUpdateInfo
|
||||
|
||||
Local lcNote
|
||||
With toUpdateInfo
|
||||
.VersionNumber = 'v1.19.40'
|
||||
.VersionDate = Date(2015,01,11)
|
||||
.VersionNumber = 'v1.19.41'
|
||||
.VersionDate = Date(2015,01,18)
|
||||
.SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip'
|
||||
|
||||
.Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG'
|
||||
@@ -17,6 +17,10 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg
|
||||
|
||||
Change History -------------------------------------------------------------
|
||||
|
||||
2015/01/18 v1.19.41
|
||||
- Bug Fix db2: Erroneous detection of Invalid Table when size is less than 328 bytes. Lower limit was changed to 65 bytes.
|
||||
- Bug Fix vcx/scx: Erroneous detection of PROCEDURE/ENDPROC structures when used as parameters of LPARAMETERS and start in new line (Ryan Harris)
|
||||
|
||||
2015/01/11 v1.19.40
|
||||
- Enhancement frx/lbx: Clean ASCII 0 from expression field for Dataenvironment, Cursors and Relations
|
||||
- Bug fix frx/lbx: When using Dataenvironment with more than one cursor, remaining cursors are lost
|
||||
|
||||
39
TESTS/DATOS_READONLY/procedure_in_lparameters.vc2
Normal file
39
TESTS/DATOS_READONLY/procedure_in_lparameters.vc2
Normal file
@@ -0,0 +1,39 @@
|
||||
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
* (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.19" SourceFile="procedure_in_lparameters.vcx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||
*
|
||||
*
|
||||
DEFINE CLASS custest AS custom
|
||||
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
|
||||
|
||||
*<DefinedPropArrayMethod>
|
||||
*m: createcsrhealthcodes
|
||||
*</DefinedPropArrayMethod>
|
||||
|
||||
Name = "custest"
|
||||
|
||||
PROCEDURE createcsrhealthcodes
|
||||
|
||||
|
||||
*
|
||||
* Add values to cursor, row by row.
|
||||
*
|
||||
FOR lnIndex = 1 TO lnCount
|
||||
|
||||
*
|
||||
* Write values to csr
|
||||
*
|
||||
REPLACE CBO_Id WITH lnCBO_ID, Diagnosis WITH lcDiagnosis, AdmitDiagnosis WITH lcAdmitDiagnosis, ; && Try to Break FB2P
|
||||
Procedure WITH lcProcedure IN csrHealthCareCodes
|
||||
|
||||
ENDFOR
|
||||
|
||||
*
|
||||
* Return success flag.
|
||||
*
|
||||
RETURN llSuccess
|
||||
ENDPROC
|
||||
|
||||
ENDDEFINE
|
||||
BIN
TESTS/DATOS_READONLY/procedure_in_lparameters.vct
Normal file
BIN
TESTS/DATOS_READONLY/procedure_in_lparameters.vct
Normal file
Binary file not shown.
BIN
TESTS/DATOS_READONLY/procedure_in_lparameters.vcx
Normal file
BIN
TESTS/DATOS_READONLY/procedure_in_lparameters.vcx
Normal file
Binary file not shown.
@@ -238,7 +238,7 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O
|
||||
STRTOFILE( 'MNX_Conversion_Support: 1' + CRLF, 'TESTS\DATOS_TEST\foxbin2prg.cfg', 1 )
|
||||
STRTOFILE( 'DBF_Conversion_Support: 2' + CRLF, 'TESTS\DATOS_TEST\foxbin2prg.cfg', 1 )
|
||||
STRTOFILE( 'DBC_Conversion_Support: 1' + CRLF, 'TESTS\DATOS_TEST\foxbin2prg.cfg', 1 )
|
||||
STRTOFILE( 'ShowProgressbar: 0' + CRLF, 'TESTS\DATOS_TEST\foxbin2prg.cfg', 1 )
|
||||
STRTOFILE( 'DontShowProgress: 1' + CRLF, 'TESTS\DATOS_TEST\foxbin2prg.cfg', 1 )
|
||||
STRTOFILE( 'DontShowErrors: 1' + CRLF, 'TESTS\DATOS_TEST\foxbin2prg.cfg', 1 )
|
||||
*STRTOFILE( 'Recompile: ' + CRLF, 'TESTS\DATOS_TEST\foxbin2prg.cfg', 1 )
|
||||
STRTOFILE( 'NoTimestamps: 0' + CRLF, 'TESTS\DATOS_TEST\foxbin2prg.cfg', 1 )
|
||||
|
||||
BIN
foxbin2prg.exe
BIN
foxbin2prg.exe
Binary file not shown.
@@ -26,7 +26,7 @@ _LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa):
|
||||
_ProductName = "FOXBIN2PRG"
|
||||
_MajorVer = "1"
|
||||
_MinorVer = "19"
|
||||
_Revision = "40"
|
||||
_Revision = "41"
|
||||
_LanguageID = "1034"
|
||||
_AutoIncrement = "0"
|
||||
*</DevInfo>
|
||||
|
||||
BIN
foxbin2prg.pjt
BIN
foxbin2prg.pjt
Binary file not shown.
BIN
foxbin2prg.pjx
BIN
foxbin2prg.pjx
Binary file not shown.
676
foxbin2prg.prg
676
foxbin2prg.prg
@@ -129,6 +129,8 @@
|
||||
* 06/01/2015 FDBOZZO v1.19.40 Mejora: Permitir configurar la barra de progreso para que solamente aparezca cuando se procesan m<>ltiples archivos y no cuando se procesa solo 1 (Jim Nelson)
|
||||
* 07/01/2015 FDBOZZO v1.19.40 Bug fix db2: [Error 12, Variable "TCOUTPUTFILE" is not found] cuando DBF_Conversion_Support=4 y el archivo de salida es igual al generado (Mike Potjer)
|
||||
* 07/01/2015 FDBOZZO v1.19.40 Mejora scx/vcx: Detecci<63>n de nombres de objeto duplicados para notificar casos de corrupci<63>n
|
||||
* 13/01/2015 FDBOZZO v1.19.41 Bug Fix scx/vcx: Detecci<63>n err<72>nea de estructuras PROCEDURE/ENDPROC cuando se usan como par<61>metros en LPARAMETERS (Ryan Harris)
|
||||
* 13/01/2015 FDBOZZO v1.19.41 Bug Fix db2: Detecci<63>n err<72>nea de tabla inv<6E>lida cuando el tama<6D>o es inferior a 328 bytes. L<>mite m<>nimo cambiado a 65 bytes.
|
||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||
*
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
@@ -188,6 +190,7 @@
|
||||
* 30/12/2014 Ryan Harris Reporte bug dbc v1.19.38: Los datos de DisplayClass y DisplayClassLibrary ten<65>an el valor de "Default" en vez del propio (Agregado en v1.19.39)
|
||||
* 06/01/2015 Jim Nelson Mejora v1.19.39: Permitir configurar la barra de progreso para que solamente aparezca cuando se procesan m<>ltiples archivos y no cuando se procesa solo 1 (Agregado en v1.19.40)
|
||||
* 06/01/2015 Mike Potjer Reporte bug db2: [Error 12, Variable "TCOUTPUTFILE" is not found] cuando DBF_Conversion_Support=4 y el archivo de salida es igual al generado (Agregado en v1.19.40)
|
||||
* 13/01/2015 Ryan Harris Reporte bug vcx/scx v1.19.40: Detecci<63>n err<72>nea de estructuras PROCEDURE/ENDPROC cuando se usan como par<61>metros LPARAMETERS en l<>nea aparte (Arreglado en v1.19.41)
|
||||
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
||||
*
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
@@ -2049,6 +2052,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
|
||||
IF .n_ShowProgressbar <> 0 THEN
|
||||
.cargar_frm_avance()
|
||||
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' )
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
@@ -2106,6 +2110,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
|
||||
IF .n_ShowProgressbar <> 0 THEN
|
||||
.cargar_frm_avance()
|
||||
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' )
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
@@ -2202,6 +2207,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
*-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO
|
||||
IF .n_ShowProgressbar <> 0 THEN
|
||||
.cargar_frm_avance()
|
||||
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' )
|
||||
ENDIF
|
||||
|
||||
.writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_BINARY_TO_TEXT_LOC )
|
||||
@@ -2249,6 +2255,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
*-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO
|
||||
IF .n_ShowProgressbar <> 0 THEN
|
||||
.cargar_frm_avance()
|
||||
.o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' )
|
||||
ENDIF
|
||||
|
||||
.writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_TEXT_TO_BINARY_LOC )
|
||||
@@ -2850,7 +2857,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
||||
|
||||
IF ln_AT_Cmt > 0
|
||||
tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) )
|
||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9) ) && Quito TABS
|
||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios
|
||||
ENDIF
|
||||
|
||||
RETURN (ln_AT_Cmt > 0)
|
||||
@@ -3198,67 +3205,50 @@ DEFINE CLASS frm_avance AS FORM
|
||||
+ [<memberdata name="l_cancelled" display="l_Cancelled"/>] ;
|
||||
+ [</VFPData>]
|
||||
|
||||
|
||||
ADD OBJECT shp_base AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 12, ;
|
||||
Height = 13, ;
|
||||
Width = 604, ;
|
||||
Curvature = 15, ;
|
||||
Curvature = 8, ;
|
||||
BorderWidth = 8, ;
|
||||
BackColor = 14215910, ;
|
||||
BorderColor = 14215910, ;
|
||||
Name = "shp_base"
|
||||
|
||||
|
||||
ADD OBJECT shp_avance AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 12, ;
|
||||
Height = 13, ;
|
||||
Width = 36, ;
|
||||
Curvature = 15, ;
|
||||
BackColor = RGB(255,255,128), ;
|
||||
BorderColor = RGB(255,0,0), ;
|
||||
Curvature = 8, ;
|
||||
BackColor = 6734335, ;
|
||||
BorderColor = 10476031, ;
|
||||
BorderWidth = 1, ;
|
||||
Name = "shp_Avance"
|
||||
|
||||
|
||||
ADD OBJECT lbl_tarea AS label WITH ;
|
||||
BackStyle = 0, ;
|
||||
Caption = ".", ;
|
||||
Height = 17, ;
|
||||
Left = 12, ;
|
||||
Top = 8, ;
|
||||
Width = 604, ;
|
||||
Name = "lbl_Tarea"
|
||||
|
||||
|
||||
ADD OBJECT shp_base2 AS shape WITH ;
|
||||
Top = 64, ;
|
||||
Left = 12, ;
|
||||
Height = 13, ;
|
||||
Width = 604, ;
|
||||
Curvature = 15, ;
|
||||
Curvature = 8, ;
|
||||
BorderWidth = 0, ;
|
||||
BackColor = 14215910, ;
|
||||
BorderColor = 14215910, ;
|
||||
Name = "shp_base2"
|
||||
|
||||
|
||||
ADD OBJECT shp_avance2 AS shape WITH ;
|
||||
Top = 64, ;
|
||||
Left = 12, ;
|
||||
Height = 13, ;
|
||||
Width = 36, ;
|
||||
Curvature = 15, ;
|
||||
BackColor = RGB(255,255,128), ;
|
||||
BorderColor = RGB(255,0,0), ;
|
||||
Curvature = 8, ;
|
||||
BackColor = 6734335, ;
|
||||
BorderColor = 10476031, ;
|
||||
BorderWidth = 1, ;
|
||||
Name = "shp_Avance2"
|
||||
|
||||
|
||||
ADD OBJECT lbl_tarea2 AS label WITH ;
|
||||
BackStyle = 0, ;
|
||||
Caption = ".", ;
|
||||
Height = 17, ;
|
||||
Left = 12, ;
|
||||
Top = 44, ;
|
||||
Width = 604, ;
|
||||
Name = "lbl_Tarea2"
|
||||
|
||||
|
||||
ADD OBJECT cmdCancel AS commandbutton WITH ;
|
||||
Top = 84, ;
|
||||
Left = 252, ;
|
||||
@@ -3268,6 +3258,255 @@ DEFINE CLASS frm_avance AS FORM
|
||||
Enabled = .F., ;
|
||||
Name = "cmdCancel"
|
||||
|
||||
ADD OBJECT lin_1 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 32, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_1"
|
||||
|
||||
ADD OBJECT lin_2 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 52, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_2"
|
||||
|
||||
ADD OBJECT lin_3 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 72, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_3"
|
||||
|
||||
ADD OBJECT lin_4 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 92, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_4"
|
||||
|
||||
ADD OBJECT lin_5 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 112, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_5"
|
||||
|
||||
ADD OBJECT lin_6 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 132, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_6"
|
||||
|
||||
ADD OBJECT lin_7 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 152, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_7"
|
||||
|
||||
ADD OBJECT lin_8 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 172, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_8"
|
||||
|
||||
ADD OBJECT lin_9 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 192, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_9"
|
||||
|
||||
ADD OBJECT lin_10 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 212, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_10"
|
||||
|
||||
ADD OBJECT lin_11 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 232, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_11"
|
||||
|
||||
ADD OBJECT lin_12 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 252, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_12"
|
||||
|
||||
ADD OBJECT lin_13 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 272, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_13"
|
||||
|
||||
ADD OBJECT lin_14 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 292, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_14"
|
||||
|
||||
ADD OBJECT lin_15 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 312, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_15"
|
||||
|
||||
ADD OBJECT lin_16 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 332, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_16"
|
||||
|
||||
ADD OBJECT lin_17 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 352, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_17"
|
||||
|
||||
ADD OBJECT lin_18 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 372, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_18"
|
||||
|
||||
ADD OBJECT lin_19 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 392, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_19"
|
||||
|
||||
ADD OBJECT lin_20 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 412, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_20"
|
||||
|
||||
ADD OBJECT lin_21 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 432, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_21"
|
||||
|
||||
ADD OBJECT lin_22 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 452, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_22"
|
||||
|
||||
ADD OBJECT lin_23 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 472, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_23"
|
||||
|
||||
ADD OBJECT lin_24 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 492, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_24"
|
||||
|
||||
ADD OBJECT lin_25 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 512, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_25"
|
||||
|
||||
ADD OBJECT lin_26 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 532, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_26"
|
||||
|
||||
ADD OBJECT lin_27 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 552, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_27"
|
||||
|
||||
ADD OBJECT lin_28 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 572, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_28"
|
||||
|
||||
ADD OBJECT lin_29 AS shape WITH ;
|
||||
Top = 28, ;
|
||||
Left = 592, ;
|
||||
Height = 53, ;
|
||||
Width = 0, ;
|
||||
BorderColor = 16777215, ;
|
||||
Name = "lin_29"
|
||||
|
||||
ADD OBJECT lbl_tarea AS label WITH ;
|
||||
BackStyle = 0, ;
|
||||
Caption = ".", ;
|
||||
Height = 17, ;
|
||||
Left = 12, ;
|
||||
Top = 8, ;
|
||||
Width = 604, ;
|
||||
Name = "lbl_Tarea"
|
||||
|
||||
ADD OBJECT lbl_tarea2 AS label WITH ;
|
||||
BackStyle = 0, ;
|
||||
Caption = ".", ;
|
||||
Height = 17, ;
|
||||
Left = 12, ;
|
||||
Top = 44, ;
|
||||
Width = 604, ;
|
||||
Name = "lbl_Tarea2"
|
||||
|
||||
PROCEDURE AvanceDelProceso
|
||||
LPARAMETERS tcTexto, tnValor, tnTotal, tnTipo
|
||||
@@ -3331,10 +3570,10 @@ DEFINE CLASS frm_avance AS FORM
|
||||
|
||||
PROCEDURE Init
|
||||
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
|
||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||
THIS.CAPTION = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' - ' + loLang.C_PROCESS_PROGRESS_LOC + ' (' + loLang.C_PRESS_ESC_TO_CANCEL + ')'
|
||||
THIS.nValue = 0
|
||||
THIS.nValue2 = 0
|
||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||
THIS.CAPTION = 'FoxBin2Prg ' + _SCREEN.c_FB2PRG_EXE_Version + ' > - ' + loLang.C_PROCESS_PROGRESS_LOC + ' (' + loLang.C_PRESS_ESC_TO_CANCEL + ')'
|
||||
THIS.nValue = 0
|
||||
THIS.nValue2 = 0
|
||||
ENDPROC
|
||||
|
||||
|
||||
@@ -4158,13 +4397,12 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tcLine, tcComment
|
||||
LOCAL ln_AT_Cmt
|
||||
tcComment = ''
|
||||
ln_AT_Cmt = AT( '&'+'&', tcLine)
|
||||
|
||||
IF ln_AT_Cmt > 0
|
||||
tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) )
|
||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9) ) && Quito TABS
|
||||
ELSE
|
||||
tcComment = ''
|
||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios
|
||||
ENDIF
|
||||
|
||||
RELEASE tcLine, tcComment
|
||||
@@ -10585,7 +10823,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
|
||||
*-- 1.Bloque de c<>digo del m<>todo en su posici<63>n original
|
||||
TRY
|
||||
LOCAL lnLineCount, laLine(1), I, lnTextNodes, tcSorted, lnProtectedLine, lcMethod, lnLine_Len, lcLine, llProcOpen ;
|
||||
, laLineasExclusion(1), lnBloquesExclusion ;
|
||||
, laLineasExclusion(1), lnBloquesExclusion, lcLastLine ;
|
||||
, loEx AS EXCEPTION
|
||||
|
||||
IF NOT EMPTY(m.tcMethod) AND LEFT(m.tcMethod,9) == "ENDPROC"+CHR(13)+CHR(10)
|
||||
@@ -10593,187 +10831,197 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
|
||||
ENDIF
|
||||
|
||||
IF NOT EMPTY(m.tcMethod)
|
||||
DIMENSION laLine(1)
|
||||
STORE '' TO laLine
|
||||
STORE 0 TO lnTextNodes
|
||||
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
|
||||
DIMENSION laLine(1)
|
||||
STORE '' TO laLine, lcLine, lcLastLine
|
||||
STORE 0 TO lnTextNodes
|
||||
|
||||
lnLineCount = ALINES(laLine, m.tcMethod) && NO aplicar nung<6E>n formato ni limpieza, que es el C<>DIGO FUENTE
|
||||
lnLineCount = ALINES(laLine, m.tcMethod) && NO aplicar nung<6E>n formato ni limpieza, que es el C<>DIGO FUENTE
|
||||
|
||||
*-- Delete beginning empty lines before first "PROCEDURE", that is the first not empty line.
|
||||
FOR I = 1 TO lnLineCount
|
||||
IF EMPTY(laLine(I)) OR LEFT( LTRIM(laLine(I)),1 ) = '*'
|
||||
*-- Skip empty and commented lines
|
||||
ELSE
|
||||
IF I > 1
|
||||
FOR X = I-1 TO 1 STEP -1
|
||||
ADEL(laLine, X)
|
||||
ENDFOR
|
||||
lnLineCount = lnLineCount - I + 1
|
||||
DIMENSION laLine(lnLineCount)
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
*-- Delete ending empty lines after last "ENDPROC", that is the last not empty line.
|
||||
FOR I = lnLineCount TO 1 STEP -1
|
||||
IF EMPTY(laLine(I)) OR LEFT( LTRIM(laLine(I)),1 ) = '*'
|
||||
ADEL(laLine, I)
|
||||
ELSE
|
||||
IF I < lnLineCount
|
||||
lnLineCount = I
|
||||
DIMENSION laLine(lnLineCount)
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
*-- Identifico los TEXT/ENDTEXT, #IF .F./#ENDIF
|
||||
THIS.identificarBloquesDeExclusion( @laLine, lnLineCount, .F., @laLineasExclusion, @lnBloquesExclusion )
|
||||
|
||||
*-- Analyze and count line methods, get method names and consolidate block code
|
||||
FOR I = 1 TO lnLineCount
|
||||
IF toFoxBin2Prg.l_DropNullCharsFromCode
|
||||
laLine(I) = CHRTRAN( laLine(I), C_NULL_CHAR, '' )
|
||||
ENDIF
|
||||
|
||||
lnLine_Len = LEN( laLine(I) )
|
||||
lcLine = LTRIM( laLine(I), 0, C_TAB, ' ' )
|
||||
|
||||
DO CASE
|
||||
CASE laLineasExclusion(I)
|
||||
IF tnMethodCount > 0 AND llProcOpen
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF
|
||||
*-- Delete beginning empty lines before first "PROCEDURE", that is the first not empty line.
|
||||
FOR I = 1 TO lnLineCount
|
||||
IF EMPTY(laLine(I)) OR LEFT( LTRIM(laLine(I)),1 ) = '*'
|
||||
*-- Skip empty and commented lines
|
||||
ELSE
|
||||
*-- Invalid method code, as outer code added for tools like ReFox or others, is cleaned up
|
||||
ENDIF
|
||||
|
||||
CASE lnTextNodes = 0 AND UPPER( LEFT(lcLine, 10) ) == 'PROCEDURE '
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(lcLine, 11) )
|
||||
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(lcLine, 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(lcLine, 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(lcLine, 17) ) == 'HIDDEN PROCEDURE '
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(lcLine, 18) )
|
||||
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(lcLine, 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(lcLine, 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(lcLine, 20) ) == 'PROTECTED PROCEDURE '
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(lcLine, 21) )
|
||||
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 UPPER( LEFT(lcLine, 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(lcLine, 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(lcLine, 7) == 'ENDPROC'
|
||||
IF lnLine_Len >= 7 AND LEFT( UPPER( CHRTRAN( lcLine , '&'+CHR(9)+CHR(0), ' ') ) + ' ' ,8) == 'ENDPROC '
|
||||
*-- Es el final de estructura ENDPROC
|
||||
IF NOT llProcOpen
|
||||
*-- Esto no es normal, porque hay m<>s de un ENDPROC, por lo que se ignora.
|
||||
LOOP
|
||||
IF I > 1
|
||||
FOR X = I-1 TO 1 STEP -1
|
||||
ADEL(laLine, X)
|
||||
ENDFOR
|
||||
lnLineCount = lnLineCount - I + 1
|
||||
DIMENSION laLine(lnLineCount)
|
||||
ENDIF
|
||||
ELSE
|
||||
*-- Es otra cosa (variable, etc)
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + lcLine + CR_LF
|
||||
LOOP
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + lcLine &&+ CR_LF
|
||||
llProcOpen = .F.
|
||||
|
||||
CASE lnTextNodes = 0 AND LEFT(laLine(I), 7) == 'ENDFUNC' && NOT VALID WITH VFP IDE, BUT 3rd. PARTY SOFTWARE CAN USE IT
|
||||
IF lnLine_Len >= 7 AND LEFT( UPPER( CHRTRAN( laLine(I) , '&'+CHR(9)+CHR(0), ' ') ) + ' ' ,8) == 'ENDFUNC '
|
||||
*-- Es el final de estructura ENDPROC
|
||||
IF NOT llProcOpen
|
||||
*-- Esto no es normal, porque hay m<>s de un ENDFUNC, por lo que se ignora.
|
||||
LOOP
|
||||
*-- Delete ending empty lines after last "ENDPROC", that is the last not empty line.
|
||||
FOR I = lnLineCount TO 1 STEP -1
|
||||
IF EMPTY(laLine(I)) OR LEFT( LTRIM(laLine(I)),1 ) = '*'
|
||||
ADEL(laLine, I)
|
||||
ELSE
|
||||
IF I < lnLineCount
|
||||
lnLineCount = I
|
||||
DIMENSION laLine(lnLineCount)
|
||||
ENDIF
|
||||
lcLine = STRTRAN( lcLine, 'ENDFUNC', 'ENDPROC' )
|
||||
ELSE
|
||||
*-- Es otra cosa (variable, etc)
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + lcLine + CR_LF
|
||||
LOOP
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
*-- Identifico los TEXT/ENDTEXT, #IF .F./#ENDIF
|
||||
.identificarBloquesDeExclusion( @laLine, lnLineCount, .F., @laLineasExclusion, @lnBloquesExclusion )
|
||||
|
||||
*-- Analyze and count line methods, get method names and consolidate block code
|
||||
FOR I = 1 TO lnLineCount
|
||||
IF toFoxBin2Prg.l_DropNullCharsFromCode
|
||||
laLine(I) = CHRTRAN( laLine(I), C_NULL_CHAR, '' )
|
||||
ENDIF
|
||||
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + lcLine &&+ CR_LF
|
||||
llProcOpen = .F.
|
||||
lnLine_Len = LEN( laLine(I) )
|
||||
lcLastLine = lcLine
|
||||
lcLine = laLine(I)
|
||||
.get_SeparatedLineAndComment( @lcLine )
|
||||
lcLine = LTRIM( lcLine, 0, C_TAB, ' ' )
|
||||
|
||||
*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.
|
||||
|
||||
OTHERWISE && Method Code
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF
|
||||
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
|
||||
*-- Agrego los m<>todos definidos, pero sin c<>digo (Protected/Reserved3)
|
||||
FOR I = 1 TO tnPropsAndComments_Count
|
||||
lcMethod = CHRTRAN( taPropsAndComments(I,1), '*', '' )
|
||||
IF LEFT( taPropsAndComments(I,1), 1 ) == '*' AND ASCAN( taMethods, lcMethod, 1, 0, 1, 1+2+4+8 ) = 0
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3) &&, taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = lcMethod
|
||||
taMethods(tnMethodCount, 2) = 0
|
||||
|
||||
lnProtectedLine = ASCAN( taProtected, lcMethod, 1, 0, 1, 1+2+4+8 )
|
||||
|
||||
IF lnProtectedLine = 0 THEN
|
||||
IF tnProtected_Count = 0
|
||||
lnProtectedLine = 0
|
||||
DO CASE
|
||||
CASE laLineasExclusion(I)
|
||||
IF tnMethodCount > 0 AND llProcOpen
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF
|
||||
ELSE
|
||||
lnProtectedLine = ASCAN( taProtected, lcMethod + '^', 1, 0, 1, 1+2+4+8 )
|
||||
*-- Invalid method code, as outer code added for tools like ReFox or others, is cleaned up
|
||||
ENDIF
|
||||
|
||||
CASE RIGHT(lcLastLine,1) == ';'
|
||||
*-- Saltear el an<61>lisis de esta l<>nea, que es continuaci<63>n de la anterior (lcLastLine).
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF
|
||||
LOOP
|
||||
|
||||
CASE lnTextNodes = 0 AND UPPER( LEFT(lcLine, 10) ) == 'PROCEDURE '
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(lcLine, 11) )
|
||||
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(lcLine, 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(lcLine, 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(lcLine, 17) ) == 'HIDDEN PROCEDURE '
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(lcLine, 18) )
|
||||
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(lcLine, 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(lcLine, 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(lcLine, 20) ) == 'PROTECTED PROCEDURE '
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3), taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = RTRIM( SUBSTR(lcLine, 21) )
|
||||
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 UPPER( LEFT(lcLine, 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(lcLine, 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(lcLine, 7) == 'ENDPROC'
|
||||
IF lnLine_Len >= 7 AND LEFT( UPPER( CHRTRAN( lcLine , '&'+CHR(9)+CHR(0), ' ') ) + ' ' ,8) == 'ENDPROC '
|
||||
*-- Es el final de estructura ENDPROC
|
||||
IF NOT llProcOpen
|
||||
*-- Esto no es normal, porque hay m<>s de un ENDPROC, por lo que se ignora.
|
||||
LOOP
|
||||
ENDIF
|
||||
ELSE
|
||||
*-- Es otra cosa (variable, etc)
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + lcLine + CR_LF
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + lcLine &&+ CR_LF
|
||||
llProcOpen = .F.
|
||||
|
||||
CASE lnTextNodes = 0 AND LEFT(laLine(I), 7) == 'ENDFUNC' && NOT VALID WITH VFP IDE, BUT 3rd. PARTY SOFTWARE CAN USE IT
|
||||
IF lnLine_Len >= 7 AND LEFT( UPPER( CHRTRAN( laLine(I) , '&'+CHR(9)+CHR(0), ' ') ) + ' ' ,8) == 'ENDFUNC '
|
||||
*-- Es el final de estructura ENDPROC
|
||||
IF NOT llProcOpen
|
||||
*-- Esto no es normal, porque hay m<>s de un ENDFUNC, por lo que se ignora.
|
||||
LOOP
|
||||
ENDIF
|
||||
lcLine = STRTRAN( lcLine, 'ENDFUNC', 'ENDPROC' )
|
||||
ELSE
|
||||
*-- Es otra cosa (variable, etc)
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + lcLine + CR_LF
|
||||
LOOP
|
||||
ENDIF
|
||||
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + lcLine &&+ 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.
|
||||
|
||||
OTHERWISE && Method Code
|
||||
taCode(tnMethodCount) = taCode(tnMethodCount) + laLine(I) + CR_LF
|
||||
|
||||
ENDCASE
|
||||
ENDFOR
|
||||
|
||||
*-- Agrego los m<>todos definidos, pero sin c<>digo (Protected/Reserved3)
|
||||
FOR I = 1 TO tnPropsAndComments_Count
|
||||
lcMethod = CHRTRAN( taPropsAndComments(I,1), '*', '' )
|
||||
IF LEFT( taPropsAndComments(I,1), 1 ) == '*' AND ASCAN( taMethods, lcMethod, 1, 0, 1, 1+2+4+8 ) = 0
|
||||
tnMethodCount = tnMethodCount + 1
|
||||
DIMENSION taMethods(tnMethodCount, 3) &&, taCode(tnMethodCount)
|
||||
taMethods(tnMethodCount, 1) = lcMethod
|
||||
taMethods(tnMethodCount, 2) = 0
|
||||
|
||||
lnProtectedLine = ASCAN( taProtected, lcMethod, 1, 0, 1, 1+2+4+8 )
|
||||
|
||||
IF lnProtectedLine = 0 THEN
|
||||
taMethods(tnMethodCount, 3) = ''
|
||||
IF tnProtected_Count = 0
|
||||
lnProtectedLine = 0
|
||||
ELSE
|
||||
lnProtectedLine = ASCAN( taProtected, lcMethod + '^', 1, 0, 1, 1+2+4+8 )
|
||||
ENDIF
|
||||
|
||||
IF lnProtectedLine = 0 THEN
|
||||
taMethods(tnMethodCount, 3) = ''
|
||||
ELSE
|
||||
taMethods(tnMethodCount, 3) = 'HIDDEN '
|
||||
ENDIF
|
||||
ELSE
|
||||
taMethods(tnMethodCount, 3) = 'HIDDEN '
|
||||
taMethods(tnMethodCount, 3) = 'PROTECTED '
|
||||
ENDIF
|
||||
ELSE
|
||||
taMethods(tnMethodCount, 3) = 'PROTECTED '
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDFOR
|
||||
ENDWITH && THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
|
||||
ENDIF
|
||||
|
||||
CATCH TO loEx
|
||||
@@ -13458,13 +13706,12 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM
|
||||
*---------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tcLine, tcComment
|
||||
LOCAL ln_AT_Cmt
|
||||
tcComment = ''
|
||||
ln_AT_Cmt = AT( '&'+'&', tcLine)
|
||||
|
||||
IF ln_AT_Cmt > 0
|
||||
tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) )
|
||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9) ) && Quito TABS
|
||||
ELSE
|
||||
tcComment = ''
|
||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios
|
||||
ENDIF
|
||||
|
||||
RELEASE tcLine, tcComment
|
||||
@@ -13547,9 +13794,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION
|
||||
|
||||
IF ln_AT_Cmt > 0
|
||||
tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) )
|
||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9) ) && Quito TABS
|
||||
ELSE
|
||||
tcComment = ''
|
||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios
|
||||
ENDIF
|
||||
|
||||
RELEASE tcLine, tcComment
|
||||
@@ -21297,9 +21542,12 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION
|
||||
lcStr = FREAD(lnHandle,1) && 0 File type
|
||||
tn_HexFileType = EVALUATE( TRANSFORM(ASC(lcStr),'@0') )
|
||||
|
||||
IF lnFileLength < 328 OR .fileTypeDescription(tn_HexFileType) = 'Unknown'
|
||||
DO CASE
|
||||
CASE lnFileLength < 65
|
||||
ERROR 15, tc_FileName + ' (FileLength < 65)'
|
||||
CASE .fileTypeDescription(tn_HexFileType) = 'Unknown'
|
||||
ERROR 15, tc_FileName
|
||||
ENDIF
|
||||
ENDCASE
|
||||
|
||||
.n_HexFileType = tn_HexFileType
|
||||
lcStr = FREAD(lnHandle,3) && 1-3 Last update (YYMMDD)
|
||||
|
||||
Reference in New Issue
Block a user