АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Работа с файлами

Читайте также:
  1. IV. Работа в режиме быстрой маски
  2. V. Работа с рисунками – символами, иллюстрациями
  3. Б. Работа стали на продольный изгиб
  4. В двухъярусных березово-еловых насаждениях (II ярус-лесные культуры ели), разработайте лесоводственные мероприятия, направленные на постоянство лесопользования.
  5. В ходе защиты курсовая работа оценивается комиссией кафедры ТМПО.
  6. Внутренняя энергия. Работа газа. Первый закон термодинамики
  7. Вопрос 21. Определение потребности в рабочих на нормируемых работах
  8. Вопрос № 12. Чему равно минимальное напряжение ЛЭП, когда работа стреловыми кранами на расстоянии ближе 30 м от крайнего провода выполняется по наряду – допуску?
  9. Вред, который причиняет работа женщине
  10. Глава 9. Работа с симптомами-мишенями.
  11. Десять самых убедительных доводов в пользу того, чтобы продолжать работать на фирму
  12. Домашняя практическая работа № 1

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

Для задания типа-файла следует использовать зарезервированные слова File и Of, после чего указать тип компонент файла. Пример:

Туре

N = File Of Integer; {Тип-файл целых чисел}

С = File Of Char; {Тип-файл символов}

Есть заранее определенный в Бейсике тип файла с именем Text. Файлы этого типа называют текстовыми.

Введя файловый тип, можно определить и переменные файлового типа:

Var

F1 : N;
F2 : С;
F3 : Text;

Тип-файл можно описать и непосредственно при введении файловых переменных:

Var

Z: File Of Word;

Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никаких операций (присваивать значение, сравнивать и т.д.). Их можно использовать лишь для выполнения операций с файлами (чтение, запись и т.д.).

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

Перед тем, как осуществлять ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом при помощи процедуры Assign. Формат:

Assign(<Имя файловой переменной>,<Имя файла>);

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

После этого файл должен быть открыт одной из процедур:

Reset(<№^ файловой переменной>);

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

Rewrite (<Имя файловой переменной>);


Открывается новый пустой файл для записи, ему присваивается имя, заданное процедурой Assign. Если файл с таким именем уже существует, то он уничтожается.

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

Close(<Имя файловой переменной>);

Это требование обязательно должно соблюдаться для файла, в который производилась запись.

Теперь paссмотрим непосредственную организацию чтения и записи.

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

Read(<Имя файловой переменной>, <Список ввода>);

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

Вывод информации производит, как можно догадаться оператор Write (<Имя файловой переменной>, <Список вывода>);Данные из списка вывода заносятся в файл, открытый для записи.

Для текстовых файлов используются также операторы Readln и Writeln с соответствующими дополнениями, относящимися к файловому вводу-выводу. Любопытно, что вывод данных на монитор и ввод с клавиатуры в языке Паскаль тоже являются действиями с файлами. Они даже имеют свои предопределенные файловые переменные текстового типа: Output и Input соответственно. Переменная Output всегда открыта для записи, Input - для чтения. Если не указывать файловые переменные в операторах ввода-вывода (придем к формату, рассмотренному в теме "Операторы ввода-вывода"), то в случае записи по умолчанию выбирается файл Output, в случае чтения - Input.

Как вы знаете, любой файл конечен и продолжать чтение из него информации можно лишь до определенного предела. Как этот предел установить? Проверить, окончен ли файл, можно вызовом стандартной логической функции Eof (<Имя файловой переменной>)

Она вырабатывает значение True, если файл окончен, и False - в противном случае.

Решим следующую задачу: "Написать программу, которая вводит с клавиатуры список фамилий учащихся, а затем распечатывает его, кроме тех учащихся, у которых фамилия начинается с буквы 'Ш'".

Так как заранее количество данных не известно, то для их хранения используем файл. Тип элементов - строковый. Program L; Var

I,N: Integer; S: String;

F: File Of String; Begin

{Связываем переменную F с файлом Spis.lst} Assign(F,'Spis.lst');

Writeln('Введите количество учащихся'); Readln (N);

Rewrite(F); {Создаем файл для записи} For I:=l To N Do Begin

Writeln ('Введите фамилию');Readln(S); Write(F,S) End;

Close(F); Reset(F); Writeln('Список учащихся:');

While Not(Eof(F)) Do

Begin

Read(F,S);

If S[1]<>' Ш ' Then Writeln(S)

End;

Close(F) End.


Контрольные вопросы

Перечислить основные разделы программы. Какой (какие) из них являются обязательными.

Что определяет тип данных

Перечислить базовые типы данных

Указать разделитель операторов в программе

Правила записи операторов ввода и вывода

Оператор присваивания. Правила записи.

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

Правила записи арифметического выражения

Логические величины и выражения. 10. Назначение составного оператора

Операторы условного и безусловного перехода

Операторы цикла, сравнительный анализ

Использование символьных и строковых величин. Встроенные символьные функции

Определение типов

Использование в программе одномерных массивов

Использование в программе двумерных массивов

Назначение процедур и функций. Формальные и фактические параметры. Локальные глобальные переменные.

Основные операторы и функции при чтении и записи текстовых файлов

 

Рекомендуемая литература

Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования(Pascal, C++, Visual Pascal): Учебно-справочное пособие. М.: Финансы и статистика, 2002

Голицына О.Л., Попов И.И., Основы алгоритмизации и программирования: Учеб. Пособие. М.: ФОРУМ: ИНФРА-М, 2002

Гусева А.И., Учимся программировать:Pascal 7.0,, М., "Диалог-МИФИ", 1998 г.

Немнюгин С.A. Turbo Pascal, СПб: Издательство «Питер», 2000

Семакин И.Г., Шестаков А.П. Основы программирования: Учебник для сред. проф. Образования, М.: Издательский центр «Академия», 2003

Угольницкий Г.А. Методы программирования., М.: Вузовская книга, 1999 г.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)