назад | содержание | вперед
Изменение данных в файле произвольного доступа
Для изменения данных в записях файла (редактирование, добавление, удаление записей) применяется оператор put ft. При его использовании необходимо иметь в виду, что данные в записи будут заменены на те, которые мы передаем в файл. Подчеркнем, что новая запись с данными не создается.
Для добавления записей в файл необходимо указывать номер записи на единицу больший номера последней записи. В этом случае запись будет добавлена в файл, а не изменена. Например:
Put #FileNum, LastRecord + 1, ForFileRecords
Для вычисления текущего номера последней записи LastRecord можно использовать длину записи и размер файла, возвращаемый функцией LOF.
Перейдем к описанию процесса удаления данных из файла произвольного доступа. Существуют два способа. Можно просто очистить соответствующие поля указанных записей, то есть записать в них пустые значения. Однако в этом случае в файле остаются пустые записи. Понятно, что при таком подходе ресурсы (дисковое пространство) используются нерационально.
Для окончательного удаления записей рекомендуется перезаписывать данные в новый файл, пропуская пустые записи. Алгоритм этих действий таков:
1. Создайте новый файл с помощью оператора Open.
2. Перепишите все непустые записи в новый файл, используя оператор Put #.
3. Закройте исходный файл и удалите его при помощи оператора Kill.
4. Переименуйте новый файл в исходный оператором Name.
Получаем тот же самый файл, но уже без пустых записей. При этом экономится пространство диска и время поиска данных в таком файле.
назад | содержание | вперед