Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Работа с текстовыми файлами

Цель: научиться составлять программы чтения и записи текстовых файлов, продолжить освоение работы в системе программирования Delphi.

Теоретические сведения:

Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Для описания используется стандартный тип TextFile:

Var F: textFile; {F - файловая переменная} Каждая строка завершается маркером конца строки.

Открытие текстового файла можно произвести двумя стандартными способами:

- поставить в соответствие файловой переменной имя файла (процедура AssignFile), открыть новый текстовый файл (процедура Rewrite);

- поставить в соответствие файловой переменной имя файла (процедура AssignFile), открыть уже существующий файл (процедура Reset).

Для работы с текстовыми файлами используется еще одна процедура открытия файла: Append(vaг F: text File ); Эта процедура открывает уже существующий файл и позиционирует указатель обработки на конец файла. После этого в текстовый файл можно только добавлять информацию, причем только в конец файла.

Процедура Read обеспечивает ввод данных общим потоком из одной строки, a Readln приводит к обязательному переходу к следующей строке текстового файла, т. е. ввод данных осуществляется из различных строк. Все вышесказанное в равной мере относится к операциям записи с помощью процедур Write и Writeln.

При организации операций ввода-вывода используются специальные языковые средства в виде функций Eoln, Eof, SeekEoln, SeekEof.

Функция Eoln(var F: text) возвращает булевское значение True, если текущая файловая позиция находится на маркере конца строки или вызов Eof(F) вернул значение True. Во всех остальных случаях значение функции будет False.

Функция Eof(var F: text) возвращает булевское значение True, если указатель конца файла находится сразу за последним компонентом, и False – в противном случае.

Функция SeekEoln(var F: text) возвращает булевское значение True при достижении маркера конца строки, причем указатель файла пропускает все пробелы и знаки табуляции, предшествующие маркеру. В противном случае функция возвращает значение False.

Функция SeekEof(var F: text) возвращает значение True, если указатель файла находится на маркере конца файла. Эта функция также пропускает все пробелы и знаки табуляции, предшествующие маркеру, и выполняет автоматический пропуск маркера конца строки.

Порядок выполнения работы:

1. Включите компьютер. В своей папке создайте ещё одну папку «Лабораторная работа №17». Запустите среду программирования Borland Delphi с рабочего стола. Сохраните весь проект в этой папке.

2. Переименуйте название формы из Form1, разместите на ней все необходимые вам компоненты.

Задача 1. Дано10 слов. Записать их в файл, расположив каждое слово на отдельной строке.

Задача 2. Имеется текстовый файл. Переписать в другой файл те его строки, в которых содержится более 30-ти символов.

Задача 3. Имеется текстовый файл. Удалить из него первую строку, оканчивающуюся вопросительным знаком.

Задача 4. Имеется текстовый файл. Найти количество строк, начинающихся на букву «А». Напечатать самую длинную строку (если таких строк несколько, вывести первую из них).

3. Проверьте работоспособность приложения. Сохраните проект.

Отчет по работе:

Оформите в тетради отчет, который должен содержать тему, цель работы, порядок выполнения (только формулировку задачи и программный код её решения), ответы на контрольные вопросы.

Контрольные вопросы:

Перечислите все используемые в работе (с расшифровкой): объекты (компоненты); свойства объектов; события объектов; методы; операторы и функции.

Приложение

В таблице содержатся практически все Delphi функции для работы с файлами, как создающие, переименовывающие, удаляющие файлы и каталоги, так и функции поиска файлов, обладающих заданными характеристиками.

procedure ChDir (Path: String); Изменяет текущий каталог. Path - переменная, задающая путь к устанавливаемой по умолчанию папке.
procedure Erase (var F); Уничтожает файл F. Перед выполнением процедуры файл должен быть закрыт процедурой CloseFile.
function FileAge (const FileName: String): Integer; Для файла FileName возвращает время его последнего обновления (в системном формате) или -1, если такого файла не существует.
function FileExists (const FileName: String): Boolean; Возвращает True, если файл FileName существует, и False в противном случае.
function FileGetDate (Handle: Integer): Integer; По заданному дескриптору файла Handle возвращает время и дату его создания (в системном формате). Если дескриптор не существует, возвращает -1.
function FindFirst (const Path: String; Attr: Integer; var F: TSearchRec): Integer; Возвращает в переменной F типа TSearchRec первый из файлов, зарегистрированных в указанном каталоге. Path: путь поиска с маской выбора файлов; Attr: атрибуты выбираемых файлов.
function FindNext (var F: TSearchRec): Integer; Возвращает в переменной F следующий файл в каталоге. Переменная F должна быть предварительно инициирована обращением к функции FindFirst.
procedure FindClose (var F: TSearchRec); Освобождает память, выделенную для поиска файлов функциями FindNext и FindFirst.
procedure Flush(var F); Очищает внутренний буфер файла, гарантируя тем самым сохранность всех последних изменений файла на диске.
procedure GetDir (D: Byte; var S: String); Возвращает текущий каталог (каталога по умлочанию). D - номер устройства (0: устройство по умолчанию, 1 - диск А, 2 - диск В и т.д.); S - переменная типа String, в которой возвращается путь к текущему каталогу на указанном диске.
procedure MkDir (Dir: String); Создаёт новый каталог на текущем диске. Dir - адрес нового каталога, который не может совпадать с именем уже существующего каталога.
procedure Rename (var F; NewName: String); Переименовывает, т.е. задаёт новые адрес и имя файла F. NewName - строковое выражение, содержащее новые адрес и имя файла. Перед выполнением процедуры необходимо закрыть файл.
procedure RmDir (Dir: String); Удаляет каталог Dir. Удаляемый каталог должен быть пустым, т.е. не содержать файлов или вложенных каталогов.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...