2009-12-21 8 views
0

Im essayant de lire un fichier dans gprolog, mais j'ai un petit problème, il semble lire une ligne, puis passez un, puis lire la suivante, etc ...Prolog Read ignore les lignes?

Heres mon code:

readFichierEnt([],Fichier_Ent) :- read(end_of_file). 
readFichierEnt(ExampleList,Fichier_Ent) :- read(X), write(X), readFichierEnt(ExampleList,Fichier_Ent). 

Si j'ai fourni traintest.txt que le fichier d'entrée I get:

sdfasdf1dfas3fas5end_of_file 

alors que le fichier est:

classes([unacc, acc, good, vgood]). 
sdfasdf1. 
asdfas2. 
dfas3. 
fas4. 
fas5. 
df6. 

Quelqu'un peut-il m'aider avec ceci? Merci.

Répondre

1

Voici deux choses à considérer:

  • lecture/1 échoue juste au moment où la fin du fichier est atteinte. Vous n'avez pas à vérifier pour cela.
  • Ce qui est pire, votre lecture (end_of_file) lit un terme, et échoue si ce n'est pas le prédicat "end_of_file". C'est le but qui consomme chaque seconde ligne dans votre exemple.