4915

Работа с файлами в языке паскаль

Лекция

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

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

Русский

2012-11-29

17.24 KB

20 чел.

Работа с файлами в языке паскаль.

В языке паскаль с файлами можно работать несколькими способами. Все зависит от того, как этот файл открывается. Один и тот же файл можно открывать разными способами. Правда, если открыть нее тем способом, можно прочитать из него БРЕД.

В паскале поддерживаются 3 типа файлов:

  1. Текстовый – в такой файл записывается обычный текст. Операция записи и чтения из такого файла производится точно так же как на экран и клавиатуру.
  2. Типизированные файлы – обычно применяются для хранения большого объема однотипных файлов. Например, файл of integer – предназначен для хранения файлов исключительно типа integer.
  3. Не типизированные файлы – и не текст и не привязка к какому-либо типу, хотя чем-то напоминает типизированные. Суть в том, что файл без указания типа. По умолчанию одна запись привязывается к объёму 128 байт, но можно указать любой размер. Одна команда чтения, одна команда записи читает или записывает сразу кусок файла указанного размера.

Например, в программе имеется  1000 массивов, в каждом массиве по 1000 элементов, каждый элемент типа integer. Можно перебрать все тысячу массивов, в каждом массиве перебрать все тысячу элементов и каждый такой элемент записать в типизированный файл( file of integer ). Получен миллион операций записи: 1) это будет долго,2) диск портится.

С другой стороны, если открыть файл как не типизированный и указать размер записи в 4000 байт (1000 элементов типа integer) , то каждый массив из программы можно будет записать в файл одной командой. То есть операций будет 1000.

Работа с текстовыми файлами.

Для работы с текстовыми файлами необходимо объявить  файловую переменную: var F1: text; -переменная F1 может указывать на любой файл на диске. Для того, чтобы работать с нужным файлом, переменную нужно с ним связать: assign(F1,’ Myfile.txt’); - если в команде assign указывается только имя, то файл ищется в текущем каталоге, то есть Для того, чтобы найти файл в другом каталоге необходимо либо указать полный путь к файлу (assign(F1,’ C:\Mydok \Myfile.txt’);, либо предварительно выполнить команду смены каталога. Данных действий не достаточно, чтобы начать работать с файлом. Ещё одно необходимое действие- открытие файла. В паскале файл можно открыть тремя способами: 1. Только на чтение, 2. На перезапись(старое собержимое будет потеряно), 3. На дописывание файла. Reset- 1, rewrite -2, append- 3. После завершение всех действий с файлом его необходимо закрыть – close. После закрытия его можно открыть в любом режиме и снова с ним работать.

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

В разных версиях языка для этого предусмотрено различные директивы. В частности турбо паскаль:  {$I-},{$I+}- данные директивы включают или отключают аварийное завершение программы в различных случаях, в том числе и при работе с файлами. Если включена , то программа аварийно завершится в случае ошибки. Если выключена, то программа не завершится и нам будет предоставлена возможность  проверить ошибки.

Особенности чтения из файлов:

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

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

Так как паскаль разрабатывался ещё под DOS, а мы его запускаем под Windows, могут возникнуть проблемы с русским языком.


 

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

16774. Геологические основы рациональной разработки золоторудных месторождений 95.5 KB
  Геологические основы рациональной разработки золоторудных месторождений А.И. Образцов Навоийский ГМК Экономическая и природоохранная эффективность разработки месторождений кроме применяемых технических средств напрямую зависит от полноты использования соде
16775. Геофизическое опробование коренного месторождения золота 209 KB
  Геофизическое опробование коренного месторождения золота Б.К.Кавчик к.г.м.н. ОАО Иргиредмет В августе 2005 г сотрудниками института ИРГИРЕДМЕТ на коренном месторождении золота впервые испытан геофизический метод опробования с применением металлодетекторов. Ме
16776. ГЛУБИННЫЕ ЗОЛОТОНОСНЫЕ РЕКИ ЗЕМЛИ 113 KB
  ГЛУБИННЫЕ ЗОЛОТОНОСНЫЕ РЕКИ ЗЕМЛИ Доктор геологоминералогических наук профессор А. ПОРТНОВ. Опубликовано Наука и жизнь 12 . 2000г. Как было открыто золото Витватерсранда самое крупное в мире скопление этого драгоценного металл
16777. Госты и пробы (золото, серебро) 124.5 KB
  Госты и пробы золото серебро Для золота существуют утвержденные ГОСТом цифровые значения пробы указывающие на количество драгоценного металла содержащегося в 1000 частях сплава. Проба присваивается каждому драгоценному сплаву. ГОСТ 683585 преду...
16778. ДАЛЬНЕВОСТОЧНАЯ ЗОЛОТОДОБЫВАЮЩАЯ ПРОМЫШЛЕННОСТЬ И ЕЕ ВЛИЯНИЕ НА ОСВОЕНИЕ РЕГИОНА (ВТОРАЯ ПОЛОВИНА ХIХ в. – 1917 г.) 346 KB
  Маркова Нина Анатольевна ДАЛЬНЕВОСТОЧНАЯ ЗОЛОТОДОБЫВАЮЩАЯ ПРОМЫШЛЕННОСТЬ И ЕЕ ВЛИЯНИЕ НА ОСВОЕНИЕ РЕГИОНА ВТОРАЯ ПОЛОВИНА ХIХ в. 1917 г. ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ Актуальность исследования. Золото традиционно является валютным металлом играет роль резер
16779. Добыча драгоценных металлов из промышленных отходов 66.5 KB
  Добыча драгоценных металлов из промышленных отходов Сразу же хочу напомнить читателям об уголовной ответственности существующей на момент написания этих строк за самодеятельную добычу драгоценных металлов из промышленных отходов. Такое положение вещей не может дол
16780. Добыча россыпного золота в XXI веке 179 KB
  Добыча россыпного золота в XXI в. Б.К.Кавчик ОАО Иргиредмет Добыча россыпного золота ведется в России уже почти 200 лет и в настоящее время ее объем ежегодно составляет около 50 т. Однако запасы россыпного золота близки ...
16781. Золотая добыча 89.5 KB
  Золотая добыча Мировые цены на золото сейчас как никогда высоки: в марте 2008 года котировки этого драгметалла превысили 1 тыс. за тройскую унцию. Однако отечественная золотодобывающая отрасль вряд ли сможет оперативно отреагировать на резкий рост ценовой конъюнктуры. ...
16782. Золотая лихорадка или роль золота в истории 145 KB
  Золотая лихорадка или роль золота в истории. Золото расковывается до толщины 01 микрометра. 28 грамм хватит на лист площадью около 17 кв. метров Цивилизация человечества невозможна без таких металлов как медь железо затем алюминий и пр. Но золото представляется...