4755

Работа с файлами. Организация доступа к данным записанным в файл

Лекция

Информатика, кибернетика и программирование

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

Русский

2012-11-25

1.15 MB

11 чел.

Файлы

Чтобы сохранять входные данные и результаты неограниченно долго и иметь возможность воспользоваться ими в любой момент используют файлы на магнитных носителях информации.

По способу доступа к информации, записанной в файл, различают файлы прямого и последовательного доступа.

Файлом последовательного доступа называется файл, к элементам которого обеспечивается доступ в такой же последовательности, в какой они записывались. Как правило – это текстовые файлы.

Файлом прямого доступа называется файл, доступ к элементам которого осуществляется по адресу элемента. Как правило – это файлы баз данных.

Turbo Pascal поддерживает три типа файлов:

-         текстовые,

-         типизированные

-         нетипизированные.

К типизированным файлам относятся файлы строго определенного типа. Чаще всего это файлы, состоящие из записей. Они применяются для создания различных баз данных. Содержимое такого файла рассматривается как последовательность записей определенной структуры. Это файлы прямого доступа. Единицей измерения такого набора данных является сама запись.

Нетипизированные файлы не имеют строго определенного типа, их можно рассматривать как совокупность символов или байтов. Внутренняя реализация поддержки таких файлов наиболее близка к аппаратной поддержке работы с внешними носителями. За счет этого достигается максимальная скорость доступа к наборам данных. При работе с такими файлами не тратится время на преобразование типов и поиск управляющих последовательностей, достаточно считать содержимое файла в определенную область памяти. Это файлы прямого доступа, самым важным параметром служит длина записи в байтах.

Текстовые файлы

Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Это файлы последовательного доступа. Структурной единицей текстовых файлов является строка. Данные в таких файлах хранятся в виде цепочки ASCII кодов и могут обрабатываться любым текстовым редактором. Каждая строка завершается маркером конца строки. На практике такой маркер представляет собой последовательность из двух символов: перевод строки chr(10) и возврат каретки chr(13). Эти два символа задают стандартные действия по управлению текстовыми файлами.

Текстовые файлы описывается в разделе описания переменных:

Var
 <файловая переменная>:
TextFile;

Файловая переменная  - это имя переменной, которое используется в программном коде для работы с файлом.

Перед тем, как записать данные в файл или прочитать данные из файла, необходимо сначала открыть этот файл. Открытие текстового файла на запись, чтение или дозапись осуществляется с помощью разных процедур. Но прежде, чем их использовать, необходимо во всех случаях присвоить файлу на магнитном носителе имя, т.е. установить соответствие между файловой переменной в программе и именем файла на диске. Это делается с помощью процедуры AssignFile:

AssignFile(<файловая переменная>,<имя файла>),

Здесь имя файла - любое выражение строкового типа, которое строится по правилам определения имен в операционной системе.

Например:

AssignFile(F,’c:\Student\Primer.Txt’);

Процедуры для открытия текстовых файлов 

В таблице F – имя файловой переменной.

Обращение к процедуре

Действие

Rewrite (F)

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

Reset (F)

Открывает уже существующий файл. Файл считывается последовательно. Если эта процедура применена к несуществующему файлу, то возникает ошибка ввода-вывода.

Append (F)

Открывает уже существующий файл для дозаписи. Запись производится в конец файла.

У текстовых файлов есть своя специфика. Специальные расширения стандартных процедур чтения (Read) и записи (Write), описанных ниже, разрешают работать со значениями несимвольного типа. Другими словами, последовательность символов автоматически преобразуется к значению того типа переменной, которая используется в файловых операциях.

Вызов Read(F,Ww), где Ww - переменная типа word, осуществляет чтение из файла F последовательности цифр, которая затем интерпретируется в число, значение которого и будет присвоено переменной Ww. В случае, если вместо последовательности цифр идет любая другая последовательность символов, использование такого оператора приводит к ошибке выполнения программы.

В таблице F – имя файловой переменной.

V1,V2,…,Vn – переменные разных типов

Обращение к процедуре

Действие

Read (F,V1[,V2,…,Vn]);

Считывает из дискового файла строки символов в переменные V1, V2,…,Vn.

Readln (F,V1[,V2,…,Vn]);

Выполняет те же действия, что и Read, и дополнительно – чтение до маркера конца строки и переход к новой строке
Readln(F) без списка переменных позволяет пропустить строку в файле и перейти на новую строку.

Write (F,V1[,V2,…,Vn]);

Записывает значения переменных V1,V2,…,Vn в файл на диске.

Writeln (F,V1[,V2,…,Vn]);

Выполняет те же действия, что и Write, но обеспечивает запись всех величин с обязательной установкой маркера конца строки в файл.
Writeln(F) без списка переменных. записывает в файл пустую строку.

Закрытие файла

После работы с файлом его нужно обязательно закрыть, иначе информация в файле может быть потеряна. Это делается с помощью процедуры CloseFile(F).

Функция

Действие

Eoln(F)

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

Eof(F)

Возвращает булевское значение True, если указатель конца файла находится сразу за последним компонентом, и False – в противном случае.

SeekEoln(F)

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

SeekEof(F)

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

Пример.

Записать в файл текст, введенный в окне Edit.

Программный код

 

Пример. Открыть текстовый файл для чтения, считать из него текст в окно Memo. Перед открытием файла проверить его наличие; в случае отсутствия выдать сообщение

 Фрагмент кода программы

Пример. Открыть текстовый файл для дополнения, добавить в него текст из окна Edit.

Фрагмент кода программы

Пример.  Стихотворный текст (в строке не более 80 символов) записать «лесенкой» (по одному слову в строке).

 

                     

Краткая характеристика компонентов группы Dialogs

В состав среды Delphi входят десять компонентов группы Dialogs, реализующих работу со стандартными диалоговыми панелями Windows. Эти компоненты облегчают разработку стандартных фрагментов приложения, таких как выбор нужного файла, цвета, шрифта, работу с принтером. Для определения, какая из кнопок диалоговой панели была нажата, используется метод Execute. Если нажата кнопка «ОК», то он возвращает значение True, если кнопка «Отмена», то значение False.

Компонент OpenDialog  позволяет выбрать файл для открытия из стандартного диалогового окна Windows.

Свойства компонента OpenDialog

DefaultExt 

Создает расширение файла автоматически.

Filter

Позволяет задать шаблон имен открываемых файлов в окне редактора фильтров. Можно одновременно определить несколько фильтров.

InitialDir 

В этом свойстве хранится название рабочего каталога.

FileName 

В этом свойстве хранится название выбранного файла.

Options →

  

В этом свойстве находится ряд опций открываемой панели – свойств типа Boolean. Опция включена, если ее значение True, и отключена, если - False.

 

OfAllowMultiSelect 

Позволяет выбрать несколько файлов одновременно

 

ofCreatePromt 

Выдает запрос на создание файла, если его нет

 

ofFileMustExist

Позволяет выбирать только существующие файлы

 

ofNoChangeDir

Запрещает изменение каталога

 

ofOwerwritePromt

Запрашивает подтверждение на сохранение существующего файла

 

ofReadOnly 

Помечает флажок Read Only (только для чтения)

 

ofNoReadOnlyReturn

Запрещает выбор файла только для чтения.

Title 

Задает текст заголовка панели.

Пример использования в программе

Компонент SaveDialog  позволяет выбрать файл для сохранения из стандартного диалогового окна Windows. По внешнему виду и порядку работы практически аналогичен компоненту OpenDialog.Различаются только надписи и некоторые свойства.

Компонент FontDialog  позволяет вызвать стандартную диалоговую панель выбора шрифтов и их характеристик.

Свойства компонента FontDialog

Font

Определяет, какой шрифт был выбран для последующей работы.

Device

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

Options

Задает опции диалоговой панели

 

FdAnsiOnly

Работа только со шрифтами, поддерживаемыми Windows 

 

fdEffects

Использование для шрифтов эффектов и цветов

 

fdFixedPitchOnly

Работа только с непропорциональными шрифтами

 

fdForceFontExist

Выдает сообщение при выборе несуществующего шрифта

 

fdTrueTypeOnly 

Работа только со шрифтами TrueType 

 

fdLimitSize -

Ограничивает размер выбираемого шрифта

Пример использования в программе

Компонент ColorDialog  позволяет вызвать стандартную диалоговую панель настройки цветов.

Свойства компонента ColorDialog

Color

Сохраняет выбранный цвет

Options

Свойство состоит из следующих опций:

 

CdFullOpen 

Выполнить полный показ диалога

 

cdPreventFullOpen 

Запретить полный показ диалога

Пример использования в программе

Компонент FindDialog  позволяет вызвать стандартную диалоговую панель поиска текста. Позволяет ввести текст для поиска. Сам поиск программируется самостоятельно.

Свойства компонента FindDialog

FindText 

Хранит текст для последующего поиска.

Options 

В этом свойстве заданы опции панели. Эти опции на включение в панель дополнительных сервисных кнопок.

Компонент ReplaseDialog позволяет вызвать стандартную диалоговую панель поиска и замены текста. Позволяет ввести текст для поиска. Сам поиск программируется самостоятельно.

Свойства компонента ReplaseDialog

FindText 

Хранит текст для поиска.

ReplaceText

Хранит текст для замены.

Пример. Ввести двумерную матрицу из файла. Для открытия нужного файла использовать компонент OpenDialog.

Программный код


 

А также другие работы, которые могут Вас заинтересовать

26392. Вспомогательные приспособления глаза 20 KB
  Наружная поверхность век покрыта волосатой кожей а внутренняя слсзистой конъюнктивой которая переходит на глазное яблоко. По краю века около границы с конъюнктивой ресницы у плотоядных и свиней на нижнем веке их нет. На внутреннем ребре края век открываются сальные железы их секрет предотвращают скатывание слёз через край век.
26393. Вспомогательные приспособления мышц 21 KB
  Каждая мышца упакована глубокой фасцией которая имеет футлярное строение. Она препятствует распространению инфекции экономит силу мышечного сокращения имеет собственные сосуды и нервы поэтому интегрирует функционирование костей связок и мышц. Могут находиться под кожей под мышцей под связкой под фасцией под сухожилием.
26394. Головная кишка 21 KB
  ответ и глотки. Глотка pharynx полостной орган в котором перекрещиваются дыхательный и пищеварительный пути: воздух из хоан через глотку проходит в гортань расположенную в вентральной части ее мощная мускулатура передвигает корм из глотки в пищевод расположенный над гортанью. Стенки глотки состоят из 3 слоев: а слизистая оболочка; 6 мышечный слой состоит из парных правых и левых поперечно исчерченных мышц заканчивающихся на дорсальном сухожильном шве глотки raphe pharyngis.
26395. Головной мозг (encephalon) и черепные нервы 22.5 KB
  Ромбовидный мозг представлен продолговатым отходят с 6 по 12 пары черепных нервов и задним мозгом а задний cocтоит из мозжечка и мозгового моста отходит 5 пара черепных нервов. Большой мозг представлен средним отходят 3 и 4 пары нервов промежуточным 2 пара нервов и концевым 1 пара черепных нервов В ромбовидном мозге расположен 4й мозговой желудочек в среднеммозговой водопровод в промежуточном 3й а в концевом 1й и 2й мозговые желудочки.
26396. Гортань larynx 25 KB
  Остов гортани образован 5 хрящами на которых прикрепляются мышца гортани и глотки: кольцевидный хрящ cartilagо cricoidea гиалиновый состоит из пластинки и дужки. На переднем крае пластинки заметны фасетки для сочленения с черпаловидными хрящами. Черпаловидные хрящи соединяются суставами с пластинкой кольцевидного хряща. Основание хряща соединено связкой с телом щитовидного хряща вершина отогнута вперед.
26397. Грудная клетка и полость 23.5 KB
  Мышечный аппарат грудной клетки представлен дыхательными мышцами которые образуют 2 функциональные группы: вдыхатели инспираторы и выдыхатели экспираторы. Грудная клетка замыкает грудную полость cavum thoracis при этом форма грудной клетки определяет объём грудной полости и как следствие функциональные возможности органов грудной полости прежде всего лёгких и сердца При этом важное значение имеет форма диафрагмы которая отделяет грудную и брюшную полости друг от друга и образует купол вершина которого расположена в плоскости 67...
26398. Дыхательный аппарат apparatus respiratorius 20 KB
  Состав у млекопитающих: носоглотка гортань трахея лёгкие. У птиц: носовая полость носоглотка верхняя гортань состоит из 3 хрящей отсутствуют щитовидный и надгортанник трахея длинная тесно связана с пищеводом у бифуркации трахеи нижняя певчая гортань макроскорически прозрачна несколько расширена пузыревидно является резонатором звуков лёгкие очень компактные и врастают в грудной отдел позвоночника.
26399. Закономерности строения и ветвления сосудов. Круги кровообращения 21.5 KB
  Отработанная венозная кровь собирается в посткапилляры венулы вены. Вены снабжены клапанами складками эндотелия. Все вены объединяются в 2 крупные краниальную и каудальную полые у которых отсутствуют клапаны впадают в правое предсердие.
26400. Законы биологического развития. Онтогенез и филогенез 21 KB
  Закон взаимосвязи организма и внешней среды закон целостности и неделимости организма: целостность биологических систем поддерживается в процессе развития за счёт интеграции систем закон экономии биоматериала и места основной биогенетический закон Геккель филогенез определяет онтогенез. Филогенез phylon род племя исторический путь развития вида. дифференциации: в процессе развития организма органа ткани или клетки однородные структуры разделяются на обособленные отличающиеся друг от друга части благодаря чему меняются формы...