Инструменты пользователя

Инструменты сайта


examination:flp:question61

Открытие и закрытие файлов (openread, openwrite, openappend, openmodify)

Следующие разделы описывают стандартные предикаты для открытия и закрытии файлов.

Замечание. Во время открытия файла необходимо помнить, что обратный слэш (\), используемый для указания подкаталога диска, в DOS-ориентированных версиях Пролога является ESC-символом (управляющим). Поэтому при указании пути доступа файла в программе нужно всегда указывать два обратных слэша (\\).

Например, строка:

   "с:\\prolog\\include\\iodecl.con" 

представляет путь доступа к файлу:

   с:\prolog\include\iodecl.con 

Предикат openread/2

Предикат openread открывает файл OSFileName дли чтения, используя формат:

 openread(SymbolicFileName,OSFileName) % (i, i)

Пролог обращается к открытому файлу по символическому имени SymbolicFileName, объявленному в домене file. Если файл не может быть открыт, Пролог выдаст сообщение об ошибке. Предикат openwrite/2

Предикат openwrite открывает файл OSFileName для записи, используя формат:

 openwrite(SymbolicFileName,OSFileName) % (i,i)

Если файл уже существует, то он уничтожается. В противном случае Пролог создает новый файл и помещает его в соответствующем каталоге. Если файл не может быть создан, Пролог выдаст сообщение об ошибке. Предикат openappend/2

Предикат openappend открывает файл OSFileName для записи в конец файла. При этом используется формат:

 openappend(SymbolicFileName,OSFileName) % (i,i)

Если файл не может быть открыт на запись, Пролог сообщит об ошибке. Предикат openmodify/2

Предикат openmodify открывает файл OSFileName и для записи, и для чтения; если файл уже существует, он не будет перезаписан, openmodify имеет формат:

 openmodify(SymbolicFileName,OSFileName) % (i,i)

Если система не может открыть OSFileName, Пролог сообщит об ошибке. Для заполнения файла с произвольным доступом предикат openmodify может использоваться вместе со стандартным предикатом filepos.

examination/flp/question61.txt · Последние изменения: 2014/01/15 08:17 (внешнее изменение)