IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

utilisation de JSON - problème tout bête dans le TopLevel


Sujet :

Caml

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Par défaut utilisation de JSON - problème tout bête dans le TopLevel
    Suite à la discussion sur Marschall et autre SExpLib, j'ai retenu JSON qui correspond le mieux à mon besoin :
    -écrire dans un fichier des types un peu complexes
    -types non circulaires
    -données pas gigantesques, donc s'accomodant du format texte
    -et surtout "human readable" et éditables

    J'ai donc téléchargé json-wheel-1.0.4.tar.gz

    1) ce qui fonctionne :

    j'ai testé avec succès dans le TopLevel l'exemple donné :

    Code ocaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    (* Program that builds a JSON object and saves it into a file *)
    open Json_type
     
    let obj = Object [ "x", Int 1;
                       "y", Int 2 ]
    let _ = Json_io.save_json "point.js" obj

    J'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #use "...../json_type.ml"
    après avoir encapsulé le contenu du fichier .ml original dans un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    module Json_type = struct .... end
    ça fonctionne bien...

    2) ce qui coince :

    la suite de l'exemple donné sur le site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    (* Program that reads a JSON object from a file and converts it
       into a specialized type. 
       Uses file "point.js" created by the previous example. *)
    open Json_type
    open Json_type.Browse
     
    let json_obj = Json_io.load_json "point.js"
    let tbl = make_table (objekt json_obj)
    let x = int (field tbl "x")
    let y = int (field tbl "y")
    let _ = Printf.printf "x = %i\ny = %i\n" x y
    Je n'y arrive pas : en effet, le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #use "...../json_io.ml"
    exige un Json_lexer que je n'ai pas, il est livré dans le .tar.gz en tant que "Json_lexer.mll", je ne connait pas ce type de fichier et je ne sais pas comment l'utiliser dans le TopLevel...

    Quelqu'un peut m'aider ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Par défaut
    après avoir encapsulé le contenu du fichier .ml original dans un
    Ohlà, c'est quoi ces méthodes barbares ? Tu ne peux pas compiler normalement le fichier ?

    Si tu es sous un système d'exploitation civilisé (GNU/Linux ou un BSD), pourquoi ne pas utiliser tout simplement le Makefile ?

    "Json_lexer.mll", je ne connait pas ce type de fichier et je ne sais pas comment l'utiliser dans le TopLevel...
    C'est un fichier "lex", dont tu peux obtenir un .ml en utilisant "ocamllex" : ocamllex json_lexer.mll produira un fichier json_lexer.ml que tu peux alors compiler/utiliser normalement.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Par défaut
    Citation Envoyé par bluestorm Voir le message
    Ohlà, c'est quoi ces méthodes barbares ? Tu ne peux pas compiler normalement le fichier ?

    Si tu es sous un système d'exploitation civilisé (GNU/Linux ou un BSD), pourquoi ne pas utiliser tout simplement le Makefile ?
    euh, bein je suis sous WinXP et je migre en ce moment vers Ubuntu mais j'ai encore besoin de WinXP pendant quelques mois ... Il y a une autre méthode pour moi ?

    C'est un fichier "lex", dont tu peux obtenir un .ml en utilisant "ocamllex" : ocamllex json_lexer.mll produira un fichier json_lexer.ml que tu peux alors compiler/utiliser normalement.
    merci je vais tester cela. C'est quoi un fichier lex ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Par défaut
    Un truc qui décrit un lexer (un machin qui découpe un fichier inconnu en suite de symboles reconnaissables, dans le but par exemple de les parser (~ en extraire une structure) ensuite).

    Tu trouveras plus d'info sur l'utilisation de ocamllex dans DA-OCaml, mais le site est temporairement down.

  5. #5
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Regarde un peu si il n'y a pas un Makefile.nt dans le dossier racine, ou mieux, un README, INSTALL ou un truc dans ce genre-là.

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Installe MSys et Mingw (de toute façon, pour faire du développement mixte Windows-Linux sous Windows, c'est quasi indispensable), tu pourras utiliser les Makefiles.

    --
    Jedaï

Discussions similaires

  1. (problème tout bête?) Tabulation dans JDialog
    Par Akhan dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 29/05/2007, 14h23
  2. Réponses: 39
    Dernier message: 21/10/2006, 13h53
  3. [MySQL] Php, problème tout bète... :D
    Par Djsarkndp dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/04/2006, 18h36
  4. un problème tout bête de scanf !
    Par eizo dans le forum C
    Réponses: 9
    Dernier message: 31/10/2005, 12h29
  5. [FLASH MX]Un problème tout bête !
    Par Kikoah dans le forum Flash
    Réponses: 11
    Dernier message: 02/06/2004, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo