Студопедия

Главная страница Случайная страница

Разделы сайта

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






Работа с файлами (поиск, копирование, переименование, удаление).







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

Структура описания файловой переменной:

Var < имя переменной>: file of < тип переменной>;

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

Assign (< имя файловой переменной>, < идентификатор внешнего файла>); - организует связь между файловой переменной и внешним файлом. После выполнения всех операций связь между файловой переменной и файлом разрывают, и файловая переменная может повторно связываться с любым другим файлом этого же типа.

С элементами файла можно выполнить только две операции: читать из файла и записывать в файл. Для того чтобы начать запись в файл, его следует открыть для записи. Это обеспечивает процедура Rewrite (FV); где FV — имя файловой переменной. При этом указатель устанавливается на начало файла. Если в файле есть информация, то она исчезает. Запись в файл осуществляется процедурой Write (FV, v); где v — переменная того же типа, что и файл FV. Запись происходит туда, где установлено окно (указатель). Сначала записывается значение, затем указатель смещается в следующую позицию.

Для чтения элементов файла с его начала следует открыть файл для чтения. Это делает процедура Reset (FV). В результате указатель устанавливается на начало файла. При этом вся информация в файле сохраняется. Чтение из файла осуществляется процедурой Read (FV, v).где v - переменная того же типа, что и файл FV. Значение текущего цемента файла записывается в переменную v; указатель смещается к следующему элементу.

Доступ к элементам файла в паскале последовательный, т.е. для того, чтобы прочитать n-тую запись файла, сначала нужно прочитать все предыдущие записи с 1-ой по (n-1)-ую. Rename(F, NewName) - переименование внешнего файла. Внешний файл, с которым связана файловая переменная F, получает новое имя, заданное параметром NewName.

Работа с файлом в программе завершается его закрытием с помощью процедуры close(< имя файловой переменной>);. Erase(F) - удаляет внешний файл, с которым связана файловая переменная F.

Алгоритмическая структура " цикл". Команда повторения. Привести пример.


Цикл - повторение некоторой группы действий по условию. Различают два типа цикла. Первый цикл с предусловием (цикл-пока):

Пока условие истинно выполняется серия, образующая тело цикла.

Второй тип циклической структуры - цикл с постусловием (цикл-до):

Здесь тело цикла предшествует условию цикла. Тело цикла повторяет своё выполнение, если условие ложно. Повторение кончается, когда условие станет истинным.

Найти S=1+2+3+…+ n

i: =1;

s: =0;

while i< =n do

begin

s: =s+i;

i: =i+1;

end;

Строка в Турбо Паскале – последовательность символов произвольной длины до 255 символов. для определения данных строкового типа используется идентификатор String, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки равна 255 байт.

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

Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных. Строковые данные могут использоваться в программе также в качестве констант. Недопустимо применение строковых переменных в качестве селектора в операторе Case. Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка.

Формат:

Type

< имя типа> = string [максимальная длина строки];

var

< идентификатор, …>: < имя типа>;

Переменную типа string можно задать и без описания типа:

var

< идентификатор, …>: string [максимальная длина строки];

Пример:

const

Address=’ул. Переверткина, 25’; {строковая константа}

Type

Flot = string[125];

Var

Fstr: Flot; {описание с задание типа}

St1: String; {по умолчанию длина строки = 255}

St2, St3: String[50];

Nazv: String[280]; {ошибка, длина превышает 255}


Строка в языке Турбо Паскаль трактуется как цепочка символов. (Для строки из N символов отводится N+1 байт; N байт – для хранения символов строки, а один байт – для значения текущей длины строки.)

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

^ Строковые выражения. Выражения, в которых операндами служат строковые данные, называются строковыми. Они состоят из строковых констант, переменных, указателей функций и знаков операций. Над строковыми данными допустимы операция конкатенации и операции сравнения.

Конкатенация – применяется для объединения нескольких строк в одну результирующую строку.

^ Операции сравнения (=, < >, >, <, > =, < =) проводят сравнение двух строковых операндов и имеют приоритет более низкий, чем операция конкатенации, т.е. вначале всегда выполняются все операция конкатенации, если они присутствуют, и лишь потом реализуются операции сравнения. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией. Результат выполнения операций отношения над строковыми операндами всегда имеет булевский тип и принимает значение True, если выражение истинно, и False, если выражение ложно.

Запись подобная Str[0] дает доступ к нулевому байту, содержащему значение текущей длины строки. Значение нулевого байта не должно превышать 255, но нарушение этого правила не вызывает программного прерывания, так как директива компилятора R по умолчанию находится в пассивном состоянии {$R-}. Для обеспечения строкового контроля за диапазоном допустимых значений индекса следует перевести директиву R в активное состояние {$R+}. В этом случае компилятор активизирует дополнительные команды для проверки правильности диапазона. Обычно активный режим R устанавливается на стадии отладки программ.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.