ВУЗ:
Составители:
Рубрика:
31
readdevice(filein),
readln(Str1),
write(Str1)
....................
readdevice(filein2),
readln(Str),
write(Str),
.................
closefile(filein),
closefile(filein2),
closefile(fileout),
.................
Следует помнить, что при открытии файла предикатом
openwrite(SimbolicFileName,OSFileName) существующий файл
очищается, несуществующий – создается. Для дозаписи сущест-
вующий файл открывается предикатом
openappend(SimbolicFileName,OSFileName).
Открыть файл для чтения и записи можно предикатом
openmodify(SimbolicFileName,OSFileName).
Когда вы работаете с файлом в режиме чтения – записи, сле-
дует после каждой записи использовать предикат
flush(SimbolicFileName),
который вызывает принудительную
очистку буфера. Он полезен
также во время отладки программы, когда вы пишите некоторую
информацию для трассировки. (Flush существенно замедляет вы-
полнение программы.)
Для реализации нелинейного ("гипертекстового") доступа к
файлу используется предикат
filepos(SymbolicFileName,FilePosition,Mode),
перемещающий (шаблон (i,i,i)) и берущий (i,o,i) текущую позицию
в файле.
Параметр Mode определяет "точку отсчета" позиции:
0 – от начала файла,
1 – относительно текущей позиции
,
2 – относительно конца файла.
32
Предикат eof(SymbolicFileName) предназначен для контроля
конца файла.
domains
nondeterm repeat
читать_и_обработать_строки
обработать_строку(symbol)
....................
clauses
repeat.
repeat:-repeat.
читать_и_обработать_строки:-
repeat,
readln(f,S),
обработать_строку(S),
eof(f),!,closefile(f);!.
......................
Файлы можно копировать, переименовывать, удалять, ис-
кать.
copyfile(FromName, ToName)
renamefile(OldOSFileName, NewOSFileName)
deletefile(OSFileName)
searchfile(SearchPath, FileName, FoundName)
existfile(OSFileName)
3.6.2. Операции с именами файлов
Для работы с именами файлов используются предикаты:
filenameext(FullName,Name,Mask)-(i,o,o),(o,i,i)
filenamepath(FullName,Path,Name)- (i,o,o),(o,i,i)
Примеры:
filenameext с шаблоном (i,o,o):
filenameext("myprog.vpr",Name,Ext),
write("Name=",Name, "Ext=",Ext),nl,
Выход:
Name=myprog Ext=.vpr
readdevice(filein), Предикат eof(SymbolicFileName) предназначен для контроля
readln(Str1), конца файла.
write(Str1) domains
.................... nondeterm repeat
readdevice(filein2), читать_и_обработать_строки
readln(Str), обработать_строку(symbol)
write(Str), ....................
................. clauses
closefile(filein), repeat.
closefile(filein2), repeat:-repeat.
closefile(fileout), читать_и_обработать_строки:-
................. repeat,
Следует помнить, что при открытии файла предикатом readln(f,S),
openwrite(SimbolicFileName,OSFileName) существующий файл обработать_строку(S),
очищается, несуществующий – создается. Для дозаписи сущест- eof(f),!,closefile(f);!.
вующий файл открывается предикатом ......................
openappend(SimbolicFileName,OSFileName). Файлы можно копировать, переименовывать, удалять, ис-
кать.
Открыть файл для чтения и записи можно предикатом copyfile(FromName, ToName)
openmodify(SimbolicFileName,OSFileName). renamefile(OldOSFileName, NewOSFileName)
Когда вы работаете с файлом в режиме чтения – записи, сле- deletefile(OSFileName)
дует после каждой записи использовать предикат searchfile(SearchPath, FileName, FoundName)
existfile(OSFileName)
flush(SimbolicFileName),
который вызывает принудительную очистку буфера. Он полезен 3.6.2. Операции с именами файлов
также во время отладки программы, когда вы пишите некоторую
информацию для трассировки. (Flush существенно замедляет вы- Для работы с именами файлов используются предикаты:
полнение программы.) filenameext(FullName,Name,Mask)-(i,o,o),(o,i,i)
Для реализации нелинейного ("гипертекстового") доступа к filenamepath(FullName,Path,Name)- (i,o,o),(o,i,i)
файлу используется предикат
Примеры:
filepos(SymbolicFileName,FilePosition,Mode), filenameext с шаблоном (i,o,o):
перемещающий (шаблон (i,i,i)) и берущий (i,o,i) текущую позицию filenameext("myprog.vpr",Name,Ext),
в файле. write("Name=",Name, "Ext=",Ext),nl,
Параметр Mode определяет "точку отсчета" позиции: Выход:
0 – от начала файла, Name=myprog Ext=.vpr
1 – относительно текущей позиции,
2 – относительно конца файла.
31 32
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »
