Skip to content

About Proposed-Changes #66

Description

@cano-hernan

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.

  • Me parece que los tipos Fecha y FechaHora en
    case tctype $ "CDTBGMQVWX"

          case tctype == 'D'
              tcvalue = '"' + strtran(dtoc(tcvalue), '.', '-') + '"'
          case tctype == 'T'
              tcvalue = '"' + strtran(ttoc(tcvalue), '.', '-') + '"'
    

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions