скопировать файл в другой файл в прологе - PullRequest
0 голосов
/ 25 мая 2010

Доброе утро / вечер

как я могу записать что-то в файл, а затем скопировать его содержимое в текущий файл?

например, я обращаюсь к file1.pro, затем у меня есть правило написать что-то в file2.pro, после того, как это правило завершит свою работу, я хочу добавить содержимое file2.pro int file1.pro.

когда я пытался добавить файл file1.pro напрямую, данные отображаются как неопределенные символы, я не знаю, почему

пожалуйста, помогите мне

спасибо.

1 Ответ

1 голос
/ 26 марта 2012

Особенности решения могут зависеть от диалекта Пролог. Здесь я использую SWI-Prolog. SWI-Prolog позволяет открывать файл с помощью open (SrcDest, Mode, Stream), где SrcDest будет именем вашего файла, Mode - чтение / запись / добавление / обновление, а Stream - «дескриптор файла», который будет возвращать система. В руководстве поясняется различие между добавлением и обновлением следующим образом: «Режим добавления открывает файл для записи, позиционируя указатель файла в конце. Режим обновления открывает файл для записи, располагая указатель файла в начале файла без усечения. файл. "

Для копирования из одного потока в другой вы должны использовать copy_stream_data (Stream1, Stream2).

Наконец, вы должны закрыть потоки, иначе выходной файл будет пустым.

Соединение всего дает

copy (File1, File2): - открыть (File1, read, Stream1), открыть (File2, write, Stream2), copy_stream_data (File1, File2), закрыть (File1), закрыть (File2).

Если вам нужно переписать второй файл, просто используйте режим обновления / добавления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...