2016-06-16 8 views
0

Я учусь программировать в прологе. В настоящее время я изучаю ввод-вывод и столкнулся с следующей проблемой.Пролог: не вижу файл

Я хочу, чтобы прочитать файл dane.txt с помощью этой программы:

czytajPlik :- 
    open('dane.txt',read,X), 
    current_input(CI), 
    set_input(X), 
    kodOdczytujacy, 
    close(X), 
    set_input(CI). 

kodOdczytujacy :- read(Term), obsluz(Term). 

obsluz(end_of_file):-!. 
obsluz(Term) :- 
     write(Term),nl,kodOdczytujacy. 

Однако, когда в Прологе, когда я пытаюсь использовать czytajPlik., я получаю следующее сообщение об ошибке:

ERROR: open/3: source_sink `'dane.txt'' does not exist (No such file or directory) 

файл существует и имеет собственное имя.

+0

Вы должны указать абсолютный путь 'dane.txt'. – joel76

+1

Запускаете ли вы программу с активным каталогом, который содержит 'dane.txt'? –

ответ

1

Ошибка означает, что интерпретатор Prolog (я предполагаю, что SWIPl) не может открыть файл, потому что он не может найти файл.

Интерпретатор просматривает каталог, в котором он был запущен, по умолчанию. Вы должны либо квалифицировать файл с помощью пути, либо cd в правильный каталог.

Итак, скажем, что вы запустили Prolog из каталога ~/prologstuff, а файл находится в ~/misc.

czytajPlik :- 
    cd('../misc'), 
    open('dane.txt',read,X), 
    ... 

или

czytajPlik :- 
    open('../misc/dane.txt',read,X), 
    ... 

должен решить вашу проблему.

Смежные вопросы