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 :

[OCAML]Gestion de fichiers


Sujet :

Caml

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Points : 109
    Points
    109
    Par défaut [OCAML]Gestion de fichiers
    bonjour tout le monde,

    j'ai besoin dans un programme d'ecrire dans un fichier, je me suis donc documente sur le sujet et j'ai trouve 2 moyens de le faire :

    avec la librairie Unix genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    let mode = [Unix.O_WRONLY;Unix.O_CREAT;Unix.O_TRUNC] in
     let fic = Unix.openfile "fichier" mode 0o644 in
     let str = "012345678901234565789" in
     let n = Unix.write fic str 4 5 
     in Printf.printf "On a écrit %s dans le fichier\n" (String.sub str 4 n) ;
        Unix.close fic ;;
    malheureusement il me dit :
    Error while linking caml/fichier.cmo: Reference to undefined global `Unix'

    j'ai donc essaye avec les fonctions in_channel/out_channel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let oc = open_out "tmp.log";;
    let s = "salut ca fart ?";;
    ouput oc s 0 15;;
    close_out ic;;
    et la il me dit :
    File "caml/fichier.ml", line 3, characters 0-5:
    Unbound value ouput
    ...

    je comprend pas.. pourtant il connait bien open_out ...


    quelqu'un pourrai m'eclairer please ?

    merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    bonsoir,
    pouvez vous nous dire si vous travaillez sous windows ou linux? quel est la version d'OCAML que vous utilisez?et dans quel repertoire vous enregistrez les fichiers que vous voulez ouvrir en ecriture.???!

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par oniric
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let oc = open_out "tmp.log";;
    let s = "salut ca fart ?";;
    ouput oc s 0 15;;
    close_out ic;;
    et la il me dit :
    File "caml/fichier.ml", line 3, characters 0-5:
    Unbound value ouput
    ...

    je comprend pas.. pourtant il connait bien open_out ...
    En tout cas il connait certainement pas ouput

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par oniric
    [...]
    avec la librairie Unix genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    let mode = [Unix.O_WRONLY;Unix.O_CREAT;Unix.O_TRUNC] in
     let fic = Unix.openfile "fichier" mode 0o644 in
     let str = "012345678901234565789" in
     let n = Unix.write fic str 4 5 
     in Printf.printf "On a écrit %s dans le fichier\n" (String.sub str 4 n) ;
        Unix.close fic ;;
    malheureusement il me dit :
    Error while linking caml/fichier.cmo: Reference to undefined global `Unix'
    [...]
    Ton erreur est clairement indiquée; comme la précédente d'ailleurs.
    Il faut que tu apprennes à les lire et les comprendre.
    Pendant l'édition des liens il ne trouve pas Unix.

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    > ocamlc Unix.cma fichier.ml
    Ça marchera je pense.

  5. #5
    Membre éprouvé
    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
    Points : 1 284
    Points
    1 284
    Par défaut
    Ouhhlalalalala...

    STOP

    N'utilise JAMAIS la librairie Unix si tu ne fais pas de programmation système. Ecrire et lire dans un fichier normal, courant, ça se fait avec les fonctions output/input de Pervasives.

    Si tu veux écrire une chaîne de caractères, le mieux c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    let out_channel = open_out "fichier.txt" in
     
    output_string out_channel "Ca fart ?";
     
    close_out out_channel
    Pour compiler l'exemple utilisant la librairie Unix, la commande est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    > ocamlc -o fichier unix.cma fichier.ml
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    > ocamlc -o fichier unix.cma fichier.ml
    humm oui.. pas la majuscule à unix. Je la fais régulièrement cette erreur. Mais pourquoi ont-ils fait des fichiers avec une minuscule et les modules avec une majuscule ??

Discussions similaires

  1. Gestion de fichier
    Par Zenol dans le forum C++
    Réponses: 6
    Dernier message: 22/09/2005, 15h44
  2. gestion de fichier à partir d'un formulaire
    Par seb59dk dans le forum Access
    Réponses: 3
    Dernier message: 06/09/2005, 16h52
  3. Fonctions de gestion de fichiers
    Par sebduth dans le forum Fortran
    Réponses: 4
    Dernier message: 22/08/2005, 10h38
  4. [JDOM] Gestion "gros fichiers"
    Par Haazheel dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 17/10/2003, 13h42
  5. [Concept] BD ou Gestion par fichier. Intérêt de la BD ?
    Par Cian dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/11/2002, 12h16

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