Changeset: 650 - Bug Fix scx/vcx: Procesar solo un nivel de text/endtext, ya que no se admiten más niveles (Lutz Scheffler)
This commit is contained in:
@@ -11,9 +11,11 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
#DEFINE C_IF_F '#IF'
|
#DEFINE C_IF_F '#IF'
|
||||||
#DEFINE C_ENDIF '#ENDIF'
|
#DEFINE C_ENDIF '#ENDIF'
|
||||||
icObj = NULL
|
icObj = NULL
|
||||||
|
icFB = NULL
|
||||||
|
|
||||||
*******************************************************************************************************************************************
|
*******************************************************************************************************************************************
|
||||||
FUNCTION Setup
|
FUNCTION Setup
|
||||||
|
THIS.icFB = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
|
||||||
THIS.icObj = NEWOBJECT("c_conversor_prg_a_bin", "FOXBIN2PRG.PRG")
|
THIS.icObj = NEWOBJECT("c_conversor_prg_a_bin", "FOXBIN2PRG.PRG")
|
||||||
|
|
||||||
ENDFUNC
|
ENDFUNC
|
||||||
@@ -22,6 +24,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
*******************************************************************************************************************************************
|
*******************************************************************************************************************************************
|
||||||
FUNCTION TearDown
|
FUNCTION TearDown
|
||||||
THIS.icObj = NULL
|
THIS.icObj = NULL
|
||||||
|
THIS.icFB = NULL
|
||||||
ENDFUNC
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
@@ -85,7 +88,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
laLineasExclusion_Esperadas( 3) = .T.
|
laLineasExclusion_Esperadas( 3) = .T.
|
||||||
laLineasExclusion_Esperadas( 4) = .T.
|
laLineasExclusion_Esperadas( 4) = .T.
|
||||||
laLineasExclusion_Esperadas( 5) = .T.
|
laLineasExclusion_Esperadas( 5) = .T.
|
||||||
laLineasExclusion_Esperadas( 7) = .T.
|
laLineasExclusion_Esperadas( 6) = .T.
|
||||||
laLineasExclusion_Esperadas( 8) = .T.
|
laLineasExclusion_Esperadas( 8) = .T.
|
||||||
laLineasExclusion_Esperadas( 9) = .T.
|
laLineasExclusion_Esperadas( 9) = .T.
|
||||||
laLineasExclusion_Esperadas(10) = .T.
|
laLineasExclusion_Esperadas(10) = .T.
|
||||||
@@ -117,6 +120,56 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
ENDFUNC
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************************************
|
||||||
|
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_externo_CuandoOtros_IF_ENDIF_internos_sonEvaluados
|
||||||
|
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) ;
|
||||||
|
, laLineasExclusion(14), laLineasExclusion_Esperadas(14)
|
||||||
|
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) = 3
|
||||||
|
laExpected_Pos(1,2) = 13
|
||||||
|
laLineasExclusion_Esperadas( 3) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 4) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 5) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 7) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 8) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 9) = .T.
|
||||||
|
laLineasExclusion_Esperadas(10) = .T.
|
||||||
|
laLineasExclusion_Esperadas(11) = .T.
|
||||||
|
laLineasExclusion_Esperadas(12) = .T.
|
||||||
|
laLineasExclusion_Esperadas(13) = .T.
|
||||||
|
|
||||||
|
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2
|
||||||
|
<<C_PROC>> myMethod_B
|
||||||
|
*-- Code Block
|
||||||
|
<<C_IF_F>>
|
||||||
|
<<C_IF_F>>
|
||||||
|
<<C_TEXT>>
|
||||||
|
value ;
|
||||||
|
<<C_ENDIF>>
|
||||||
|
*-- Code Block
|
||||||
|
<<C_IF_F>>
|
||||||
|
value ,
|
||||||
|
<<C_ENDTEXT>>
|
||||||
|
<<C_ENDIF>>
|
||||||
|
<<C_ENDIF>>
|
||||||
|
<<C_ENDPROC>>
|
||||||
|
ENDTEXT
|
||||||
|
|
||||||
|
lnLineas = ALINES( laLineas, lcMethod )
|
||||||
|
|
||||||
|
*-- Test
|
||||||
|
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos )
|
||||||
|
|
||||||
|
*-- Evaluaci<63>n de resultados
|
||||||
|
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion )
|
||||||
|
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************************************
|
*******************************************************************************************************************************************
|
||||||
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_Externo_CuandoCodigoCon_IF_ENDIF_predominante_esEvaluado
|
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_Externo_CuandoCodigoCon_IF_ENDIF_predominante_esEvaluado
|
||||||
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) ;
|
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2) ;
|
||||||
@@ -208,6 +261,59 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
ENDFUNC
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************************************
|
||||||
|
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_TEXT_ENDTEXT_CuandoCodigoConteniendo_TEXT_esEvaluado
|
||||||
|
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(3,2) ;
|
||||||
|
, laLineasExclusion(14), laLineasExclusion_Esperadas(14)
|
||||||
|
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) = 3
|
||||||
|
laExpected_Pos(1,2) = 5
|
||||||
|
laExpected_Pos(2,1) = 7
|
||||||
|
laExpected_Pos(2,2) = 9
|
||||||
|
laExpected_Pos(3,1) = 11
|
||||||
|
laExpected_Pos(3,2) = 13
|
||||||
|
laLineasExclusion_Esperadas( 3) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 4) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 5) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 7) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 8) = .T.
|
||||||
|
laLineasExclusion_Esperadas( 9) = .T.
|
||||||
|
laLineasExclusion_Esperadas(11) = .T.
|
||||||
|
laLineasExclusion_Esperadas(12) = .T.
|
||||||
|
laLineasExclusion_Esperadas(13) = .T.
|
||||||
|
|
||||||
|
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2
|
||||||
|
<<C_PROC>> myMethod_B
|
||||||
|
*-- Code Block
|
||||||
|
<<C_TEXT>>
|
||||||
|
<<C_TEXT>>
|
||||||
|
<<C_ENDTEXT>>
|
||||||
|
*-- Code Block
|
||||||
|
<<C_TEXT>>
|
||||||
|
<<C_TEXT>> ;
|
||||||
|
<<C_ENDTEXT>>
|
||||||
|
*-- Code Block
|
||||||
|
<<C_TEXT>>
|
||||||
|
<<C_TEXT>> ,
|
||||||
|
<<C_ENDTEXT>>
|
||||||
|
<<C_ENDPROC>>
|
||||||
|
ENDTEXT
|
||||||
|
|
||||||
|
lnLineas = ALINES( laLineas, lcMethod )
|
||||||
|
|
||||||
|
*-- Test
|
||||||
|
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laLineasExclusion, @lnPos_Count, @laPos )
|
||||||
|
|
||||||
|
*-- Evaluaci<63>n de resultados
|
||||||
|
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count, @laLineasExclusion_Esperadas, @laLineasExclusion )
|
||||||
|
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************************************
|
*******************************************************************************************************************************************
|
||||||
FUNCTION Deberia_NoEncontrarBloque_TEXT_ENDTEXT_CuandoEvaluaUnaLineaQueComienzaConUnCampoLlamado_Text_YLineaAnteriorTerminaEn_PuntoYComa
|
FUNCTION Deberia_NoEncontrarBloque_TEXT_ENDTEXT_CuandoEvaluaUnaLineaQueComienzaConUnCampoLlamado_Text_YLineaAnteriorTerminaEn_PuntoYComa
|
||||||
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2)
|
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2)
|
||||||
|
|||||||
@@ -132,6 +132,7 @@
|
|||||||
* 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 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.
|
* 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.
|
||||||
* 20/01/2015 FDBOZZO v1.19.42 Mejora: Validaci<63>n de versi<73>n de Visual FoxPro, para evitar problemas ajenos a FoxBin2Prg
|
* 20/01/2015 FDBOZZO v1.19.42 Mejora: Validaci<63>n de versi<73>n de Visual FoxPro, para evitar problemas ajenos a FoxBin2Prg
|
||||||
|
* 25/02/2015 FDBOZZO v1.19.42 Bug Fix scx/vcx: Procesar solo un nivel de text/endtext, ya que no se admiten m<>s niveles (Lutz Scheffler)
|
||||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -192,6 +193,7 @@
|
|||||||
* 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 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)
|
* 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)
|
* 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)
|
||||||
|
* 25/02/2015 Lutz Scheffler Reporte de Bug scx/vcx v1.19.41: Procesar solo un nivel de text/endtext, ya que no se admiten m<>s niveles (Arreglado en v1.19.42)
|
||||||
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -1925,7 +1927,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
|
|||||||
*ENDIF
|
*ENDIF
|
||||||
|
|
||||||
IF VERSION(5) < 900 OR INT( VAL( SUBSTR( VERSION(4), RAT('.', VERSION(4)) + 1 ) ) ) < 3504
|
IF VERSION(5) < 900 OR INT( VAL( SUBSTR( VERSION(4), RAT('.', VERSION(4)) + 1 ) ) ) < 3504
|
||||||
ERROR C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC
|
ERROR C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
*-- Determino el tipo de InputFile (Archivo o Directorio)
|
*-- Determino el tipo de InputFile (Archivo o Directorio)
|
||||||
@@ -4075,7 +4077,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
|
|
||||||
IF tnIniFin = 1
|
IF tnIniFin = 1
|
||||||
*-- TOKENS DE INICIO
|
*-- TOKENS DE INICIO
|
||||||
IF UPPER( LEFT( lcLine, LEN(ta_ID_Bloques(X,1)) ) ) == ta_ID_Bloques(X,1)
|
IF UPPER( LEFT( lcLine, ta_ID_Bloques(X,3) ) ) == ta_ID_Bloques(X,1)
|
||||||
*-- Evaluar casos especiales
|
*-- Evaluar casos especiales
|
||||||
lcWord = UPPER( ALLTRIM(GETWORDNUM(lcLine,1) ) )
|
lcWord = UPPER( ALLTRIM(GETWORDNUM(lcLine,1) ) )
|
||||||
|
|
||||||
@@ -4096,7 +4098,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
ENDIF
|
ENDIF
|
||||||
ELSE
|
ELSE
|
||||||
*-- TOKENS DE FIN
|
*-- TOKENS DE FIN
|
||||||
IF LEFT( UPPER( lcLine ), tnLen_IDFinBQ ) == ta_ID_Bloques(X,2) && Fin de bloque encontrado (#ENDI, ENDTEXT, etc)
|
IF LEFT( UPPER( lcLine ), ta_ID_Bloques(X,4) ) == ta_ID_Bloques(X,2) && Fin de bloque encontrado (#ENDI, ENDTEXT, etc)
|
||||||
*-- Evaluar casos especiales
|
*-- Evaluar casos especiales
|
||||||
lcWord = UPPER( ALLTRIM(GETWORDNUM(lcLine,1) ) )
|
lcWord = UPPER( ALLTRIM(GETWORDNUM(lcLine,1) ) )
|
||||||
|
|
||||||
@@ -4284,7 +4286,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
|
||||||
* tnTimeStamp (v! IN ) Timestamp en formato num<75>rico
|
* tnTimeStamp (v! IN ) Timestamp en formato num<75>rico
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
LPARAMETERS tnTimeStamp
|
LPARAMETERS tnTimestamp
|
||||||
*-- CONVIERTE UN DATO TIMESTAMP NUMERICO USADO POR LOS ARCHIVOS SCX/VCX/etc. EN TIPO DATETIME
|
*-- CONVIERTE UN DATO TIMESTAMP NUMERICO USADO POR LOS ARCHIVOS SCX/VCX/etc. EN TIPO DATETIME
|
||||||
TRY
|
TRY
|
||||||
LOCAL lcTimeStamp,lnYear,lnMonth,lnDay,lnHour,lnMinutes,lnSeconds,lcTime,lnHour,ltTimeStamp,lnResto ;
|
LOCAL lcTimeStamp,lnYear,lnMonth,lnDay,lnHour,lnMinutes,lnSeconds,lcTime,lnHour,ltTimeStamp,lnResto ;
|
||||||
@@ -4292,7 +4294,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
|
|
||||||
lcTimeStamp_Ret = ''
|
lcTimeStamp_Ret = ''
|
||||||
|
|
||||||
IF EMPTY(tnTimeStamp)
|
IF EMPTY(tnTimestamp)
|
||||||
IF THIS.lFileMode
|
IF THIS.lFileMode
|
||||||
IF ADIR(laDirInfo,THIS.c_InputFile)=0
|
IF ADIR(laDirInfo,THIS.c_InputFile)=0
|
||||||
EXIT
|
EXIT
|
||||||
@@ -4310,15 +4312,15 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
EXIT
|
EXIT
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
tnTimeStamp = THIS.n_ClassTimeStamp
|
tnTimestamp = THIS.n_ClassTimeStamp
|
||||||
|
|
||||||
IF EMPTY(tnTimeStamp)
|
IF EMPTY(tnTimestamp)
|
||||||
EXIT
|
EXIT
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
*-- YYYY YYYM MMMD DDDD HHHH HMMM MMMS SSSS
|
*-- YYYY YYYM MMMD DDDD HHHH HMMM MMMS SSSS
|
||||||
lnResto = tnTimeStamp
|
lnResto = tnTimestamp
|
||||||
lnYear = INT( lnResto / 2**25 + 1980)
|
lnYear = INT( lnResto / 2**25 + 1980)
|
||||||
lnResto = lnResto % 2**25
|
lnResto = lnResto % 2**25
|
||||||
lnMonth = INT( lnResto / 2**21 )
|
lnMonth = INT( lnResto / 2**21 )
|
||||||
@@ -4524,15 +4526,19 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
|
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
|
||||||
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
loLang = _SCREEN.o_FoxBin2Prg_Lang
|
||||||
DIMENSION taLineasExclusion(tnCodeLines), taBloquesExclusion(1,2)
|
DIMENSION taLineasExclusion(tnCodeLines), taBloquesExclusion(1,2)
|
||||||
STORE 0 TO tnBloquesExclusion, lnPrimerID, I, X, lnLen_IDFinBQ
|
STORE 0 TO tnBloquesExclusion, lnPrimerID, I, X
|
||||||
|
|
||||||
IF tnCodeLines > 1
|
IF tnCodeLines > 1
|
||||||
IF EMPTY(ta_ID_Bloques)
|
IF EMPTY(ta_ID_Bloques)
|
||||||
DIMENSION ta_ID_Bloques(2,2)
|
DIMENSION ta_ID_Bloques(2,4)
|
||||||
ta_ID_Bloques(1,1) = '#IF'
|
ta_ID_Bloques(1,1) = '#IF'
|
||||||
ta_ID_Bloques(1,2) = '#ENDI'
|
ta_ID_Bloques(1,2) = '#ENDI'
|
||||||
|
ta_ID_Bloques(1,3) = LEN( ta_ID_Bloques(1,1) )
|
||||||
|
ta_ID_Bloques(1,4) = LEN( ta_ID_Bloques(1,2) )
|
||||||
ta_ID_Bloques(2,1) = 'TEXT'
|
ta_ID_Bloques(2,1) = 'TEXT'
|
||||||
ta_ID_Bloques(2,2) = 'ENDT'
|
ta_ID_Bloques(2,2) = 'ENDT'
|
||||||
|
ta_ID_Bloques(2,3) = LEN( ta_ID_Bloques(2,1) )
|
||||||
|
ta_ID_Bloques(2,4) = LEN( ta_ID_Bloques(2,2) )
|
||||||
lnID_Bloques_Count = ALEN( ta_ID_Bloques, 1 )
|
lnID_Bloques_Count = ALEN( ta_ID_Bloques, 1 )
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -4563,7 +4569,6 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
|
|
||||||
IF lnPrimerID > 0 && Se ha identificado un ID de bloque excluyente
|
IF lnPrimerID > 0 && Se ha identificado un ID de bloque excluyente
|
||||||
tnBloquesExclusion = tnBloquesExclusion + 1
|
tnBloquesExclusion = tnBloquesExclusion + 1
|
||||||
lnLen_IDFinBQ = LEN( ta_ID_Bloques(lnPrimerID,2) )
|
|
||||||
DIMENSION taBloquesExclusion(tnBloquesExclusion,2)
|
DIMENSION taBloquesExclusion(tnBloquesExclusion,2)
|
||||||
taBloquesExclusion(tnBloquesExclusion,1) = I
|
taBloquesExclusion(tnBloquesExclusion,1) = I
|
||||||
taLineasExclusion(I) = .T.
|
taLineasExclusion(I) = .T.
|
||||||
@@ -4579,12 +4584,12 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, lnLen_IDFinBQ, X, 1 ) ;
|
CASE lnPrimerID = 1 AND .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, 0, X, 1 ) ;
|
||||||
AND NOT .currentLineIsPreviousLineContinuation( @taCodeLines, I )
|
AND NOT .currentLineIsPreviousLineContinuation( @taCodeLines, I )
|
||||||
*-- Busca el primer marcador (#IF o TEXT)
|
*-- Busca el primer marcador (#IF) NOTA: No busco [TEXT] porque no se pueden anidar.
|
||||||
lnAnidamientos = lnAnidamientos + 1
|
lnAnidamientos = lnAnidamientos + 1
|
||||||
|
|
||||||
CASE .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, lnLen_IDFinBQ, X, 2 )
|
CASE .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, 0, X, 2 )
|
||||||
*-- Busca el segundo marcador (#ENDIF o ENDTEXT)
|
*-- Busca el segundo marcador (#ENDIF o ENDTEXT)
|
||||||
lnAnidamientos = lnAnidamientos - 1
|
lnAnidamientos = lnAnidamientos - 1
|
||||||
|
|
||||||
@@ -4616,7 +4621,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
|
|
||||||
FINALLY
|
FINALLY
|
||||||
RELEASE taCodeLines, tnCodeLines, ta_ID_Bloques, taLineasExclusion, tnBloquesExclusion, taBloquesExclusion, loLang ;
|
RELEASE taCodeLines, tnCodeLines, ta_ID_Bloques, taLineasExclusion, tnBloquesExclusion, taBloquesExclusion, loLang ;
|
||||||
, lnBloques, I, X, lnPrimerID, lnLen_IDFinBQ, lnID_Bloques_Count, lcWord, lnAnidamientos, lcLine, lcPrevLine
|
, lnBloques, I, X, lnPrimerID, lnID_Bloques_Count, lcWord, lnAnidamientos, lcLine, lcPrevLine
|
||||||
ENDTRY
|
ENDTRY
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
@@ -4732,11 +4737,11 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
FUNCTION RowTimeStamp(ltDateTime)
|
FUNCTION RowTimeStamp(ltDateTime)
|
||||||
* Generate a FoxPro 3.0-style row timestamp
|
* Generate a FoxPro 3.0-style row timestamp
|
||||||
*-- CONVIERTE UN DATO TIPO DATETIME EN TIMESTAMP NUMERICO USADO POR LOS ARCHIVOS SCX/VCX/etc.
|
*-- CONVIERTE UN DATO TIPO DATETIME EN TIMESTAMP NUMERICO USADO POR LOS ARCHIVOS SCX/VCX/etc.
|
||||||
LOCAL lcTimeValue, tnTimeStamp
|
LOCAL lcTimeValue, tnTimestamp
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
IF EMPTY(ltDateTime)
|
IF EMPTY(ltDateTime)
|
||||||
tnTimeStamp = 0
|
tnTimestamp = 0
|
||||||
EXIT
|
EXIT
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -4744,7 +4749,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
m.ltDateTime = DATETIME()
|
m.ltDateTime = DATETIME()
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
tnTimeStamp = ( YEAR(m.ltDateTime) - 1980) * 2^25 ;
|
tnTimestamp = ( YEAR(m.ltDateTime) - 1980) * 2^25 ;
|
||||||
+ MONTH(m.ltDateTime) * 2^21 ;
|
+ MONTH(m.ltDateTime) * 2^21 ;
|
||||||
+ DAY(m.ltDateTime) * 2^16 ;
|
+ DAY(m.ltDateTime) * 2^16 ;
|
||||||
+ HOUR(m.ltDateTime) * 2^11 ;
|
+ HOUR(m.ltDateTime) * 2^11 ;
|
||||||
@@ -4752,7 +4757,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
|
|||||||
+ SEC(m.ltDateTime)
|
+ SEC(m.ltDateTime)
|
||||||
ENDTRY
|
ENDTRY
|
||||||
|
|
||||||
RETURN INT(tnTimeStamp)
|
RETURN INT(tnTimestamp)
|
||||||
ENDFUNC
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user