Proposed-Changes.txt
- Se debe revisar si el JsonFox.prg final debe ser UTF8 o si debe ser ANSI, ya que los caracteres gráficos se ven mal.
Si bien en cuanto a comentarios no importa, he notado que hay algunos caracteres como por ejm
en las funciones
hidden function peek
hidden function peekNext
hay un caracter gráfico en el RETURN de cada una.
- Hay muchas estructuras WITH/ENDWITH con la deficiencia de tener un RETURN dentro de ella.
Por ejm:
hidden function advance
with this
.current = .current + 1
return substr(.source, .current-1, 1)
endwith
endfunc
y lo mismo con
hidden function peek
hidden function peekNext
hidden function identifier
hidden function number(tChar as Character)
hidden function string
function isAtEnd
... y muchas más.
- Considero que la vble privada JSONUtils ya no es necesaria.
private JSONUtils
Si alguien me indica que no debe suprimirse, me aclara.
Creo q puede suprimirse y dejar que cada clase/objeto use su propia
this.oUtils
- Tanto en la anterior
define class JSONClass as session
que está en src\jsonclass.prg
como en la nueva
define class JSONFox as session
que está en src\jsonfox_class.prg
hay un bug de programación.
En el Init de la nueva class JSONFox está (q luce bien):
function init
this.aCustomArray[1] = .null.
this.oUtils = createobject("JSONUtils")
this.lTablePrompt = set("TablePrompt") == "ON"
set tableprompt off
endfunc
y el Destroy de ambas está:
function destroy
try
if this.lTablePrompt
lcTablePrompt = this.lTablePrompt
set tableprompt &lcTablePrompt
endif
catch
endtry
endfunc
Si .lTablePrompt es lógica/booleana, entonces el SET TABLEPROMPT en el Destroy es incorrecto.
Quizá no se ha detectado el problema, por que está dentro de un TRY/CATCH mudo.
- Quisiera saber si en
function getValue as string
está faltando o no
B = Double
en el comando
case tctype $ "YFIN"
¿O será que es correcto que esté en
case tctype $ "CDTBGMQVWX" ?
Resp HCano: lo lamento: pienso q no.
deben cambiar a
case tctype == 'D'
tcvalue = '"' + left(ttoc(tcvalue,3),10) + '"'
case tctype == 'T'
tcvalue = '"' + ttoc(tcvalue,3) + '"'
pues tanto DTOC como TTOC --en la forma en que están escritos ahí, originalmente-- dependen de SET DATE, SET CENTURY, SET ROLLOVER, SET MARK, SET POINT, etc.
- En la función
function AnyToJson as memo
la vble llIsCollection necesita ser definida como LOCAL.
Proposed-Changes.txt
Si bien en cuanto a comentarios no importa, he notado que hay algunos caracteres como por ejm
en las funciones
hidden function peek
hidden function peekNext
hay un caracter gráfico en el RETURN de cada una.
Por ejm:
hidden function advance
with this
.current = .current + 1
return substr(.source, .current-1, 1)
endwith
endfunc
y lo mismo con
hidden function peek
hidden function peekNext
hidden function identifier
hidden function number(tChar as Character)
hidden function string
function isAtEnd
... y muchas más.
private JSONUtils
Si alguien me indica que no debe suprimirse, me aclara.
Creo q puede suprimirse y dejar que cada clase/objeto use su propia
this.oUtils
define class JSONClass as session
que está en src\jsonclass.prg
como en la nueva
define class JSONFox as session
que está en src\jsonfox_class.prg
hay un bug de programación.
En el Init de la nueva class JSONFox está (q luce bien):
function init
this.aCustomArray[1] = .null.
this.oUtils = createobject("JSONUtils")
this.lTablePrompt = set("TablePrompt") == "ON"
set tableprompt off
endfunc
y el Destroy de ambas está:
function destroy
try
if this.lTablePrompt
lcTablePrompt = this.lTablePrompt
set tableprompt &lcTablePrompt
endif
catch
endtry
endfunc
Si .lTablePrompt es lógica/booleana, entonces el SET TABLEPROMPT en el Destroy es incorrecto.
Quizá no se ha detectado el problema, por que está dentro de un TRY/CATCH mudo.
function getValue as string
está faltando o no
B = Double
en el comando
case tctype $ "YFIN"
¿O será que es correcto que esté en
case tctype $ "CDTBGMQVWX" ?
Resp HCano: lo lamento: pienso q no.
Me parece que los tipos Fecha y FechaHora en
case tctype $ "CDTBGMQVWX"
deben cambiar a
pues tanto DTOC como TTOC --en la forma en que están escritos ahí, originalmente-- dependen de SET DATE, SET CENTURY, SET ROLLOVER, SET MARK, SET POINT, etc.
function AnyToJson as memo
la vble llIsCollection necesita ser definida como LOCAL.