Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Лекция 5

Содержание

Любой обмен данными подразумевает наличие источника информации, канала передачи и ее приемника. В случае обмена данными между программой и периферийными устройствами одним концом канала обмена данными всегда является оперативная память ЭВМ. Другой конец этого канала определяют
Лекция 5ФАЙЛЫ Любой обмен данными подразумевает наличие источника информации, канала передачи и ее приемника. Понятие файла достаточно широко. Это может быть обычный файл данных на диске, Операция вывода данных означает пересылку данных из ОЗУ в файл, а операция Понятие логического файла  Логический файл описывается как переменная одного из файловых Текстовые файлы состоят из ASCII кодов, включая расширенные и управляющие коды. Текстовые Компонентные файлы в отличии от текстовых состоят из машинных представлений чисел, символов После того, как в программе в разделе описания переменных объявлена файловая переменная, Введение логического файла позволяет программисту не задумываться о технических проблемах организации доступа Описание файлов имеет следующий вид: type имя типа=file of базовый тип; В Пример:  type mas=array[1..10] of real; mno=set of 1..10; zap=record re,im:integer; end; Структура физического файла Представляет собой простую последовательность байт памяти носителей информации, например, жесткого магнитного диска Структура логического файла-это способ восприятия файла в программе, другими словами- это шаблон, Например: file of byte;   file of char; file of integer;    file of t; здесь t=record f:byte; Логическая структура файла очень похожа на структуру массива. Различие между файлом У файла количество элементов в процессе работы программы может изменяться и он Общие процедуры работы с файлами 1)Assign(var F:file;Filename:string); связывает имя файловой переменной F 2) Reset(var F:file); - открывает физический файл, связанный с файловой переменной F. Если физический файл с указанным именем отсутствует, то возникает ошибка открытия файла. 3)Rewrite(var F:file); - создает новый физический файл, связанный с файловой переменной F 4) Read(var F:file;var x1,x2,…xn); считывает переменные из файла F в х1,х2,…хn, начиная 5) Write(var F:file; var x1,x2,…xn); -записывает одно, или несколько значений переменной в 6)Close(var F:file); закрывает физический файл с логическим именем F. Попытка закрыть уже 7) Rename( var F;newname:string); - переименовывает физический файл, связанный с логическим именем Тип типизированного файла представляет собой «шаблон», который накладывается на физический файл для program CB; var fc:file of char; fb:file of byte; ch:char; b:byte; Пример 1    Вывести на экран элементы файла a:\nambers Пример 2 . Вычислить сумму элементов файла. program fsumma; var f: file Понятие буфера ввода-вывода С файловой системой связано понятие буфера ввода-вывода. Ввод и Аналогично, при чтении из файла считывается не столько, сколько запрашивается, а Последовательный и прямой доступ к элементам файла Файл-это последовательная структура данных и Например, пусть нужно прочитать 5 элемент файла f и записать его в В современных версиях Паскаля предусмотрена процедура прямого доступа Filesize(var f):longint;-возвращает число записей seek(f,n) – устанавливает в открытом файле номер n компонента, который будет считан Пример 3 Пусть задан файл f, каждый элемент которого-запись, содержащая фамилию студента Program cor; type zap=record      fio:string[30]; Добавление данных к файлу Пусть необходимо к уже существующему файлу добавить ряд Пример 4Пусть уже создан файл f, состоящий из целых чисел 1,2,3,4,5. Необходимо Прямая выборка из элементов файла Для этого используется процедура seek(f,n), где f- Используя процедуру seek можно корректировать отдельные элементы файла непосредственно. Для этого нужно Пример 5    Пусть был создан файл f, содержащий числа Пример 5  Отсортировать элементы файла. program sort; var f:file of integer; {сортировка} reset(f); for i:=filesize(f)-1 downto 1 do   for j:=0 to Структура текстового файла Особый вид файла представляют собой текстовые файлы, которые являются Текстовые файлы являются файлами  с последовательным доступом. В любой момент Текстовый файл в силу своей специфики во время работы допускает только один Пример 1 Создать на диске a текстовый файл и записать в него Пример 2  Дописать в файл a:\phone.txt ФИО и № телефона абонента. Program primer; Var f1,f2:text;     I,n: integer;     S: string; Begin {часть вторая: чтение из первого файла и формирование второго}     Reset(f1); {открываем Бестиповые (нетипизированные) файлы Бестиповые файлы предназначены для записи участков памяти компьютера на внешний Также в бестиповых файлах для записи и чтения информации используются не стандартные ПРИМЕР program no_type_fail; var f: file; x, i ,n: byte; begin assign(f, 'f'); rewrite(f, 1); write('n = '); readln(n); for i:=1 to n do
Слайды презентации

Слайд 2 Любой обмен данными подразумевает наличие источника информации, канала

Любой обмен данными подразумевает наличие источника информации, канала передачи и ее

передачи и ее приемника. В случае обмена данными между

программой и периферийными устройствами одним концом канала обмена данными всегда является оперативная память ЭВМ. Другой конец этого канала определяют как файл.

Слайд 3 Понятие файла достаточно широко. Это может быть обычный

Понятие файла достаточно широко. Это может быть обычный файл данных на

файл данных на диске, или коммуникационный порт, или устройство

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

Слайд 4 Операция вывода данных означает пересылку данных из ОЗУ

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

в файл, а операция ввода-заполнение ячеек памяти данными, полученными

из файла. Файловая система, реализуемая в Паскале, состоит из двух уровней: логических файлов и физических файлов.

Слайд 5 Понятие логического файла Логический файл описывается как переменная

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

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

файловых типа: текстовые файлы; компонентные файлы; бестиповые файлы.

Слайд 6 Текстовые файлы состоят из ASCII кодов, включая расширенные

Текстовые файлы состоят из ASCII кодов, включая расширенные и управляющие коды.

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

обязательно содержат специальный код, называемый концом строки. Любую информацию (числовую, символьную, строчную) тестовый файл хранит в виде символов ее изображающих. Текстовый файл можно распечатать и прочитать. Например, текст программы на Паскале-это текстовый файл, но выполняемый ЕХЕ- файл, полученный после компиляции, не является текстовым, и даже если его содержимое удастся распечатать, то прочесть его не удастся.

Слайд 7 Компонентные файлы в отличии от текстовых состоят из

Компонентные файлы в отличии от текстовых состоят из машинных представлений чисел,

машинных представлений чисел, символов и структур, поэтому с их

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

Слайд 8 После того, как в программе в разделе описания

После того, как в программе в разделе описания переменных объявлена файловая

переменных объявлена файловая переменная, она может быть использована как

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

Слайд 9 Введение логического файла позволяет программисту не задумываться о

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

технических проблемах организации доступа к данным. Различные физические файлы

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

Слайд 10 Описание файлов имеет следующий вид: type имя типа=file of

Описание файлов имеет следующий вид: type имя типа=file of базовый тип;

базовый тип; В качестве базового типа элементов файла можно использовать

любой тип данных, как простой, так и сложный, за исключением типа file.

Слайд 11 Пример: type mas=array[1..10] of real; mno=set of 1..10; zap=record re,im:integer; end; var f1:

Пример: type mas=array[1..10] of real; mno=set of 1..10; zap=record re,im:integer; end;

file of integer; f2: file of real; f3:file of char; f4: file

of mas; f5:file of mno; f6: file of zap;

Слайд 12 Структура физического файла Представляет собой простую последовательность байт памяти

Структура физического файла Представляет собой простую последовательность байт памяти носителей информации, например, жесткого магнитного диска

носителей информации, например, жесткого магнитного диска


Слайд 13 Структура логического файла-это способ восприятия файла в программе, другими

Структура логического файла-это способ восприятия файла в программе, другими словами- это

словами- это шаблон, через который мы смотрим на физическую

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

Слайд 14 Например: file of byte; file of char;

Например: file of byte;  file of char;

Слайд 15 file of integer; file of t; здесь t=record f:byte; b:char;

file of integer;  file of t; здесь t=record f:byte; b:char;    c:integer; end;

c:integer; end;


Слайд 16 Логическая структура файла очень похожа на структуру

Логическая структура файла очень похожа на структуру массива. Различие между

массива. Различие между файлом и массивом в том, что

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

Слайд 17 У файла количество элементов в процессе работы программы

У файла количество элементов в процессе работы программы может изменяться и

может изменяться и он располагается на внешних носителях. Нумерация

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

Слайд 18 Общие процедуры работы с файлами 1)Assign(var F:file;Filename:string); связывает имя файловой

Общие процедуры работы с файлами 1)Assign(var F:file;Filename:string); связывает имя файловой переменной

переменной F в программе с именем внешнего (физического) файла

на диске, где Filename- выражение строкового типа вида ‘диск:\имя каталога\имя подкаталога\...\имя файла’ Если в параметре Filename имена диска и подкаталога не указаны, то выбирается текущий диск и текущий каталог. После выполнения процедуры Assing все действия над переменной F будут эквивалентны действиям над файлом, определенным спецификацией Filename. Процедуру Assign необходимо использовать до начала работы с файлами.

Слайд 19 2) Reset(var F:file); - открывает физический файл, связанный

2) Reset(var F:file); - открывает физический файл, связанный с файловой переменной

с файловой переменной F. Если F- текстовый файл, то

он будет доступен только для чтения при последовательном доступе. Если F-типизированный файл, то он будет открыт как для чтения, так и для записи, как при прямом, так и при последовательном доступе. При этом указатель файла устанавливается на первый элемент файла и EOF(F)=false. Если файл пустой, то EOF(F)=true.

Слайд 20 Если физический файл с указанным именем отсутствует, то

Если физический файл с указанным именем отсутствует, то возникает ошибка открытия

возникает ошибка открытия файла. Ее можно подавить включением директивы

компилятора {$I-}. Эта директива отменяет генерацию кода, проверяющего результат обращения к процедуре ввода-вывода. При такой установке директивы можно проанализировать результат завершения операции открытия файла с помощью функции IOResult, которая возвращает значение 0, если операция завершилась успешно и ненулевой код ошибки в противном случае.

Слайд 21 3)Rewrite(var F:file); - создает новый физический файл, связанный

3)Rewrite(var F:file); - создает новый физический файл, связанный с файловой переменной

с файловой переменной F для записи. Если такой физический

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

Слайд 22 4) Read(var F:file;var x1,x2,…xn); считывает переменные из файла F

4) Read(var F:file;var x1,x2,…xn); считывает переменные из файла F в х1,х2,…хn,

в х1,х2,…хn, начиная чтение с элемента, на который указывает

текущий указатель. Если имя F опущено, то подразумевается стандартный файл Input. Read выполняется только в том случае, если EOF(f)=false

Слайд 23 5) Write(var F:file; var x1,x2,…xn); -записывает одно, или

5) Write(var F:file; var x1,x2,…xn); -записывает одно, или несколько значений переменной

несколько значений переменной в файл F , начиная с

той позиции, на которую установлен указатель. Если имя F опущено, то подразумевается стандартный файл Output. Write выполним только в том случае, если Eof(F)=true.

Слайд 24 6)Close(var F:file); закрывает физический файл с логическим именем

6)Close(var F:file); закрывает физический файл с логическим именем F. Попытка закрыть

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

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

Слайд 25 7) Rename( var F;newname:string); - переименовывает физический файл,

7) Rename( var F;newname:string); - переименовывает физический файл, связанный с логическим

связанный с логическим именем F в имя newname. Эта

функция применима только к закрытым файлам. 8)Erase(var F); - стирает физический файл, связанный с логическим именем F. Применим только к закрытым файлам и только если этот физический файл существует.

Слайд 26 Тип типизированного файла представляет собой «шаблон», который накладывается

Тип типизированного файла представляет собой «шаблон», который накладывается на физический файл

на физический файл для доступа к его элементам. Можно

создать файл, используя один шаблон, а прочитать, используя другой. Например, в программе сначала в файл типа Char записывается ряд символов, а затем этот же файл открывается как файл типа byte, и в результате на печать выводятся ASCII коды записанных в него символов. program CB; var fc:file of char; fb:file of byte; ch:char; b:byte;

Слайд 27 program CB; var fc:file of char; fb:file of byte; ch:char; b:byte;

program CB; var fc:file of char; fb:file of byte; ch:char; b:byte;

begin assign(fc,’test.dat’);

rewrite(fc); for ch:=‘0’ to ’9’ do write(fc,ch); for ch:=‘A’ to ’J’ do write(fc,ch); close(fc); assign(fb,’test.dat’); reset(fb); while not eof(fb) do begin read(fb,b); write(b); end; close(fb) end.

Слайд 28 Пример 1 Вывести на экран элементы

Пример 1  Вывести на экран элементы файла a:\nambers и вычислить

файла a:\nambers и вычислить их количество. var f:file

of integer; n, kol:integer; begin writeln(‘элементы файла а:\nambers’); assign(f, ‘a:\nambers’); reset(f); kol:=0; while not eof(f) do begin readln(f,n); writeln(n); kol:=kol+1 end; close(f); write(‘kol=‘, kol) end.

Слайд 29 Пример 2 . Вычислить сумму элементов файла. program fsumma; var

Пример 2 . Вычислить сумму элементов файла. program fsumma; var f:

f: file of integer; x,summa:integer; begin {$I-} assign(f,’MyFile.dat’); reset(f); if IoResult0 then begin writeln(‘ошибка

открытия файла’); halt; end; summa:=0; while not eof(f) do begin read(f,x); summa:=summa+x; end; write(‘summa=‘, summa); close(f); end.

Слайд 30 Понятие буфера ввода-вывода С файловой системой связано понятие буфера

Понятие буфера ввода-вывода С файловой системой связано понятие буфера ввода-вывода. Ввод

ввода-вывода. Ввод и вывод данных осуществляется через буфер. Буфер-это

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

Слайд 31 Аналогично, при чтении из файла считывается не

Аналогично, при чтении из файла считывается не столько, сколько запрашивается,

столько, сколько запрашивается, а сколько уместится в буфер. Если,

например, запрашивается 4 числа, а в буфер умещается 64, то следующие 60 чисел будут считываться уже из буфера. Механизм буферизации позволяет более быстро и эффективно обмениваться информацией. Вывод текстовой информации на экран реализован так, что эффект буферизации исчезает автоматически

Слайд 32 Последовательный и прямой доступ к элементам файла Файл-это последовательная

Последовательный и прямой доступ к элементам файла Файл-это последовательная структура данных

структура данных и естественным способом доступа к файлам является

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

Слайд 33 Например, пусть нужно прочитать 5 элемент файла f

Например, пусть нужно прочитать 5 элемент файла f и записать его

и записать его в переменную v. reset(f); for i:=1 to

5 do read(f,v); close(f);

Слайд 34 В современных версиях Паскаля предусмотрена процедура прямого доступа Filesize(var f):longint;-возвращает

В современных версиях Паскаля предусмотрена процедура прямого доступа Filesize(var f):longint;-возвращает число

число записей в открытом файле (счет от 1); filepos(var f):longint;-возвращает

номер записи в открытом файле, предшествующей той, которая будет следующей записана или считана (позиции нумеруются от 0)

Слайд 35 seek(f,n) – устанавливает в открытом файле номер n

seek(f,n) – устанавливает в открытом файле номер n компонента, который будет

компонента, который будет считан или записан при следующей операции

ввода-вывода. trunkate(f)-отсекает часть открытого файла, начиная с той компоненты, которая была бы считана следующим оператором ввода и подтягивает конец файла.

Слайд 36 Пример 3 Пусть задан файл f, каждый элемент которого-запись,

Пример 3 Пусть задан файл f, каждый элемент которого-запись, содержащая фамилию

содержащая фамилию студента и его возраст. Обновить данные этого

файла путем увеличения возраста всех студентов на 1 .

Слайд 37 Program cor; type zap=record fio:string[30];

Program cor; type zap=record   fio:string[30];    voz:0..99

voz:0..99

end; var f:file of zap; z:zap,i:integer; begin assign(f,’a:\file’); reset(f); i:=0; while not eof(f) do begin read(f,z); z.voz:=z.voz+1; seek(f,i);write(f,z); i:=i+1; end; close(f) end.

Слайд 38 Добавление данных к файлу Пусть необходимо к уже существующему

Добавление данных к файлу Пусть необходимо к уже существующему файлу добавить

файлу добавить ряд элементов. Для этого необходимо выполнить следующие

действия: 1)Открыть уже существующий файл процедурой reset; 2)установить указатель за последним его компонентом процедурой seek(f,filesize(f)); 3)записать дополнительные данные процедурой write 4)закрыть файл процедурой close.

Слайд 39 Пример 4Пусть уже создан файл f, состоящий из

Пример 4Пусть уже создан файл f, состоящий из целых чисел 1,2,3,4,5.

целых чисел 1,2,3,4,5. Необходимо добавить к этому файлу числа

10,20,30 program pr2; var f: file of integer; i,x:integer; begin assign(f,’f’); reset(f); seek(f,filesize(f)); for i:=1 to 3 do begin x:=10*I; write(f,x); end; close(f) end.

Слайд 40 Прямая выборка из элементов файла Для этого используется процедура

Прямая выборка из элементов файла Для этого используется процедура seek(f,n), где

seek(f,n), где f- имя файла, который уже открыт процедурой

reset, n-целое положительное число или выражение, соответствующее порядковому номеру элемента в файле. После выполнения процедуры seek первое обращение к операторам read или write будет связано n-ым элементом файла. Каждое повторное использование этих операторов будет осуществлять последовательное чтение или запись элементов, начиная с n+1.

Слайд 41 Используя процедуру seek можно корректировать отдельные элементы файла

Используя процедуру seek можно корректировать отдельные элементы файла непосредственно. Для этого

непосредственно. Для этого нужно выполнить следующие действия 1)открыть корректируемый файл

(reset) 2)подвести указатели файла к корректируемому элементу (с помощью seek) 3)считать корректируемый элемент; 4) откорректировать элемент файла; 5)повторить процедуру подвода указателя файла(seek); 6)записать откорректированный элемент(write); 7) закрыть файл(close)

Слайд 42 Пример 5 Пусть был создан файл

Пример 5  Пусть был создан файл f, содержащий числа 1,2,3,4,5.

f, содержащий числа 1,2,3,4,5. Необходимо вместо последних трех вставить

30,40,50. program pr3; var f: file of integer; x,i:integer; begin assign(f,’f’); reset(f); for i:=3 to 5 do begin seek(f,i-1); read(f,x); x:=x*10; seek(f,i-1); write(f,x); end; close(f); reset(f); while not eof(f) do begin read(f,x); writeln(x) end; close(f) end.

Слайд 43 Пример 5 Отсортировать элементы файла. program sort; var f:file of

Пример 5 Отсортировать элементы файла. program sort; var f:file of integer;

integer; x,y,i,j: integer; begin assign(f,’sort.dat’); reset(f); writeln(‘исходный файл’); for

i:=1 to filesize(f) do begin read(f,x); write(x); end; close(f);

Слайд 44 {сортировка} reset(f); for i:=filesize(f)-1 downto 1 do for j:=0

{сортировка} reset(f); for i:=filesize(f)-1 downto 1 do  for j:=0 to

to i-1 do begin seek(f,j); read(f,x,y);

if x>y then begin seek(f,j); write(f,y,x);end; end; close(f); reset(f); writeln(‘отсортированный файл’); for i:=1 to filesize(f) do begin read(f,x); write(x); end; close(f); end.

Слайд 45 Структура текстового файла Особый вид файла представляют собой текстовые

Структура текстового файла Особый вид файла представляют собой текстовые файлы, которые

файлы, которые являются разновидностью файлов file of char. Для их

описания используется тип text: file Textfile: text; В текстовых файлах помимо признака конца файла eof используется признак конца строки eoln. Текстовый файл можно представить как страницу книги:

Слайд 46 Текстовые файлы являются файлами  с последовательным доступом.

Текстовые файлы являются файлами  с последовательным доступом. В любой момент

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

Другие записи становятся доступными лишь в результате последовательного продвижения по файлу. Текстовые файлы внутренне разделены на строки, длины которых различны. Обрабатывать их можно только последовательно с помощью процедур и функций: Readln  (f , st )- чтение строки st из файла f и переход на начало следующей ; Writeln (f, st )- запись строки st в файл f и маркера конца строки ; Можно использовать и процедуры Read  (f , st )- если не надо переходить на начало следующей строки и Writeln (f,st)- если не надо переводить строку.  Открытие текстового файла можно произвести двумя стандартными способами:  - поставить в соответствие файловой переменной имя файла (процедура Assign), открыть новый текстовый файл (процедура Rewrite); - поставить в соответствие файловой переменной имя файла (процедура Assign), открыть уже существующий файл (процедура Reset).

Слайд 47 Текстовый файл в силу своей специфики во время

Текстовый файл в силу своей специфики во время работы допускает только

работы допускает только один вид операции: чтение или запись.

В связи с этим для работы с текстовыми файлами используется еще одна процедура открытия файла: Append (f ) - Эта процедура открывает уже существующий файл и позиционирует указатель обработки на конец файла. После этого в текстовый файл можно только добавлять информацию, причем только в конец файла. Eoln (st )- логическая функция, результат выполнения которой равен TRUE, если достигнут маркер конца строки st. Процедура SetTextBuf( f; Buf[;Bufsize]) устанавливает размер буфера для файла равным Bufsize байт. Должна выполняться перед открытием файла f. Процедура Flush(f) выводит содержимое буфера в физический файл не дожидаясь его заполнения. Имеет смысл только для записи в файл.

Слайд 48 Пример 1 Создать на диске a текстовый файл

Пример 1 Создать на диске a текстовый файл и записать в

и записать в него 5 чисел. var f:text; n:integer;

{числа} i:integer; {счетчик чисел} begin writeln(‘Создание файла. Введите 5 чисел’); Assign(f,’a:\numbers.txt’); rewrite(f); for i:=1 to 5 do begin readln(n); writeln(f,n); end; close(f); write(‘числа записаны в файл ‘a:\numbers.txt’’) end.

Слайд 49 Пример 2 Дописать в файл a:\phone.txt ФИО

Пример 2 Дописать в файл a:\phone.txt ФИО и № телефона абонента.

и № телефона абонента. Если файла нет на диске,

то создать его. program spr; var f:text; fam: string[15]; name: string[15]; tel:string[10]; begin writeln(‘добавить в телефонный справочник’); assign(f,’ a:\phone.txt’); {$I-} Append(f); if IOResult<>0 then {вероятно файла на диске нет} begin rewrite(f); if IOResult<>0 then begin writeln(‘ошибка обращения к файлу’); halt end; end; write(‘фамилия’);readln(fam); {вводим данные} write(‘имя’);readln(name); write(‘телефон’);readln(tel); writeln(f,fam); writeln(f,name); writeln(f,tel); {записываем данные в файл} writeln(‘информация добавлена’) end.

Слайд 50 Program primer; Var f1,f2:text;     I,n: integer;     S: string; Begin

Program primer; Var f1,f2:text;     I,n: integer;     S: string; Begin

{формируем первый файл}     Assign(f1, ‘file1.txt’);     Rewrite(f1);  {открываем файл

для записи}     Readln(n) {определим количество вводимых строк}     for i:=1 to n do     begin         readln(s); {вводим с клавиатуры строки}         writeln(f1,s); {записываем последовательно строки в файл}     end;     close(f1);

Слайд 51 {часть вторая: чтение из первого файла и формирование

{часть вторая: чтение из первого файла и формирование второго}     Reset(f1);

второго}     Reset(f1); {открываем первый файл для чтения}   Assign(f2, ‘file2.txt’);

    Rewrite(f2); {открываем второй файл для записи}    While not eof(f1) do     Begin Readln(f1,s);{считываем очередную строку из первого файла}         If (s[1]=’A’) or (s[1]=’a’) then         Writeln(f2,s); {записываем во второй файл строки, удовлетворяющие условию}     End;     Close(f1,f2); {заканчиваем работу с файлами}     Writeln(‘Второй файл содержит строки:’);     Reset(f2); {открываем второй файл для чтения}     While not eof(f2) do {пока не конец второго файла}     Begin  Readln(f2,s);{считываем очередную строку из второго файла}         Writeln(s); {выводим строку на экран}     End; End.

Слайд 52 Бестиповые (нетипизированные) файлы Бестиповые файлы предназначены для записи участков памяти

Бестиповые (нетипизированные) файлы Бестиповые файлы предназначены для записи участков памяти компьютера на

компьютера на внешний носитель и считывания их в память.

В отличие от типизированных файлов, нам не нужно знать информация какого типа хранится в них. А все потому, что данные из файлов, не имеющих типа, считываются в виде байт, после чего они «подстраиваются» под переменную, в которую происходит считывание. Общая форма записи нетипизированных файлов Var <идентификатор>: File; отличается от типизированных отсутствием части of <тип данных>. Кроме того, немного изменяется принцип действия процедур Reset и Rewrite. К ним прибавляется второй параметр типа Word: reset(<имя файловой переменной>, <значение>) rewrite(<имя файловой переменной>, <значение>) Здесь «значение» — это новый размер буфера, который по умолчанию равен 128 байтам. В качестве минимального значения можно указать 1 байт, а максимального — 64 кбайт (число в байтах).

Слайд 53 Также в бестиповых файлах для записи и чтения

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

информации используются не стандартные процедуры Read и Write, а

две новые: BlockRead и BlockWrite. Рассмотрим каждую из них. Процедура BlockRead Данная процедура считывает из файла заданное число записей, которые помещаются в память. Общая форма записи: BlockRead(<имя файловой переменной>, , <количество байт>); x, y – обычные переменные, в первую помещается прочитанные данные, во вторую – количество считанных байт. Процедура BlockWrite Для записи информации в бестиповый файл предназначена процедура BlockWrite: BlockWrite(<имя файловой переменной>, , <количество байт>); Параметры процедуры BlockWrite точно такие же, как и у BlockRead. Да и принцип их одинаков, за исключением того, что первая считывает данные из файла, а вторая записывает их в него.

  • Имя файла: lektsiya-5.pptx
  • Количество просмотров: 83
  • Количество скачиваний: 0