4755

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

Лекция

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

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

Русский

2012-11-25

1.15 MB

10 чел.

Файлы

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

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

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

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

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.

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


 

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

39989. Безопасность приложений WWW 47.13 KB
  Технические особенности Существенное преимущество построения Web приложений для поддержки стандартных функций браузера заключается в том что функции должны выполняться независимо от операционной системы данного клиента. Классификация угроз безопасности Webприложений Данная классификация представляет собой совместную попытку членов международного консорциума собрать воедино и упорядочить угрозы безопасности Webсайтов. Члены Web ppliction Security Consortiumсоздали данный проект для унификации стандартной терминологии описания угроз...
39990. Автоматизированные информационные системы 959.15 KB
  Автоматизированные информационные системы для студентов специальности Автоматизированные системы обработки информации и управления дневной формы обучения.. Понятие автоматизированной информационной системы. Структура автоматизированной информационной системы. Понятие и виды моделей информационной системы.
39991. Предмет, содержание, методы и задачи информационного менеджмента и маркетинга 99.5 KB
  Широкая информатизация всех сфер жизнедеятельности общества принципиально изменяет роль информации и информационных технологий в социальном и экономическом развитии страны. В таких условиях особое значение приобретают проблемы подготовки квалифицированных специалистов в области менеджмента и маркетинговой деятельности способных работать в условиях развитой информатизации насыщения производства и непроизводственной сферы всевозрастающими потоками информации и управления ими. В бизнесе управлении и маркетинге как ни в какой другой сфере...
39992. Инвестиционный менеджмент 287 KB
  Понятие и содержание инвестиционного проекта. Жизненный цикл инвестиционного проекта и подходы к его структуризации. Основные принципы оценки эффективности инвестиционного проекта. Особенности оценки эффективности на разных стадиях разработки и осуществления проекта.
39993. Логистика 83 KB
  Основная задача и функциональные области логистики. Основная задача логистики. Экономический эффект от использования логистики. Подобный подход к изучению производственнохозяйственной деятельности предприятий возник на Западе в 20е 30е годы ХХго столетия и развиваясь сформировался в самостоятельное направление научнопрактической деятельности получившей название логистики.
39994. Корпоративное управление 109.5 KB
  Пoд кopпopтивным yпpвлeниeм в кциoнepныx oбщecтвx пoнимeтcя cиcтeм oтнoшeний мeждy opгнми yпpвлeния и дoлжнocтными лицми эмитeнт влдeльцми цeнныx бyмг кциoнepми влдeльцми oблигций и иныx цeнныx бyмг ткжe дpyгими зинтepecoвнными лицми тк или инчe вoвлeчeнными в yпpвлeниe эмитeнтoм кк юpидичecким лицoм. К oблcти кopпopтивнoгo yпpвлeния oтнocятcя вce вoпpocы cвязнныe c oбecпeчeниeм эффeктивнocти дeятeльнocти кoмпнии и c зщитoй интepecoв ee влдeльцeв в тoм чиcлe peгyлиpoвниe внyтpeнниx и внeшниx pиcкoв. Оcнoвнoй экoнoмичecкoй пpичинoй...
39995. Исследование систем управления 206 KB
  Объeкт иccлeдoвния этo coвoкyпнocть cвязeй oтнoшeний и cвoйcтв cyщecтвyющя oбъeктивнo и cлyжщя иcтoчникoм нeoбxoдимoй для иccлeдoвтeля инфopмции пpeдмeт кoнкpeтня пpoблeм peшeниe кoтopoй тpeбyeт пpoвeдeния иccлeдoвний; тип иccлeдoвния пpиндлeжнocть eгo к oпpeдeлeннoмy типy oтpжющeмy cвoeoбpзиe вcex xpктepиcтик; пoтpeбнocть иccлeдoвния cтeпeнь ocтpoты пpoблeмы пpoфeccиoнлизм в пoдxoдx к ee peшeнию cтиль yпpвлeния; peзyльтт иccлeдoвния peкoмeндции мoдeль фopмyл мeтoдик cпocoбcтвyющиe ycпeшнoмy pзpeшeнию пpoблeмы...
39996. Стандартизация и менеджмент качества 357 KB
  Стандартизация и менеджмент качества Содержание темы: 1. Стандартизация качества одна из основных составляющих менеджмента. Системы стандартизации качества менеджмента. Основные термины стандартизации качества менеджмента.
39997. Менеджмент продаж и управление продажами 567.5 KB
  Менеджмент продаж и управление продажами Содержание темы: 1. Менеджмент продаж. Основы менеджмента продаж. Нейролингвистическое программирование НЛП в продажах.