1
votes

Erlang: erreur d'exception: aucune correspondance de la valeur de droite {error, enoent} lors de la lecture d'un fichier texte

Je travaille actuellement sur un projet erlang et je suis coincé dans la lecture du fichier. Je veux lire un fichier texte qui se trouve dans le dossier / src où tous les erlang et un fichier texte sont dans la même structure. De plus, je ne peux pas lire le fichier malgré la spécification des chemins de fichiers. Toute aide serait appréciée.

start() ->
    {ok,DataList} = file:consult("Calls.txt"),
    io:format("** Calls to be made **"),
    io:fwrite("~w~n",[DataList]).

Le fichier de données stocke des contenus tels que: {john, [jill, joe, bob]}.


0 commentaires

3 Réponses :


0
votes

enoent signifie "Erreur: Aucune entrée / entité". Cela signifie que le fichier n'a pas pu être trouvé. Lorsque j'essaye votre code, il fonctionne correctement et affiche

[{john,[jill,joe,bob]}]


7 commentaires

pouvez-vous s'il vous plaît m'aider à me faire savoir que ce qui ne va pas dans mon système? quels chemins de fichiers supplémentaires dois-je définir? J'ai le code erlang et le fichier texte dans le dossier / src et je ne parviens toujours pas à lire le fichier. Comment puis-je réparer cela?


Comment exécutez-vous exactement le code? Que se passe-t-il lorsque vous spécifiez le chemin complet comme argument pour consulter ?


c (échange). exchage: start (). Je lance le code comme ça. La même erreur s'affiche.


Que renvoie pwd (). dans le shell erlang?


c: /Users/ayush/Desktop/erl-23.0/usr est retourné sur pwd ().


Essayez de cd ("/ chemin / vers / src"). avant d'exécuter le programme.


J'ai tout essayé. Rien ne fonctionne. J'ai également configuré des variables d'environnement, mais cela n'a pas non plus fonctionné. J'écris du code dans Eclipse. Dois-je installer quelque chose là-bas?



1
votes

Essayez d'ajouter le nom du dossier au chemin ou essayez de définir un correctif complet pour le fichier:

1> {ok,DataList} = file:consult("src/Calls.txt").

Remarques: l'erreur {error, enoent} signifie que le fichier n'existe pas ou vous n'avez pas les droits de lecture / écriture du fichier actuel, dans ce cas, vous devez définir des droits 777 ou similaires.


0 commentaires

1
votes

Si vous devez utiliser src / call.txt, cela signifie simplement que votre IDE (ou vous) a créé un dossier src dans lequel le fichier calls.txt a été placé. Dans le même temps, l'EDI utilise un chemin qui inclut uniquement le dossier de niveau supérieur (c'est-à-dire le dossier racine du projet IDE). Donc, src / call.txt doit être utilisé dans ce cas. Ce n’est pas un problème avec Erlang, ni même avec l’EDI. C'est juste la façon dont votre projet est configuré.

Vous pouvez faire l'une des deux choses. Déplacez le fichier calls.txt d'un niveau vers le haut dans le gestionnaire de fichiers IDE, afin qu'il puisse être référencé en tant que calls.txt, pas src / call.txt. Vous pouvez également simplement changer le chemin en "calls.txt" avant de l'exécuter à partir de la ligne de commande.


0 commentaires