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, могут возникнуть проблемы с русским языком.


 

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

53123. Розв’язування трикутників 214.5 KB
  Мета: формувати вміння і навички розвязування трикутника за трьома його основними елементами; повторити теореми синусів косинусів та наслідки з них; повторити основні типи задач на обчислення елементів довільних трикутників; розвивати пошукову пізнавальну активність учнів логічне мислення уяву звязне мовлення; виховувати самостійність наполегливість впевненість у собі інтерес до предмету. Сторону трикутника пропорційні до синусів протилежних кутів теорема синусів. Квадрат сторони трикутника дорівнює сумі...
53125. Збірник завдань для тематичної атестації з геометрії для класів з поглибленим вивченням математики. Геометрія 8 клас 1.3 MB
  Збірник є дидактичним матеріалом з геометрії для 8 класу з поглибленим вивченням математики. Він містить 8 контрольних робіт в двох варіантах, за структурою наближених до атестаційної роботи в 9 класі.
53126. ДИФФЕРЕНЦИРОВАННОЕ ОБУЧЕНИЕ НА УРОКАХ ГЕОГРАФИИ 173 KB
  Карточки-задания при изучении темы Экономические районы Украины 9 класс Карточка №1 1. Карточка №2 1. Самый высокий уровень социально-экономического развития у района: а Северо-Восточного; б Приднепровского; в Донецкого Карточка №3 1 Проведите примерную границу между областями. Каковы...
53127. Einkufe und Ernährung. Wiederholung 29.5 KB
  Wir haben schon viel an diesem Thema gearbeitet und heute veranstalten wir an der Stunde einen Wettbewerb. Ich teile die Klasse in zwei Mannschaften und ihr erfüllt im Laufe der Stunde verschiedene Aufgaben. F?r jede richtige Aufgabe bekommt ihr einen Punkt. Welche Mannschaft hat mehr Punkten (B?lle), ist der Sieger.
53128. Збірник граматичних вправ з німецької мови для 6 класу 440.5 KB
  Sie waren jung und hatten Spaß! Präsens Heute bin ich alt und habe graue Haare. Perfekt Ich bin auch mal jung gewesen und habe keine grauen Haare gehabt. Präteritum Ich war auch mal jung und hatte keine grauen Haare.
53129. Внеклассное мероприятие по немецкому языку «Рождество в Германии» 1.31 MB
  Ведущий 1: Guten Tag, liebe Freunde! Heute feiern wir der hellste Tag - Weihnachten! Heute ist der schönste Tag im ganzen Jahr. Das ist der Weihnachtstag- Wie glänzt der Christbaum hell und klar. Wie freut sich die Kinderschar.
53130. Частини тіла (5 клас) 192.5 KB
  Heute beginnen wir ein neues Thema „Der Mensch“. Wir lernen, wie alle Körperteile heißen. Zuerst hört ihr ein Gedicht und sprecht nach.
53131. Федеративна Республіка Німеччина 70.5 KB
  Частина світу сторона світу країни карлики 25 держав колонізатори країни Західної Європи. Число Андрій Шевченко чудеса світу країни великий Велика сімка. Мотивація навчальної діяльності При знайомстві з регіоном Західної Європи ми зясували що країни цього регіону входять до числа розвинених країн світу а чотири з них Німеччина Італія Франція Великобританія члени Великої сімки. Інструктивна картка №1 Політологи фізико географи Загальні відомості про країну: назва; площа; форма правління; ...