1 / 126

Файлы

Файлы. 2. Содержание. Общие сведения о файлах и файловой системе Файлы языка Паскаль Текстовые файлы Типизированные файлы Примеры решения задач обработки файлов. 1. Общие сведения о файлах и файловой системе. 3. 4. Определение.

truman
Download Presentation

Файлы

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Файлы

  2. 2 Содержание • Общие сведения о файлах и файловой системе • Файлы языка Паскаль • Текстовые файлы • Типизированные файлы • Примеры решения задач обработки файлов

  3. 1. Общие сведения о файлах и файловой системе 3

  4. 4 Определение • Файлом называют именованную последовательность элементов данных (компонент файла), расположенных, как правило, во внешней памяти: • на дискетах, • винчестере, • CD или других устройствах хранения информации, • также устройствах ввода-вывода. • В файле может храниться текст, программа, числовые данные, графическое изображение и т.д. • Для организации работы с файлами программа на языке Паскаль взаимодействует с операционной системой.

  5. 5 Файл – набор данных на диске, имеющий имя. Имя файла: 255 символов,нельзя \ /:*?”<>| персональное имя расширение («фамилия»)

  6. 6 Для того чтобы операционная система (ОС) могла размещать файлы на дисках, последние должны быть специальным образом размечены (форматированы). Разметка осуществляется средствами используемой ОС. Как правило, диски хранят большое количество файлов (количество их на жестких дисках обычно исчисляется тысячами). Для удобства и ускорения работы с таким количеством файлов применяется та или иная файловая система.

  7. Файловая система 7 Файловая система – это порядок размещения файлов на диске. • одноуровневая номер начального блока (кластера) на диске дата изменения размер vasya.txt360 байт 12.03.2007 25 Примеры.doc 13 Кб 25.04.2007 230 Я.bmp 1,28 Мб 13.09.2006 1235 • самый простой вариант • все файлы «в куче», сложно разбираться • ограниченный объем каталога (512 записей)

  8. Файловая система • многоуровневая (дерево) Корневой каталог– главный каталог диска. Диск C: autoexec.bat Файлы в корневом каталоге Документы План.doc Отчет.doc Папка (каталог)– объединяет файлы и вложенные папки Фото 2007 Ку.jpg Зя.jpg 2006 Я.jpg Шарик.jpg Вложенная папка (подкаталог)– это папка, расположенная внутри другой папки. файлы Видео Кузя.avi Винни-Пух.wmv файлы папка 8

  9. дерево папок: Диск C: Документы Видео Фото 2012 2013 корень Файловая система • многоуровневая (дерево) Рабочая папка (текущий каталог) – папка, с которой в данный момент работает пользователь. 9

  10. ? Какие файлы находятся в корневом каталоге? Адреса файлов Полный адрес файла= путь + имя файла имя файла C:\Фото\2013\Ку.jpg диск папки Путь к файлу– это перечисление папок (каталогов), в которых он находится, сверху вниз (начиная с диска). имя компьютера Сетевой адрес: \\SERVER\Видео\2013\Зя.avi Примеры: C:\SERVER\Видео\2013\Зя.avi A:\autoexec.bat \\work3\Игры\Hover\hover.exe D:\Windows\Temp\Справка.txt E:\Реферат.doc 10

  11. Рабочий стол Корзина Мой компьютер Мои документы Вся сеть ДискС: Диск D: Учебники на Server Мои рисунки Диск A: Задания на Server Сетевое окружение Моя музыка Диск E: Мои видеозаписи Диск F: Диск Z: Папки Windows сетевые ресурсы CD (DVD) флэш-диск сетевой диск 11

  12. Логические диски в Windows A:, B: дискеты C:винчестер, загрузочный диск D: … Z:винчестер, CD, DVD, флэш-диск, сетевой диск (X: \\SERVER\Игры) дисковод 12

  13. 2. Файлы языка Паскаль 13

  14. 14 • В Паскале файл определяется как последовательность компонентов, относящихся к одному типу: • файл записей, • файл целых чисел, • файл строк • и т. п. • Особенностью файлов по сравнению с другими структурными типами данных является то, что в любой момент доступен только один компонент. • Количество компонентов файла заранее не определяется. • Максимальный размер файла, размещенного во внешней памяти, ограничивается лишь техническими возможностями вычислительной системы.

  15. 15 Когда нужно использовать файлы • Файлы полезны, если объем входных данных превосходит посильный при ручном вводе. (Крайним является случай, когда входные или выходные данные заведомо не могут поместиться в оперативной памяти.) • Файлы нужны, если приходится многократно вводить одну и ту же информацию, с минимальными изменениями или вовсе без изменений (например, при отладке программы). • Файлы необходимы, если нужно сохранять информацию о результатах работы программы, полученных при вводе различных входных данных (то есть: при поиске ошибок в программе).

  16. 16 Разновидности файлов Файлы Бинарные Текстовые Папки (каталоги) только текст без оформления,не содержат управляющих символов (с кодами < 32) могут содержать любые символы кодовой таблицы *.doc, *.exe, *.bmp, *.jpg, *.wav, *.mp3, *.avi, *.mpg ACSII (1 байт на символ) UNICODE (2 байта на символ) *.txt, *.log, *.htm, *.html возможно создавать, просматривать и редактировать "вручную" - в любом текстовом редакторе; при считывании данных не требуется заботиться об преобразовании информация записывается по байтам и потому не доступна для просмотра или редактирования в удобных для человека текстовых редакторах; зато такие файлы более компактны, чем текстовые

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

  18. 18 Логические устройства • Логические устройстваиспользуют для организации обмена информациейс основными устройствами ввода-вывода, такими как дисплей, клавиатураи т.п. • Логические устройства имеют стандартные имена, например: • CON – консоль: при выводе данных соответствует экрану, при вводе –клавиатуре; • PRN – принтер; • NUL – «пустое устройство», обычно заменяет устройство вывода отладочнойинформации после завершения отладки программы.

  19. 19 Логические устройства • В отличие от дисковых файлов с логическими устройствами операцииввода-вывода осуществляют только последовательно, так как • при выполненииопераций вывода данные передаются на устройствопокомпонентно, • апри выполнении операций ввода – покомпонентнозапрашиваются с него.

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

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

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

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

  24. 24 Описание типизированных файлов Файловая переменная типизированного файла описывается как: Туре <идентификаторфайловой переменной> =file оf <тип компонента>; где <тип компонента> - любой тип данных, кроме файлового. Типизированные файлы используют, когда обрабатывают хранящуюся вфайле последовательностькомпонентов одинаковой длины (чисел, записей и т.п.).

  25. 25 Описание текстовых файлов Файловая переменная текстового файла описывается как: Туре <идентификаторфайловой переменной> =text; Текстовые файлы используют для работы с текстами, представленнымив виде строк переменной длины.

  26. 26 Описание нетипизированных файлов Файловая переменная нетипизированного файла описывается как: Туре <идентификаторфайловой переменной> =file; Нетипизированные файлы применяют для организации скоростного обмена между внешней и оперативной памятью физическими записями указанной длины без преобразования и обработки.

  27. 27 Описание файлов Как и любая переменная языка Паскаль, файловая переменная может быть описана в инструкции объявления переменных. Например: Var F1: file of real; F2:file; F3: text; или с предварительным объявлением типа: Туре FF =file of integer; VarF1: FF;

  28. 28 Описание файлов При необходимости файловую переменную допускается передавать в подпрограмму через параметры. Однако следует помнить, что с этой целью можно использовать только параметры-переменные. Например: Туре FF = file of integer; Procedure Print (Var F1:FF);

  29. 29 • Работа с файлом включает: • инициализацию файловой переменной – установление связи файловойпеременной с файлом; • открытие файла– подготовку файла для выполнения операций ввода/вывода; • обработку компонентов файла – выполнение операций ввода-вывода; • закрытие файла(при повторном открытии файл закрывается автоматически).

  30. 30 Инициализация файловой переменной Связь между физическим устройством (дисководом или внешним устройством) и файловой переменной устанавливается специальной процедурой. Процедура Assign (Var f, st:string) инициализируетфайловую переменную f, связывая ее с файлом или логическим устройством, определенным строкой st. Если файл находится в текущем каталоге, то достаточно указать имя файла и его расширение. В противном случае необходимо указать полное имя файла

  31. 31 Инициализация файловой переменной Например: Туре F = text; Var f1, f2, f3: F; ... Assign (fl, 'T1.dat'); {связывание файловой переменной с файлом в текущем каталоге} Assign (f2, 'd:\iva\a.dat'): {связывание файловой переменной с файлом в указанном каталоге} Assign(f3, 'CON'); {связывание файловой переменной с консолью}

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

  33. 33 Открытие файла Процедура ReSet(Var f) открываетфайл, определенный файловойпеременной f для чтения. При выполнении этой процедуры указатель файлаустанавливается на первый компонент файла (физически первый блок записейсчитывается в буфер). Логическое устройство в этом случае готовится квыполнению операций ввода.

  34. 34 Открытие файла При открытии для чтения несуществующего файла регистрируетсяошибка выполнения, а функция lOResult типа Word возвращает значение, отличноеот 0 (см. далее описание функции). Отключив контроль операцийввода-вывода и используя функцию lOResult, можно организовать проверкуналичия файла с указанным именем на диске: Var f: file of char; Begin Assign(f, 'a.dat'); {инициализация файловой переменной} {$ I- } {отмена контроля ошибок ввода-вывода} ReSet (f); {открытие файла для чтения} {$ I+ } {включение контроля ошибок} if IOResult <>0 then WriteLn ('Файл не существует'); else WriteLn('Файл существует');

  35. 35 Открытие файла Процедура ReWrite(Var f) • открываетфайл, определенный файловойпеременной f, для записи. • При открытии для записи существующего файластарый файл уничтожается без предварительной проверки и выдачи предупреждения пользователю. • Если файла с таким именем не существовало, то он создается и подготавливается к записи (физически – очищается буфер). • Логическое устройство при этом подготавливается к приему информации.

  36. 36 Открытие файла Процедура AppEnd(Var f: text) открывает текстовый файл, определенный файловой переменной f, для добавления строк. При открытии для добавления строк указатель файла устанавливаетсяна конец файла, и, соответственно, все строки, выводимые в файл, дописываютсяк уже существующему файлу.

  37. 37 Открытие файла • Любой программе без объявления, инициализации файловой переменной и открытия доступны два файла со стандартными файловыми переменными: • INPUT– чтение со стандартного устройства ввода; • OUTPUT– вывод на стандартное устройство вывода. • Это текстовые файлы, используемые для выполнения элементарныхопераций ввода-вывода. • В операторах ввода-вывода файловые переменныеэтих файлов обычно не указывают. Остальные файлы становятсядоступными только после связывания файловой переменной с файломили логическим устройством и открытия файла. • Стандартным устройством ввода по умолчанию является клавиатура. • Стандартным устройством вывода – экрандисплея.

  38. 38 Обработка компонентов файла • На базе этих операций выполняют болеесложные операции: • создание файла – занесение в файл требуемых записей; • модификация файла – изменение всех или нескольких записей, добавлениеи удаление записей; • поиск нужной информации в файле. • Выполнение этих операций осуществляется по-своему для каждого типафайла (см. параграфы далее).

  39. 39 Закрытие файла Закрытие файла, открытого для записи или чтения, осуществляется процедурой Close(Var f) При этом вновь созданный файл регистрируется в каталоге. Поскольку любое обращение к диску осуществляется через буферную память, частьданных, выводимых в файл, может остаться в буфере. Процедура закрытияфайла обеспечивает вывод оставшихся компонентов из буфера в файл. Связьфайловой переменной с файлом при закрытии сохраняется, и при повторномиспользовании этого же файла процедуру Assign применять еще раз не требуется. !

  40. 40 Принцип сэндвича Переменная типа «текстовый файл»:var f: text; • I этап. открыть файл : • связать переменную fс файлом • открыть файл (сделать его активным, приготовить к работе) assign(f, 'qq.txt'); reset(f); {для чтения} rewrite(f); {для записи} II этап: работа с файлом read(f, n); { ввести значение n} write(f, n); { записать значение n} writeln(f, n);{c переходом на нов.строку } III этап: закрыть файл close(f);

  41. 41 Работа с файлами • Особенности: • имя файла упоминается только в команде assign, обращение к файлу идет через файловую переменную • файл, который открывается на чтение, должен существовать • если файл, который открывается на запись, существует, старое содержимое уничтожается • данные записываются в файл в текстовом виде • при завершении программы все файлы закрываются автоматически • после закрытия файла переменную fможно использовать еще раз для работы с другим файлом

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

  43. 43 Стандартные процедуры и функции обслуживания файлов Процедура ReName(Varf, name:string) осуществляет переименованиефайла, определенного файловой переменной f. Новое имя файла задаетсяпараметром name. Если в процессе работы программы требуется переименоватьфайл, открытый для чтения или записи, необходимо предварительнозакрыть этот файл. При совпадении нового имени файла с каким-либо ужесуществующим выдается сообщение об ошибке.

  44. 44 Стандартные процедуры и функции обслуживания файлов Процедура Erase(Var f) осуществляет удаление созданного или находящегося в процессе формирования файла. Перед уничтожением файлдолжен быть закрыт, так как разрешается удалять только закрытые файлы.

  45. 45 Стандартные процедуры и функции обслуживания файлов Функция EOF(Var f):boolean определяет конец файла. Как было отмеченовыше, размер файла при его создании не фиксируется. Поэтому впроцессе работы требуется проверка достижения конца файла. Функция принимаетзначение TRUE, если указатель стоит в конце файла (после последнейзаписи). При этом, если производится чтение, то это означает, что файлисчерпан, а если идет запись, то новая запись дописывается в конец файла. Функция принимает значение FALSE, если конец файла еще не достигнут.

  46. 46 Стандартные процедуры и функции обслуживания файлов Функция IOResult(Var f): word возвращает код правильности выполненияопераций ввода/вывода. Если ошибок не зафиксировано, то функциявозвращает 0. Информация об ошибках может быть получена и обработанав режиме компилятора {$ I-}– отключение контроля ошибок ввода/вывода.

  47. 47 Стандартные процедуры и функции обслуживания файлов Процедура Truncate(Var f) обрезает файл, оставляя компоненты дотого, на который ссылается указатель файла (кроме текстовых файлов).

  48. 48 Стандартные процедуры и функции обслуживания файлов Процедура ChDir(path:string) изменяет текущий каталог: назначаеттекущим каталог, указанный параметром path.

  49. 49 Стандартные процедуры и функции обслуживания файлов Процедура GetDir(drive:word, Var dir:string) • возвращает в переменную dirимя текущегокаталога на указанном устройстве, где устройство drive: • 0 – устройствопо умолчанию; • 1 – дискА; • 2 – дискВ и т.д.

  50. 50 Стандартные процедуры и функции обслуживания файлов Процедура MkDir(dir: string) создает новый каталог. Строка dir определяет путь и новое имя. Процедура RmDir(dir: string) удаляет каталог с именем, указаннымв переменной dir. Каталог должен быть пустым.

More Related