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.

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


 

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

48023. ТЕХНОЛОГІЧНЕ ОБЛАДНАННЯ І ОСНАЩЕННЯ 3.05 MB
  Тема № 7 Пристосування які використовують на токарних верстатах На токарних верстатах використовуються наступні види пристосувань: центри упорні; поводкові патрони та хомутики; самоцентруючі патрони; чотирьохкулачкові патрони; планшайби; пневматичні патрони; гідравлічні патрони; електромагнітні патрони; люнети рухомі та нерухомі; конусні лінійки тощо. Тема № 11 Пристосування які використовують на свердлильних верстатах. При конструюванні багатошпиндельних свердлильних головок необхідно вирішити наступні питання: вибір...
48025. ПЕРША МЕДИЧНА ДОПОМОГА В ЗАГРОЗЛИВИХ ДЛЯ ЖИТТЯ СТАНАХ, ЯКІ ВИНИКАЮТЬ ПРИ ЗАХВОРЮВАННЯХ ВНУТРІШНІХ ОРГАНІВ, ІНФЕКЦІЙНИХ ХВОРОБАХ 114 KB
  Причини ознаки попередження цих порушень. Ознаки нормальної постави. Плоскостопість вроджена та набута її перші ознаки. Загальні ознаки для всіх форм неврозів: моторні порушення зайва рухливість тік заїкання розлади вегетативної регуляції.
48026. Методика викладання природознавства 512 KB
  Метод спостереження цілеспрямоване сприйняття того чи іншого педагогічного явища без втручання в його хід. Ефективність спостереження залежить від чіткості визначення дослідником обєктів сприймання мети способів фіксації його наслідків ведення протоколу фото і кінозйомка відео та аудіо записи. У процесі констатуючого експерименту проводяться спостереження бесіди анкетування учителів батьків учнів вивчається шкільна документація й письмові роботи дітей та виконуються учнями діагностуючі завдання. Спостереження це...
48027. Логіка. Конспекти лекцій 846.5 KB
  Поняття і судження Основними формами абстрактного мислення є поняття судження й умовиводи. Судження форма мислення в якій щонебудь стверджується або заперечується про предмети їхні властивості або відносини. Поняття судження умовивід мають свою специфічну форму структуру.
48028. ЛОГІКА. ОПОРНИЙ КОНСПЕКТ ЛЕКЦІЙ 4.48 MB
  Теоретичні питання для самоконтролю Що означає термін логіка і в чому полягає проблема визначення логіки як науки Назвіть об'єкт предмет вивчення формальної логіки Яку сторону мислення вивчає логіка Що таке пізнання форми мислення Який взаємозв'язок між пізнанням і мисленням Що означає поняття абстрактне мислення Дайте визначення логічної форми істинності та правильності думки Дайте визначення мови та назвіть основні види знаків Що таке процес формалізації в вузькому та широкому значенні Що таке зміст і значення мовних виразів...
48029. Моделі і методи прийняття рішень в економіці 779.5 KB
  Оптимізація календарного плану реалізації запасів сільськогосподарської продукції за умов цінового ризику. У числі найвідоміших задач математичного програмування можна назвати такі: оптимізація виробничої програми фірми оптимізація плану перевезень продукції оптимізація варіанту розподілу завдань між виконавцями оптимізація плану введення в дію нових виробничих потужностей оптимізація портфеля фінансових активів тощо. За умов забезпечення випуску заданих обсягів виробництва продукції й обмежень із кількості основних виробничих ресурсів...
48030. МОДЕЛИРОВАНИЕ, АНАЛИЗ И ОПТИМИЗАЦИЯ БИЗНЕС-ПРОЦЕССОВ 2.2 MB
  Пудовкина МОДЕЛИРОВАНИЕ АНАЛИЗ И ОПТИМИЗАЦИЯ БИЗНЕСПРОЦЕССОВ Учебное пособие Челябинск Издательство ЮУрГУ 2006 УДК Пудовкина С. Учебное пособие предназначено для студентов изучающих дисциплины Математические методы и модели в экономике Математическая экономика Моделирование экономических систем и процессов Имитационное моделирование Анализ и оптимизация бизнеспроцессов и обучающихся по специальностям Менеджмент организаций Экономика и управление на предприятии Финансы и кредит Прикладная информатика в экономике....