Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Телевизоры (Smart TV)
  • Управление файлами, типы файлов, файловая система, атрибуты файла. Что такое файл Что такое файл данных

Управление файлами, типы файлов, файловая система, атрибуты файла. Что такое файл Что такое файл данных

Вся информация, содержащаяся в переменных и массивах, исчезает по окончании работы программы. Если она может понадобиться в дальнейшем, то эту информацию сохраняют на жёстком диске, дискете или другом носителе, а при следующем запуске программы обратно загружают с внешнего носителя в массивы или переменные. Такая запись на диске или другом носителе называется файлом данных . Кроме файлов данных существуют также исполняемые файлы (программы в машинных кодах с расширением.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.

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

Например, на данном рисунке выделен файл my-file.data , далее необходимо щелкнуть правой кнопкой мыши по этому файлу, и в меню файла выбрать опцию «сканировать с помощью AVG» . При выборе данного параметра откроется AVG Antivirus, который выполнит проверку данного файла на наличие вирусов.


Иногда ошибка может возникнуть в результате неверной установки программного обеспечения , что может быть связано с проблемой, возникшей в процессе установки. Это может помешать вашей операционной системе связать ваш файл DATA с правильным прикладным программным средством , оказывая влияние на так называемые «ассоциации расширений файлов» .

Иногда простая переустановка Microsoft Excel может решить вашу проблему, правильно связав DATA с Microsoft Excel. В других случаях проблемы с файловыми ассоциациями могут возникнуть в результате плохого программирования программного обеспечения разработчиком, и вам может потребоваться связаться с разработчиком для получения дополнительной помощи.


Совет: Попробуйте обновить Microsoft Excel до последней версии, чтобы убедиться, что установлены последние исправления и обновления.


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


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


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

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


Совет: Если при попытке открыть файл DATA вы получаете сообщение об ошибке, связанной с.SYS file , проблема, вероятно, может быть связана с поврежденными или устаревшими драйверами устройств , которые необходимо обновить. Данный процесс можно облегчить посредством использования программного обеспечения для обновления драйверов, такого как DriverDoc .


Если шаги не решили проблему , и у вас все еще возникают проблемы с открытием файлов DATA, это может быть связано с отсутствием доступных системных ресурсов . Для некоторых версий файлов DATA могут потребоваться значительный объем ресурсов (например, память/ОЗУ, вычислительная мощность) для надлежащего открытия на вашем компьютере. Такая проблема встречается достаточно часто, если вы используете достаточно старое компьютерное аппаратное обеспечение и одновременно гораздо более новую операционную систему.

Такая проблема может возникнуть, когда компьютеру трудно справиться с заданием, так как операционная система (и другие службы, работающие в фоновом режиме) могут потреблять слишком много ресурсов для открытия файла DATA . Попробуйте закрыть все приложения на вашем ПК, прежде чем открывать Analysis Studio Offline Data. Освободив все доступные ресурсы на вашем компьютере вы обеспечите налучшие условия для попытки открыть файл DATA.


Если вы выполнили все описанные выше шаги , а ваш файл DATA по-прежнему не открывается, может потребоваться выполнить обновление оборудования . В большинстве случаев, даже при использовании старых версий оборудования, вычислительная мощность может по-прежнему быть более чем достаточной для большинства пользовательских приложений (если вы не выполняете много ресурсоемкой работы процессора, такой как 3D-рендеринг, финансовое/научное моделирование или интенсивная мультимедийная работа). Таким образом, вполне вероятно, что вашему компьютеру не хватает необходимого объема памяти (чаще называемой «ОЗУ», или оперативной памятью) для выполнения задачи открытия файла.

Файлы данных

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

Текстовые файлы с последовательным доступом (файлы последовательного доступа) не имеют какой-либо структуры. Структура этих файлов определяется самой считывающей программой. В текстовых файлах с последовательным доступом каждая строка заканчивается двумя специальными символами: конец строки и возврат каретки, которые вводятся в текст программы при нажатии клавиши Enter (Ввод) на клавиатуре. Поэтому один из самых легких способов обработки текстового файла с последовательным доступом состоит в чтении его строка за строкой. Создание текстовых файлов с последовательным доступом также не представляет большого труда. Его можно создать любым текстовым редактором. Данные в файл последовательного доступа записываются последовательно байт за байтом. Чтобы проанализировать и выбрать нужную информацию, файл должен быть полностью прочитан. Это повышает требования к объему оперативной памяти и снижает скорость выполнения программы.

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

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

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

Открытие файлов

Для открытия файлов служит команда Open .

Open “спецификация_файла” For { тип файла}

As [#] N



Опция “Спецификация_файла ”, как известно, позволяет указать диск, маршрут, имя и расширение имени файла. Например: R:/Prognoz/Ucheb/prognoz1.dan. Чтобы файл мог использоваться на компьютерах и с операционной системой MS DOS, имя файла и его расширение должны формироваться по правилам операционной системы MS DOS. Tо есть в имени файла и расширении имени файла могут использоваться только латинские символы и цифры, имя файла должно начинаться с буквы, длина имени файла не должна превышать 8 символов, а расширение имени файла – четырех символов, включая точку. В имени файла не допускается использование точек и пробелов. Спецификация файла заключается в кавычки.

Опция For определяет тип файла. Тип файла указывает на его структуру и способ использования и может принимать следующие значения:

Input – файл последовательного доступа, открыт для чтения;

Output – файл последовательного доступа, открыт для записи;

Append - файл последовательного доступа, открыт для добавления данных;

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

Random – файл прямого доступа открыт для записи и чтения данных.

Опция Access определяет права доступа к данным при работе в сетях ЭВМ. Она может иметь три значения:

Read – разрешено чтение данных из файла;

Write – разрешена запись данных в файл;

Read Write - разрешено чтение и запись данных. Этот режим доступа используется по умолчанию.

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

Shared – файл может использоваться всеми процессами для считывания и записи данных;

LockRead – запрет чтения. Никакой другой процесс не может считывать данные из файла. Этот параметр можно установить, если в данный момент никакой другой процесс не выполняет операцию чтения.

LockWrite – запрет записи. Никакой другой процесс не может записывать данные в файл. Данный параметр можно установить, если в текущий момент никакой другой процесс не выполняет операцию записи.

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

Опция As – определяет номер канала. Знак # можно опустить. Номер канала может принимать значения от 1 до 255. Число одновременно открытых каналов определяется ограничениями операционной системы, указанными в файле Config.sys.

Опция Len – используется только в файлах прямого доступа. Она устанавливает длину записи в байтах.

При открытии или, иными словами, инициализации файлов выполняются следующие операции:

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

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

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

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

Для закрытия файлов используется команда Close . Синтаксис команды:

Close [# <номер канала> ]

Команда Close с параметром номера канала закрывает указанный канал. Команда Close без параметров закрывает все открытые файлы. Команда Close очищает буфер и дает указание операционной системе обновить таблицу размещения файлов .

Команды записи данных в файл и чтения информации из файлов данных зависят от типа файла.

Файл данных MathCAD11 должен быть просто файлом в ASCII-формате. MathCAD11 читает файлы, которые состоят из чисел, отделяемых запятыми, пробелами или возвратами каретки. Ниже описаны примеры некоторых файлов, читаемых в MathCAD11, в предположении, что они записаны в ASCII-формате:

§ файл, созданный выводом данных из электронной таблицы на диск;

§ столбец чисел, набитых в текстовом процессоре и сохраненных в ASCII- формате;

§ результат работы программы, написанной на языке высокого уровня;

§ данные, экспортированные из базы данных.

Числа в файлах данных могут быть целыми числами, подобными 3 или -1, числами с плавающей запятой, подобными 2.54, или иметь экспоненциальную запись, как 4.51E -4 (для 4.5 10 -4). Например, следующий список чисел был бы допустимой строкой в файле данных MathCAD11:

200, 50 25.1256, 16E – 2, – 16.125E15

MathCAD11 также сохраняет данные в ASCII-файлы. Файлы данных, сохранённые MathCAD11, содержат числа, отделяемые пробелами и возвратами каретки. Документы MathCAD11 сами по себе не являются файлами данных в указанном понимании. Единственный способ создать файл данных из MathCAD11 - использование функций доступа к файлам.

Функции доступа к файлам

В MathCAD11 есть шесть функций доступа к файлам READ, WRITE , APPEND , READPRN , WRITEPRN , APPENDPRN . Их свойства:

§ Имя функции должно печататься заглавными буквами;

§ Если MathCAD11 не может найти файл данных, он отмечает соответствующую функцию доступа сообщением об ошибке “файл не найден ”. Если MathCAD11 пытается прочитать файл неподходящего формата, он отмечает функцию сообщением “ошибка файла ”;

§ Левая часть оператора присваивания, использующего одну из функций WRITE , APPEND , WRITEPRN, APPENDPRN , не должна больше ничего содержать;

§ Каждое новое равенство с использованием функций доступа заново открывает файл данных. При считывании данных, например, каждое новое равенство начинает читать в начале файла;

§ В одном равенстве файл может быть открыт только единожды. Это означает, что, если функция READ используется с одним аргументом-именем файла дважды в одном уравнении (это возможно при использовании дискретного аргумента), во второй раз READ начнет читать с того места, где закончилось чтение в первый раз. Поскольку READPRN читает весь файл целиком, это означает, что READPRN нельзя использовать с одним аргументом дважды в одном равенстве - во второй раз READPRN не останется ничего читать;

§ Если два равенства в рабочем документе используют WRITE или WRITEPRN с одним аргументом, данные из второго равенства запишутся поверх данных из первого. Следует использовать APPEND или APPENDPRN, если нужно сохранить первую порцию данных. Эти функции дописывают новые данные к существующему файлу.

В табл. 6.1 описаны эти шесть функций.

Таблица 6.1

Функции доступа к файлам

Функция Значение
READ(file ) Считывает значение из файла данных. Возвращает скаляр. Обычно используется следующим образом: v i:=READ(“file” )
WRITE(file ) Записывает значение в файл данных. Если файл уже существует, заменяет его на новый файл. Используется в определениях следующего вида: WRITE(file ) := v i
APPEND(file ) Дописывает значение к существующему файлу. Используется в определениях следующего вида: APPEND(file ) := v i
READPRN(file ) Читает структурированный файл данных. Возвращает матрицу. Каждая строка в файле данных становится строкой в матрице. Число элементов в каждой строке должно быть одинаковым. Обычно используется следующим образом: A: = READPRN(file )

Окончание табл.6.1

Вторым файлом, необходимым для работы 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. Отображение результатов классификации в окне перекрестных ссылок

Лучшие статьи по теме