Краткий курс лекций, страница 3

2015-05-08СтудИзба

Описание файла

Документ из архива "Краткий курс лекций", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "Краткий курс лекций"

Текст 3 страницы из документа "Краткий курс лекций"

A:byte;

B:char;

C:integer;

End;

Byte

Char

Integer

Byte

Char

integer

Eof(end of file)

Структура файла похожа на строки массива, но имеет следующие отличия.

У файла не определено максимальное количество элементов, т.е. его длина.

Количество элементов файла в каждый момент времени неизвестно, зато известно, что в конце файла символ EOF, в качестве которого используется символ с кодом 26. Максимальная длина файла определяется емкостью устройств внешней памяти.

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

Классификация файлов:

  • По типу (по логической структуре):

    1. Типизированные

    2. Текстовые

    3. Нетипизированные

  • По методу доступа:

    1. Последовательного (Типизированные, Текстовые, Нетипизированные)

    2. Прямого (Типизированные, Нетипизированные)

Файловый тип или переменная файлового типа задаются следующим образом

  1. Типизированные файлы

Type <Имя1> = file of <тип>;

  1. Текстовые файлы.

Type <Имя2> = text;

Var f1,f2:<имя1,имя2>

  1. Нетипизированные файлы:

Type <имя3> = file;

Имя – это имя файлового типа, а тип это любой тип, кроме: файл и объект.

Процедуры общие для всех трех видов файлов:

  1. Assignfile (f,<полное имя файла>) – связывает файловую переменную с именем файла на внешнем носителе

  2. Reset(f) – открывает существующий файл, связанный с файловой переменной f. Если F текстовый файл то он будет доступен только для чтения, при последовательном доступе к элементам. Если f типизированный файл, то он будет открыт и для чтения и для записи, как при последовательном, так и при прямом доступе. В текстовый файл записываются строки, символы и числа (действительные, вещественные). В любом случае при открытии файла указатель текущей позиции файла устанавливается на его начало, то есть нулевую компоненту.

  3. Rewrite(f) – открывает новый физический файл, связанный с файловой переменной F, если такой файл уже существует, то он удаляется, и на его месте создается пустой файл (файл очищается). При открытии указатель текущей позиции устанавливается на начало.

  4. Eof(f) – функция возвращает значение true, если указатель текущей позиции находится за последним элементом файла или файл пустой.

  5. Rename (f, name1) – процедура переименовывает файл с файловой переменной f в name1, перед использованием этой процедуры файл должен быть закрыт, если был открыт процедурами Reset, rewrite, append

  6. Erase (f) – это процедура уничтожает файл, перед использованием этой процедуры файл должен быть закрыт, если был открыт процедурами Reset, rewrite, append

Closefile(f) – процедура закрывает файл, но связь файловой переменной с именем файла сохраняется, обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге. Повторно файл открывается без использования процедуры Assignfile.

Язык Object Pascal. Классификация типов данных. Тип данных файл.Типизированные файлы. Процедуры и функции для работы с типизированными файлами. Пример задачи.

Типизированный файл – это файл, компоненты которого имеют один тип, задаваемые при объявлении файловой переменной.

Type <имя типа> = file of <тип>;

Var <имя файловой переменной>: <имя типа>;

Тип – это тип-компонент файла.

Var f: file of byte;

F1: file of string;

Компонент типизированного файла может быть любого типа кроме файлов, поскольку длина каждого компонента постоянна, возможен прямой доступ к каждой компоненте – это осуществляется с помощью процедуры Seek (f, <н.к.>), где н.к. – номер компоненты

Первая компонента имеет номер ноль, с каждым типизированным связан файловый указатель, текущим значением которого является номер компонента, подлежащий обработке, при вводе или выводе очередной компоненты, значение указателя увеличивается или уменьшается на 1, для определения текущего положения файлового указателя используется функция filepos(f), которая возвращает значение текущего номера компонента на который указывает файловый указатель. Число компонент в файле точно определяется с помощью функции filesize(f) – количество компонент в файле. Типизированный файл открывается одновременно на считывание и на запись процедурами rewrite(f) и reset(f).

Для чтения компоненты из файла используется процедура read(f, <список переменных>), где список переменных – это переменные того же типа что и компоненты файла

Для записи компонент в файл Write(f, <список переменных>), чтобы определить находится ли файловый указатель в конце файла или нет, можно использовать функцию Eof(f). True - в конце, False – нет.

Закрытие типизированного файла процедурой close(f), при каждом этапе работы с файлом нужно использовать close(f).

  1. Типизированный файл практически нельзя прочесть в текстовом редакторе.

  2. Типизированный файл занимает меньше места, чем текстовый файл.

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

Язык Object Pascal. Классификация типов данных. Тип данных файл. Текстовые файлы. Процедуры и функции для работы с текстовыми файлами. Пример задачи.

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

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

Текстовый файл содержит типы: char, string, Boolean, целый, вещественный.

Можно просмотреть с помощью текстового редактора.

Процедуры и функции только для работы с текстом.

Для добавления записей к уже существующему файлу используется процедура Append(F).

Указатель файла перемещается в конец файла, добавление строк в конец файла.

В текстовых файлах в конце каждой строки формируется признак ее конца, определить ее признак можно с помощью логической функции – eoln(f), она true – если достигнут признак конца строки.

Seekeoln(f) –

Seekeof(f) – пропускает все пробелы, знаки tab, маркеры конца строки eoln до маркера конца файла и до первого значащего символа.

Write(f, список вывода) и Writeln(f, список вывода)– одно или несколько выражений типа char или Boolean, любого целого или вещественного типа, после выводимого параметра можно указать ширину поля, в котором будет выводиться write(s1[:n][:m]);

S – выводимое выражение; n – ширина поля; m – количество десятичных значений в дробной части вещественного числа.

Выражения в списке вывода обязательно должны быть отделены пробелами.

Язык Object Pascal. Классификация типов данных. Тип данных файл. Нетипизированные файлы. Процедуры и функции для работы с нетипизированными файлами. Пример задачи.

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

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

Для нетипизированные файлов применяются те же процедуры, что и для типизированных файлов, кроме процедур Read и Write, которые заменены на Blockread(f, <буф>, <N>, [<NN>]), blockwrite(f, <буф>, <N>, [<NN>])

N – количество записей которое должно быть прочитано или записано за одно обращение к диску.

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

Нетипизированный файл совместим с типизированным и не совместим с текстовым.

Язык Object Pascal. Классификация типов данных. Тип данных классы. Основные понятия. Поля, методы, свойства.

Классы – типы, определяемые пользователем. В них описываются свойства объекта, его методы и события, на которые он может реагировать. Разработчик может сам создавать классы.

В Object Pascale классами называются специальные типы, которые содержат поля, метки и свойства, и как любой другой тип класс служит образцом для конкретной экз. реализации, которые называются объектами.

Важным отличием классов от других типов является то, что они располагаются в куче.

Язык Object Pascal. Классификация типов данных. Тип данных классы. Инкапсуляция.

Инкапсуляция – структура данных, объединяющая в себе поля методы свойства, где поля содержат данные определенного типа.

Методы – функции и процедуры, выполняющие определенные действия.

Свойства – это поля данных, которые влияют на поведение объекта. Они служат для описания объектов и отличаются от обычных полей тем, что присвоение им значений связано с вызовом методов. Объединение методов полей и свойств называется инкапсуляцией.

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

Класс TForm – инкапсулирует в себе необходимое для создания окна Windows.

Класс TMemo – полнофункциональный текстовый редактор.

Класс TTime – обеспечивает работу с таймером.

Инкапсуляция огромные средства обмена работы Delphi – набор кирпичиков для построения программ пользователя.

Язык Object Pascal.Классификация типов данных. Тип данных классы. Наследование.

Наследование – любой класс может быть порожден от другого класса, для этого указывается type TMyclass = class(tobject); tmyclass является наследником класса tobject.

Порожденный класс наследует поля методы свойства своего родителя и может дополняться новыми полями методами и свойствами. Таким образом, принципы наследования обеспечивают поэтапное разветвление классов и собственных библиотек классов. Все классы Object Pascal порождены от Tobject. Этот класс не имеет полей и свойств, но включает методы общего назначения, обеспечивающие весь цикл.

Программист не может создать не дочерний класс от Tobject.

Следующие 2 объявления идентичны.

Принцип последования приводит к созданию ветвящегося дерева классов постветвлящегося от Tobject до потомков. Каждый потомок выполняет возможности своего родителя и передает их своим потомкам.

Язык Object Pascal.Классификация типов данных. Тип данных классы. Полиморфизм.

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

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

Язык Object Pascal.Классификация типов данных. Тип данных классы. Поля.

Поля – инкапсулированные в класс данные. Поля могут быть любого типа, в том числе данными.

Type Tmyclass = class;

aIntField:integer;

aStrField:string;

aObjField:Tobject;

end;

Каждый объект получает уникальный набор полей, но общие для всех объектов данного класса набор методов и свойств. Фундаментальный принцип инкапсуляции позволяет обращаться к полям только методов и свойств класса, но О. Паскаль позволяет обращаться к полям и напрямую.

Type Tmyclass = class;

FIntField:integer;

FStrField:string;

end;

var aObject:TMyclass;

begin aobject – имя переменной класса

aObject.FintField:=0; FintField – имя поля.

aObject.FstrField:=’строка символов’

Класс потомок получает поля всех своих предков и может дополнить их своими полями, но он не может переопределять поля или удалять их.

Язык Object Pascal. Классификация типов данных. Тип данных классы. Методы

Инкапсулированные (объединенные) в классе процедуры и функции называются методами. Они объявляются также как и обычные подпрограммы:

Type Tmyclass = class;

Function MyFunc (aPar:integer):integer;

Procedure MyProcedure;

End;

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5183
Авторов
на СтудИзбе
435
Средний доход
с одного платного файла
Обучение Подробнее