Что такое файлы данных. Внешние файлы данных. Процедуры и функции для работы с внешними файлами

Урок №7

Разработка урока на тему «Файлы данных».

Тема урока: Файлы данных.

Цель урока: Сформировать у учащихся понятие о файле данных. Процедуры работы с файлами.

Задачи урока:

  1. Файлы данных.
  2. Процедуры работы с файлами.

Оборудование урока: компьютер, проектор.

План урока

1. Организационный момент (приветствие).

- Здравствуйте, садитесь. Кто сегодня отсутствует?

2. Изучение нового материала .

Файлы данных.

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

Работать с файлом на физическом уровне крайне сложно. Поэтому для файла, как и для обычной переменной, Паскаль определяет тип. Например, можно записать:

a: file of integer; (Файл целых чисел.)

f: file of string; (Файл строк.)

Алгоритм работы с файлом:

  1. Файл специальной процедурой связывается с файловой переменной.
  1. Открывается либо создается файловая переменная (физически будет открыт файл, но программист в этом процессе не участвует).
  2. Выполняются необходимые операции чтения и записи данных.
  3. Файловая переменная закрывается.

Задача 1 . Напишем программу, в которой будут выполняться следующие действия:

  1. Открывается файл.
  2. Записывается 100 последовательных целых чисел.
  3. Файл закрывается.
  4. Файл открывается.
  5. Считываются числа, содержащиеся в файле, и распечатываются на экран.

Program example;

I,u: integer;

{ Определяется переменная, которую затем можно привязать к файлу,

F: file of integer;

begin

{ Файловая переменная привязывается к файлу,

Имя которого указано в апострофах }

Assign(f,’file’);

{ Так как такой файл еще не существует, то он создается и открывается}

Rewrite(f);

{ Числа записываются в файл }

For i:=1 to 100 do write(f,i);

{ Файл закрывается}

Close(f);

{ Так как файл уже существует, то он просто открывается }

Reset(f);

{ Числа читаются из файла и выводятся на экран дисплея}

For i:=1 to 100 do

Begin

Read(f,u);

Write(‘ ‘,u);

End;

end.

Файловая переменная не может быть совершенно обычной переменной. Поэтому для файловых переменных предусмотрены специальные процедуры и функции. Краткий список процедур и функций, работающих с файлами в Borland Pascal, приведен далее.

  1. assign - процедура, связывающая файл с файловой переменной.
  2. reset - открывает существующий файл и устанавливает указатель позиции файла на нулевой элемент.
  3. rewrite - создает файл.
  4. truncate - обрезает файл, начиная с текущей позиции.
  5. seek - устанавливает указатель файла в указанную позицию.
  6. eof - функция, возвращающая истину, если был достигнут конец файла, и ложь в противном случае.
  7. filesize - вычисляет размер файла в количестве записей того типа, который указан в объявлении файла.

Примечание

Для файла существует такое понятие как указатель на текущую позицию. Это величина целого типа (для Borland Pascal - это величина типа longint ), в которой хранится номер текущей позиции файла. При каждой операции чтения/записи указатель смещается на следующую запись. Под записью понимается длина типа, указанного в объявлении файла. Нумерация записей в файле начинается с нуля.

Структуры данных в приведенном примере определены вполне корректно, но в операторе write(f,a); компилятор выдаст сообщение об ошибке. А именно: компилятор сообщит, что имеет место несоответствие типов. Кажется, что типы переменных a и f одинаковы. Однако это не так с точки зрения компилятора. Мы описали две разные структуры, и компилятор справедливо полагает, что они могут быть различны и не берет на себя заботу по проверке их одинаковости.

Указанная проблема решается следующим образом:

Program example;

Uses crt;

Type

R=record

S:string;

I:integer;

End;

A:r;

F: file of r;

begin

A.s:="fsfsfsf";

A.i:=8;

Write(f,a);

end.

Эта программа реализует ту же задачу, что и предыдущая, однако здесь для компилятора не возникает никаких проблем.

Файл может быть компонентом сложной структуры. Например, вполне допустим массив файлов:

f:array file of integer;

Файл вполне может оказаться компонентом записи:

Program example;

A:record

S:string;

F: file of integer;

End;

begin

Assign(a.f,"file.dat");rewrite(a.f);

end.

В этом примере открывается файл массивов. То есть каждая запись файла - это массив длиной в 10 целых чисел. Причем мы можем не определять значения всех десяти элементов, в файле все равно будет записано их десять, как дано в определении массива.

Один и тот же физический файл можно открыть как файл одного типа, а затем его же как файл другого типа:

Program example; Uses crt;

S:string;

I:integer;

F:file of string;

D:file of integer;

begin

Clrscr;

Assign(f,"file.dat");rewrite(f);

S:="gdgdgjagdjasg";

For i:=1 to 10 do write(f,s);

Close(f);

Assign(d,"file.dat");reset(d);

While not eof(d) do

Begin

Read(d,i);write(i," ");

End;

end.

В этом примере файл с именем file.dat открывается как строковый и заполняется некоторым содержимым, затем закрывается и опять открывается, но уже как файл чисел. Такие операции для языка Паскаль вполне законны, это следствие того, что на физическом уровне тип файла никак не фиксируется.

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

3.Домашнее задание.

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

4. Подведение итогов

Выставление оценок ученикам, которые хорошо работали на уроке.


(data file) Файл (file), находящийся в компьютерной системе, который содержит данные (data), в отличие от файлов, содержащих программу. См.: компьютерное программирование (computer programming). Файл данных обычно подразделяется на записи (records) и поля (fields).


  • - Камень судьбы...

    Энциклопедия мифологии

  • - поименованная совокупность байтов, записанная на жёстком или гибком магнитном диске, в которой хранится отдельный элемент овой системы, напр. документ Word или рисунок...

    Энциклопедия техники

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

    Большой энциклопедический политехнический словарь

  • - Собрание/комплекс взаимосвязанной информации в компьютере, хранящейся в его накопителе как единое целое. Файл может содержать программу, которая может быть скопирована в оперативную память и исполнена...

    Словарь бизнес терминов

  • - совокупность связанных записей, рассматриваемая как единое целое...

    Большой бухгалтерский словарь

  • - совокупность упорядоченных и взаимосвязанных порций информации, имеющая описание для идентификации отд. порции...

    Естествознание. Энциклопедический словарь

  • - Файл, содержащий системную информацию о работе сервера и информацию о действиях пользователей: - дату и время визита пользователя; - IP-адрес компьютера пользователя; - наименование браузера пользователя...

    Словарь бизнес терминов

  • - файл, содержащий системную информацию о работе сервера и информацию о действиях пользователей: - дату и время визита пользователя; - IP-адрес компьютера пользователя; - наименование браузера пользователя...

    Финансовый словарь

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

    Финансовый словарь

  • - совокупность записей, расположенных в другом порядке по отношению к исходному файлу.См. также: Файлы  ...

    Финансовый словарь

  • - совокупность записей, расположенных в порядке их получения в пункте записи.См. также: Файлы  ...

    Финансовый словарь

  • - совокупность записей, элементы которой получены путем обработки исходных или инвертированных файлов.См. также: Файлы  ...

    Финансовый словарь

  • - совокупность связанных записей, рассматриваемая как единое целое. Например одна строка кадровой анкеты рассматривается как элемент, вся анкета – как запись, полный набор таких записей – как файл...

    Большой экономический словарь

  • - "..."" означает любой набор данных, подвергающийся автоматизированной обработке.....

    Официальная терминология

  • - совокупность упорядоченных и взаимосвязанных порций информации из однородных элементов, имеющая описание для идентификации отдельных порций...

    Современная энциклопедия

  • - ; мн. фа/йлы, Р....

    Орфографический словарь русского языка

"ФАЙЛ ДАННЫХ" в книгах

Проект «Хранилище данных» и проект «Технология выявления скрытых взаимосвязей внутри больших баз данных»

Из книги автора

Проект «Хранилище данных» и проект «Технология выявления скрытых взаимосвязей внутри больших баз данных» Оба этих проекта были интегрированы в 1999 г. Благодаря им начались разработка и проведение кампаний по продаже банковских продуктов. Эти проекты создали большие

Экспорт данных из базы данных Access 2007 в список SharePoint

автора Лондер Ольга

Экспорт данных из базы данных Access 2007 в список SharePoint Access 2007 позволяет экспортировать таблицу или другой объект базы данных в различных форматах, таких как внешний файл, база данных dBase или Paradox, файл Lotus 1–2–3, рабочая книга Excel 2007, файл Word 2007 RTF, текстовый файл, документ XML

Перемещение данных из базы данных Access 2007 на узел SharePoint

Из книги Microsoft Windows SharePoint Services 3.0. Русская версия. Главы 9-16 автора Лондер Ольга

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

Спасение данных из поврежденной базы данных

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

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

Проверка введенных данных на уровне процессора баз данных

автора Мак-Манус Джеффри П

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

Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри П

Обновление базы данных с помощью объекта адаптера данных

Из книги Язык программирования С# 2005 и платформа.NET 2.0. автора Троелсен Эндрю

Обновление базы данных с помощью объекта адаптера данных Адаптеры данных могут не только заполнять для вас таблицы объекта DataSet. Они могут также поддерживать набор объектов основных SQL-команд, используя их для возвращения модифицированных данных обратно в хранилище

Глава 2 Ввод данных. Типы, или форматы, данных

Из книги Excel. Мультимедийный курс автора Мединов Олег

Глава 2 Ввод данных. Типы, или форматы, данных Работа с документами Excel сопряжена с вводом и обработкой различных данных, то есть ин формации, которая может быть текстовой, числовой, финансовой, статистической и т. д. МУЛЬТИМЕДИЙНЫЙ КУРС Методы ввода и обработки данных

2.4.5.1. Файл и структуры данных Falcon

Из книги MySQL: руководство профессионала автора Паутов Алексей В

3.2. Экспорт данных из ERwin в BPwin и связывание объектов модели данных со стрелками и работами

Из книги Моделирование бизнес-процессов с BPwin 4.0 автора Маклаков Сергей Владимирович

Базы данных клиент-сервер в сравнении с файл-серверами

автора Борри Хелен

Базы данных клиент-сервер в сравнении с файл-серверами Системы совместного доступа к файлам являются другим примером систем клиент- сервер. Файловые серверы и серверы файловых систем обслуживают запросы клиентов к файлам и файловым системам иногда весьма запутанными

Модель данных база данных

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Модель данных <> база данных Тот "мир", который был получен в процессе описания и анализа, является черновиком для структур ваших данных. Считается, что логическая модель должна описывать отношения и наборы. Обычная ошибка (и западня, присущая всем инструментам CASE) слепо

Базы данных (классы для работы с базами данных)

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Базы данных (классы для работы с базами данных) В MFC включены несколько классов, обеспечивающую поддержку приложений, работающих с базами данных. В первую очередь это классы ориентированные на работу с ODBC драйверами – CDatabase и CRecordSet. Поддерживаются также новые средства для

Из книги Комментарий к Федеральному закону от 27 июля 2006г. N 152-ФЗ "О персональных данных" автора Петров Михаил Игоревич

Статья 16. Права субъектов персональных данных при принятии решений на основании исключительно автоматизированной обработки их персональных данных Комментарий к статье 161. Комментируемая статья определяет права субъектов персональных данных по отношению к принятию

2. Определение типа сравнения данных (от идеи к сравнению данных)

Из книги Говори на языке диаграмм: пособие по визуальным коммуникациям автора Желязны Джин

2. Определение типа сравнения данных (от идеи к сравнению данных) Данный шаг – это связующее звено между идеей и готовой диаграммой.Очень важно уяснить, что любая идея – любой аспект данных, на который вы хотите обратить внимание, – может быть выражена посредством

Вся информация, содержащаяся в переменных и массивах, исчезает по окончании работы программы. Если она может понадобиться в дальнейшем, то эту информацию сохраняют на жёстком диске, дискете или другом носителе, а при следующем запуске программы обратно загружают с внешнего носителя в массивы или переменные. Такая запись на диске или другом носителе называется файлом данных . Кроме файлов данных существуют также исполняемые файлы (программы в машинных кодах с расширением.exe или.com). Некоторые языки и системы программирования (в том числе из диалектов Паскаля – Borland Pascal и Delphi) позволяют из собственной программы запустить такой файл. Pascal ABC такой возможностью не располагает.

Файлы объединены в группы (каталоги или папки). Чтобы определить, с каким файлом предстоит работать, указывают его полное имя . Оно состоит из нескольких частей, например:

Тот каталог, в котором находится наша программа, является рабочим (текущим) каталогом. Это обозначает, что при обращении к файлу данных, находящемуся в таком каталоге, указывать путь не обязательно.

Для использования файла данных в программе нужно в разделе VAR описать файловую переменную (ф/п), в которой будет храниться информация об этом файле (полное имя, длина, дата и время создания и т.д.). Это описание различно для разных типов файлов. Например:


В файлах, описанных как типовые, все данные имеют один и тот же тип (указанный при описании), так же как и в массивах. Поэтому в таких файлах обычно сохраняют содержимое массивов. Хранить в типовом файле текст неудобно, так как все строки должны быть одинаковой длины. Для хранения текста со строками различной длины используется текстовый файл. Для отделения одной строки от другой, в таком файле каждая строка заканчивается символом, соответствующим клавише ENTER. Кроме строк в текстовом файле можно хранить и числа (но это менее экономно, чем в типовом файле, где они хранятся в двоичном коде, а не посимвольно).

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

assign(ф/п, ’полное имя файла’);

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

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

reset(ф/п); - открывает уже существующий файл и устанавливает указатель на его начало (обычно так открывают файл для чтения, но в типовый файл можно и записывать. Запись происходит вместо имеющихся в файле данных).

append(ф/п); - открывает уже существующий файл и устанавливает указатель на его конец (для добавления информации после конца файла).

rewrite(ф/п); - создаёт новый файл (если файл уже существует, он очищается).

Указатель файла хранит место в файле, откуда мы можем прочесть (или куда записать) информацию. Каждая операция чтения или записи перемещает указатель к следующей записи.

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

read(ф/п, список переменных); - читает из типового и текстового файла.

readln(ф/п, список переменных); - читает из текстового файла.

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

write(ф/п, список переменных); - записывает в типовый и текстовый файл.

writeln(ф/п, список переменных); - записывает в текстовый файл с переводом строки.

Для перемещения по файлу (только типовому!) используется команда seek(ф/п, номер записи); . Нумерация записей в файле ведётся с нуля. Чтобы попасть в конец файла для добавления новой записи, в качестве номера в этой команде используется функция filesize(ф/п), определяющая размер файла (не в байтах, а в записях данного типа).

При чтении из файла неизвестной длины, можно перед чтением проверять, не кончился ли ещё файл, с помощью функции eof(ф/п), которая даёт true, если указатель находится после последней записи. Например:


По окончании работы с файлом его нужно закрыть командой close(ф/п); . Если не сделать этого, Pascal не сохранит изменения файла на диске. Но и если не было изменений, закрыть файл рекомендуется. После этого файловая переменная и файловые буферы (область памяти, которую Pascal использует при работе с памятью) освобождаются.

Команда rename(ф/п,’новое_имя’)переименовывает файл, связанный с файловой переменной. Файл должен быть закрыт.

Команда erase(ф/п)удаляет файл, связанный с файловой переменной. Файл должен быть закрыт.

Не всегда файловые операции проходят успешно. Например, при попытке прочесть с дискеты, которую забыли вставить в дисковод, появляется сообщение об ошибке, и происходит аварийное завершение программы. Подобные ошибки лучше предупредить. Функция FileExists(’имя’) возвращает True, если на диске имеется файл с данным именем (и путём), в противном случае возвращает False. Её нужно использовать перед попыткой обращения к уже существующему файлу. Если нужно создать новый файл, перед этим используется функция CanCreateFile(’имя’). Если имя файла или путь указаны неправильно, или на диске нет места, или по другим причинам невозможно создать файл с таким именем, она возвращает False.

Вторым файлом, необходимым для работы See5, является файл данных. Он имеет расширение *.data. В нашем случае это файл USR . data .

Каждому объекту в файле данных соответствует собственная строка. Если значение целевой переменной находится вверху файла имен переменных, строка начинается со значения этой целевой переменной. Затем через запятую следуют значения всех остальных признаков. Неизвестные значения переменных кодируются вопросительным знаком «?», после вертикальной черты «|» можно писать невоспринимаемые системой комментарии.

Ниже приводится полностью весь файл данных USR . data , который мы будем использовать для демонстрации возможностей See5.

Файлы тестовых данных (необязательные)

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

Третий вид файла, используемый системой See5, содержит новые тестовые объекты. Это то, что еще принято называть контрольной выборкой. Данный файл USR . test является необязательным и, если используется, имеет формат уже описанного файла USR . data .

Следующий вспомогательный файл USR . cases также является необязательным. Он содержит объекты с неизвестной классификацией.

Файл стоимости

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

Интерфейс пользователя

В главном окне See5 располагается пять кнопок (рис. 1). Перечислим их слева направо.

С помощью кнопки Locate Da ta (местонахождение данных) вызывается окно для просмотра доступных файлов данных и их загрузки в систему.

Нажатием кнопки Construct Classifier (построение классификатора) производится обращение к окну диалога для выбора типа классификатора и установки его параметров. Кнопка Stop предназначена для останова процесса построения дерева решений.

Кнопка Use Classifier (использование классификатора) запускает процесс интерактивной классификации одного или более объектов. С помощью кнопки Cross-Reference (перекрестная ссылка) вызывается окно, в котором наглядно раскрываются связи между объектами обучающей выборки и виденными правилами их классификации.

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

Рис. 1. Главное окно системы See 5

Построение дерева решений

На первом этапе обработки данных обычно используются параметры системы, установленные по умолчанию. Нажимаем кнопку Construct Classifier и затем в появившемся окне диалога (рис. 29) сразу нажимаем (предполагается, что файл данных USR . dat a уже загружен). Система выдает окно результатов, которые выглядят следующим образом (рис. 3). В первой строке отчета о результатах дается информация об используемой версии системы See5 и текущее время. Затем в следующих двух строках говорится о том, что классифицирующей переменной служит diagnosis и прочтенный файл данных USR . data содержит 74 объекта, каждый из которых описан одиннадцатью признаками.

Рис2. Окно диалога для задания параметров алгоритма конструирования классификатора

В следующих строках отчета отображено построенное дерево решений. Его можно проинтерпретировать следующим образом:

ЕСЛИ Index больше 0,69 и Speed больше 18, ТО класс № 3, иначе

ЕСЛИ Index больше 0,69 и Speed не больше 18 и Thickness не больше 46, ТО класс № 1

и т. д.

Каждая ветка дерева заканчивается указанием номера класса, к которому она приводит. Сразу за номером следует запись вида (я) или (п/т). Например, самая первая ветка заканчивается записью (12,0). Это означает, что данной ветке соответствует 12 объектов из определенного (третьего) класса. Последняя ветка заканчивается записью 1 (6,0/1,0), из чего следует, что эта ветка описывает класс № 1 и сюда попадают 6 объектов, из которых 1 попадает ошибочно. Величины п или т могут оказаться дробными в случае, когда на какую-либо ветку придется некоторое число объектов с неизвестными значениями признаков.

В следующем разделе отчета приводятся характеристики сконструированного классификатора, оцениваемые на обучающей выборке. Здесь мы видим, что построенное дерево решений имеет 9 веток (size = 9), а ошибка классификации наблюдается на 5 объектах, что составляет 6,8 %.

Взавершающей части отчета дается таблица с детальным разбором результатов классификации. Исходя из данных этой таблицы, можно сказать, что из 1-го класса (здоровые почки) правильно классифицируются 20 объектов, а 2 объекта ошибочно относятся к классу 2; среди объектов 2-го класса (множественные кисты) 35 диагностируются правильно и 2 ошибочно признаются здоровыми; все объекты 3-го класса (гидронефроз) классифицируются правильно за исключением одного объекта, попадающего в класс № 2.

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

Можно еще более подробно разобрать результаты нашей классификации. Для этого нажмем в главном окне See5 кнопку Cross-Reference (перекрестная ссылка). Система выдаст окно, в левой половине которого нарисовано построенное дерево решений, а в правой половине перечисляются объекты, попавшие на ту или иную ветвь дерева. Чтобы выделить интересующую ветвь, нужно щелкнуть по ней левой кнопкой мыши (справа от ветви появится темный круг - на рис. 4 на него указывает стрелка). Кроме того, если щелкнуть мышью по номеру какого-либо объекта из правого поля, то система выдаст еще одно окно с именем Case, в котором приводятся значения признаков и выделенного объекта. В случае, показанном на рисунке, нас заинтересовала ветвь (Index <=0.69 и Age.<"43), на которой находятся 10 объектов из 1-го класса и 1 объект из 2-го класса.

Рис. 4. Отображение результатов классификации в окне перекрестных ссылок

© 2024 hereluv.ru
Компьютерные подсказки