![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
ПОСЛЕ ЗАКРЫТИЯ ФАЙЛ МОЖНО:
Ø ERASE(<ФП>)
– удалить файл.
Ø RENAME(<ФП>,<НОВОЕ ИМЯ>)
– переименовать файл.
ПОЛЕЗНЫЕ ПОДПРОГРАММЫ ДЛЯ ОБРАБОТКИ ФАЙЛОВ
Ø IORESULT
– функция типа WORD; возвращает условный признак последней операции ввода-вывода, если успешно, то 0.
Ø EOF(<ФП>)
– функция типа BOOLEAN; возвращает true, если указатель файла находится в его конце, иначе – false.
Ø FLUSH(<ФП>)
– очищает буфер, связанный с файлом, гарантируя сохранность всех последних изменений
ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С КАТАЛОГАМИ
Ø CHDIR(<ПУТЬ>)
– сменить текущий каталог
Ø MKDIR(<ПУТЬ>)
– создать новый каталог
Ø RMDIR(<ПУТЬ>)
– удалить пустой каталог
Ø GETDIR(<УСТРОЙСТВО>,<ПУТЬ>)
– получить имя текущего каталога и номер устройства, на котором он находится
Библиотека DOS.TPU содержит еще ряд полезных процедур и функций работы с дисками, логическими устройствами, файлами и т.п.
ПОЛЕЗНЫЕ ФУНКЦИИ ДЛЯ ОРГАНИЗАЦИИ ПРЯМОГО ДОСТУПА К КОМПОНЕНТАМ ТИПИЗИРОВАННОГО ФАЙЛА
Так как длина каждого компонента типизированного файла фиксирована, то можно осуществить прямой доступ к нему, указав порядковый номер (нумерация компонентов начинается с 0)
Ø SEEK (<ФП>,<N>)
– процедура устанавливает указатель файла на компонент с номером N.
Ø FILEPOS(<ФП>)
– функция типа longint; возвращает номер следующего считываемого компонента (т.е. того, на котором сейчас находится указатель файла).
Ø FILESIZE(<ФП>)
– функция типа longint; возвращает количество записей в файле.
Ø TRUNCATE(<ФП>)
– процедура «усекает» длину файла до текущей записи (положения указателя).
ПРОЦЕДУРА СОЗДАНИЯ ФАЙЛА ИЗ ЦЕЛЫХ ЧИСЕЛ
PROCEDURE CREATE(NAME:STRING); VAR F:FILE OF INTEGER; {файловая переменная} X:INTEGER; BEGIN ASSIGN (F,NAME); {файловая переменная связана с файлом с именем NAME} {$I-} REWRITE(F); {открыть файл на запись (перезапись)} {$I+} IF IORESULT=0 THEN {если файл открыт} BEGIN WRITELN('VVEDITE CHISLA (OSTANOVKA 0):'); READ(X); WHILE X<>0 DO {вводим числа в цикле до нулевого значения и записываем их в файл} BEGIN WRITE (F,X); READ(X); END; CLOSE(F); {закрыть файл} END; END; |
ПРОЦЕДУРА РАСПЕЧАТКИ СОДЕРЖИМОГО ФАЙЛА ИЗ ЦЕЛЫХ ЧИСЕЛ
PROCEDURE PRINT(NAME:STRING); VAR F:FILE OF INTEGER; {файловая переменная} X:INTEGER; BEGIN ASSIGN (F,NAME); {файловая переменная связана с файлом с именем NAME} {$I-} RESET(F); {открыть файл на чтение} {$I+} IF IORESULT=0 THEN {если файл открыт} BEGIN WHILE NOT (EOF(F)) DO {пока не достигнут конец файла } BEGIN {читаем элемент из файла и выводим ее на консоль} READ(F,X); WRITE(X:6); END; WRITELN; CLOSE(F); {закрыть файл} END; END; |
ПРОЦЕДУРА УДАЛЕНИЯ ИЗ ФАЙЛА ВСЕХ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ
PROCEDURE SGAT(NAME:STRING); VAR F:FILE OF INTEGER; {файловая переменная} X,K,S:INTEGER; BEGIN S:=0; {обнуляем счетчик отрицательных чисел} ASSIGN (F,NAME); {файловая переменная связана с файлом с именем NAME } {$I-} RESET(F); {открыть файл на чтение/запись} {$I+} IF IORESULT=0 THEN {если файл открыт} BEGIN WHILE NOT (EOF(F)) DO {пока не достигнут конец файла} BEGIN READ(F,X); {читаем целое число из файла} IF X=0 THEN {если прочитанный элемент – отрицательный считаем его} S:=S+1 ELSE BEGIN K:= FILEPOS (F); {иначе запоминаем в k позицию, следующую за прочитанным положительным элементом} SEEK(F,K-1-S); {смещаем указатель на позицию за последней положительной записью} WRITE (F,X); {записываем считанный элемент} SEEK (F,K); { и переходим к еще непрочитанной позиции} END; END; SEEK (F, FILEPOS (F)-S); {смещаем указатель на длину файла — количество удаленных элементов} TRUNCATE (F); { и «обрезаем» лишнее} CLOSE(F); {закрываем файл, чтобы сохранить изменения в файле} END; END; |
ПРИМЕР ПРОГРАММЫ, ИСПОЛЬЗУЮЩЕЙ ПРИВЕДЕННЫЕ ВЫШЕ ПОДПРОГРАММЫ
BEGIN CREATE('FILE1.TXT'); {создать файл} PRINT('FILE1.TXT'); {распечатать файл} SGAT('FILE1.TXT'); {сжать файл} PRINT('FILE1.TXT'); {распечатать измененный файл} READLN; END. |
Дата публикования: 2015-02-22; Прочитано: 251 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!