FoxBin2Prg v1.19.47 Preview-3
- Agregado soporte de memos multi-linea, para evitar comprimirlos en una sola y poder comparar mejor
This commit is contained in:
BIN
foxbin2prg.exe
BIN
foxbin2prg.exe
Binary file not shown.
@@ -23928,7 +23928,7 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
|
|||||||
.set_Line( @tcLine, @taCodeLines, I )
|
.set_Line( @tcLine, @taCodeLines, I )
|
||||||
|
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE EMPTY( tcLine )
|
CASE EMPTY( tcLine ) OR LEFT(tcLine, 1) == '*'
|
||||||
LOOP
|
LOOP
|
||||||
|
|
||||||
CASE C_RECORD_F $ tcLine && Fin
|
CASE C_RECORD_F $ tcLine && Fin
|
||||||
@@ -23938,26 +23938,26 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
|
|||||||
*-- Estructura a reconocer:
|
*-- Estructura a reconocer:
|
||||||
* <fieldName>VALOR</fieldName>
|
* <fieldName>VALOR</fieldName>
|
||||||
lcFieldName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
lcFieldName = STREXTRACT( tcLine, '<', '>', 1, 0 )
|
||||||
lcValue = STREXTRACT( tcLine, '<' + lcFieldName + '>', '</' + lcFieldName + '>', 1, 0 )
|
lcValue = STREXTRACT( tcLine, '<' + lcFieldName + '>', '</' + lcFieldName + '>', 1, 0+2 )
|
||||||
loField = toFields.Item(lcFieldName)
|
loField = toFields.Item(lcFieldName)
|
||||||
|
|
||||||
lcFieldType = loField._Type
|
lcFieldType = loField._Type
|
||||||
llNoCPTran = CAST( loField._NoCPTran as Logical)
|
llNoCPTran = CAST( loField._NoCPTran as Logical)
|
||||||
|
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE lcFieldType == 'L'
|
CASE lcFieldType == 'L' && Logical (Boolean)
|
||||||
luValue = CAST(lcValue as Logical)
|
luValue = CAST(lcValue as Logical)
|
||||||
|
|
||||||
CASE lcFieldType == 'G'
|
CASE lcFieldType == 'G' && General (NOT SUPPORTED)
|
||||||
luValue = ''
|
luValue = ''
|
||||||
|
|
||||||
CASE lcFieldType == 'W'
|
CASE lcFieldType == 'W' && Blob (Memo binario)
|
||||||
luValue = STRCONV(lcValue,14)
|
luValue = STRCONV(lcValue,14)
|
||||||
|
|
||||||
CASE lcFieldType == 'Q'
|
CASE lcFieldType == 'Q' && Varbinary
|
||||||
luValue = STRCONV(lcValue,14)
|
luValue = STRCONV(lcValue,14)
|
||||||
|
|
||||||
CASE lcFieldType == 'V'
|
CASE lcFieldType == 'V' && Varchar
|
||||||
IF llNoCPTran
|
IF llNoCPTran
|
||||||
*-- If NoCPTran, then must encode in b64binary
|
*-- If NoCPTran, then must encode in b64binary
|
||||||
luValue = STRCONV(lcValue,14)
|
luValue = STRCONV(lcValue,14)
|
||||||
@@ -23965,36 +23965,46 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
|
|||||||
luValue = .Decode(lcValue)
|
luValue = .Decode(lcValue)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
CASE lcFieldType == 'M'
|
CASE lcFieldType == 'M' && Memo
|
||||||
IF llNoCPTran
|
IF llNoCPTran
|
||||||
*-- If NoCPTran, then must encode in b64binary
|
*-- If NoCPTran, then must encode in b64binary
|
||||||
luValue = STRCONV(lcValue,14)
|
luValue = STRCONV(lcValue,14)
|
||||||
ELSE
|
ELSE
|
||||||
luValue = .Decode(RTRIM(lcValue), .F.)
|
* Si el memo es multi-l<>nea, leer hasta encontrar el final ']]>' del CDATA.
|
||||||
|
DO WHILE .T.
|
||||||
|
IF ']]>' $ tcLine THEN
|
||||||
|
luValue = .Decode(lcValue, .T.)
|
||||||
|
EXIT
|
||||||
|
ELSE
|
||||||
|
I = I + 1
|
||||||
|
.set_Line( @tcLine, @taCodeLines, I )
|
||||||
|
lcValue = lcValue + CR_LF + tcLine
|
||||||
|
ENDIF
|
||||||
|
ENDDO
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
CASE lcFieldType == 'D'
|
CASE lcFieldType == 'D' && Date
|
||||||
luValue = CAST(lcValue as Date)
|
luValue = CAST(lcValue as Date)
|
||||||
|
|
||||||
CASE lcFieldType == 'T'
|
CASE lcFieldType == 'T' && Datetime
|
||||||
luValue = CAST(lcValue as DateTime)
|
luValue = CAST(lcValue as DateTime)
|
||||||
|
|
||||||
CASE lcFieldType == 'Y'
|
CASE lcFieldType == 'Y' && Currency
|
||||||
luValue = CAST(lcValue as Currency)
|
luValue = CAST(lcValue as Currency)
|
||||||
|
|
||||||
CASE lcFieldType == 'I'
|
CASE lcFieldType == 'I' && Integer
|
||||||
luValue = CAST(lcValue as Integer)
|
luValue = CAST(lcValue as Integer)
|
||||||
|
|
||||||
CASE lcFieldType == 'B'
|
CASE lcFieldType == 'B' && Double
|
||||||
luValue = CAST(lcValue as Double)
|
luValue = CAST(lcValue as Double)
|
||||||
|
|
||||||
CASE lcFieldType == 'F'
|
CASE lcFieldType == 'F' && Float
|
||||||
luValue = CAST(lcValue as Float)
|
luValue = CAST(lcValue as Float)
|
||||||
|
|
||||||
CASE lcFieldType == 'N'
|
CASE lcFieldType == 'N' && Numeric
|
||||||
luValue = CAST(lcValue as Numeric)
|
luValue = CAST(lcValue as Numeric)
|
||||||
|
|
||||||
OTHERWISE && Asume 'C'
|
OTHERWISE && Asume 'C' && Character
|
||||||
IF llNoCPTran
|
IF llNoCPTran
|
||||||
*-- If NoCPTran, then must encode in b64binary
|
*-- If NoCPTran, then must encode in b64binary
|
||||||
luValue = STRCONV(lcValue,14)
|
luValue = STRCONV(lcValue,14)
|
||||||
@@ -24071,13 +24081,13 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
|
|||||||
OR lcFieldType $ 'DT' AND luValue == {} ;
|
OR lcFieldType $ 'DT' AND luValue == {} ;
|
||||||
OR lcFieldType $ 'YIBFN' AND luValue == 0
|
OR lcFieldType $ 'YIBFN' AND luValue == 0
|
||||||
|
|
||||||
CASE lcFieldType == 'W'
|
CASE lcFieldType == 'W' && Blob (Memo binario)
|
||||||
luValue = STRCONV(luValue,13)
|
luValue = STRCONV(luValue,13)
|
||||||
|
|
||||||
CASE lcFieldType == 'Q'
|
CASE lcFieldType == 'Q' && Varbinary
|
||||||
luValue = STRCONV(luValue,13)
|
luValue = STRCONV(luValue,13)
|
||||||
|
|
||||||
CASE lcFieldType == 'V'
|
CASE lcFieldType == 'V' && Varchar
|
||||||
IF llNoCPTran THEN
|
IF llNoCPTran THEN
|
||||||
*-- If NoCPTran, then must encode in b64binary
|
*-- If NoCPTran, then must encode in b64binary
|
||||||
luValue = STRCONV(luValue,13)
|
luValue = STRCONV(luValue,13)
|
||||||
@@ -24085,7 +24095,7 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
|
|||||||
luValue = .Encode(luValue)
|
luValue = .Encode(luValue)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
CASE lcFieldType $ 'C'
|
CASE lcFieldType $ 'C' && Character
|
||||||
IF llNoCPTran THEN
|
IF llNoCPTran THEN
|
||||||
*-- If NoCPTran, then must encode in b64binary
|
*-- If NoCPTran, then must encode in b64binary
|
||||||
luValue = STRCONV(luValue,13)
|
luValue = STRCONV(luValue,13)
|
||||||
@@ -24093,12 +24103,12 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
|
|||||||
luValue = .Encode(RTRIM(luValue))
|
luValue = .Encode(RTRIM(luValue))
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
CASE lcFieldType $ 'M'
|
CASE lcFieldType $ 'M' && Memo
|
||||||
IF llNoCPTran THEN
|
IF llNoCPTran THEN
|
||||||
*-- If NoCPTran, then must encode in b64binary
|
*-- If NoCPTran, then must encode in b64binary
|
||||||
luValue = STRCONV(luValue,13)
|
luValue = STRCONV(luValue,13)
|
||||||
ELSE
|
ELSE
|
||||||
luValue = .Encode(RTRIM(luValue), .F.)
|
luValue = .Encode(RTRIM(luValue), .T.)
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
ENDCASE
|
ENDCASE
|
||||||
@@ -24130,7 +24140,8 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
|
|||||||
LPARAMETERS tcString, tl_isCDATA
|
LPARAMETERS tcString, tl_isCDATA
|
||||||
LOCAL lcString
|
LOCAL lcString
|
||||||
IF tl_isCDATA THEN
|
IF tl_isCDATA THEN
|
||||||
lcString = '<![CDATA[' + STRTRAN(tcString, ']]>', ']]]]><![CDATA[>') + ']]>'
|
*lcString = '<![CDATA[' + STRTRAN(tcString, ']]>', ']]]]><![CDATA[>') + ']]>'
|
||||||
|
lcString = '<![CDATA[' + STRTRAN( STRTRAN( tcString, '<![CDATA[', '<![CDATA['), ']]>', ']]>') + ']]>'
|
||||||
ELSE
|
ELSE
|
||||||
lcString = STRTRAN(tcString, '&', '&')
|
lcString = STRTRAN(tcString, '&', '&')
|
||||||
lcString = STRTRAN(lcString, '>', '>')
|
lcString = STRTRAN(lcString, '>', '>')
|
||||||
@@ -24149,9 +24160,7 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
|
|||||||
LPARAMETERS tcString, tl_isCDATA
|
LPARAMETERS tcString, tl_isCDATA
|
||||||
LOCAL lcString
|
LOCAL lcString
|
||||||
IF tl_isCDATA THEN
|
IF tl_isCDATA THEN
|
||||||
lcString = STREXTRACT( ;
|
lcString = STRTRAN( STRTRAN( STREXTRACT( tcString, '<![CDATA[', ']]>'), '<![CDATA[', '<![CDATA['), ']]>', ']]>')
|
||||||
STRTRAN(tcString, ']]]]><![CDATA[>', ']]>') ;
|
|
||||||
, '<![CDATA[', ']]>')
|
|
||||||
ELSE
|
ELSE
|
||||||
lcString = STRTRAN(tcString, '	', CHR(9))
|
lcString = STRTRAN(tcString, '	', CHR(9))
|
||||||
lcString = STRTRAN(lcString, ' ', CHR(10))
|
lcString = STRTRAN(lcString, ' ', CHR(10))
|
||||||
|
|||||||
Reference in New Issue
Block a user