У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа ’8.html

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 29.12.2024

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

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

1) последовательного доступа( текстовые);

2) прямого (произвольного)  доступа( типизированные);

3) двоичные .

Последовательность действий при записи / чтении файлов любого доступа:

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

2) чтение / запись( зависит от типа файла)

3) закрыть файл

Закрыть файл любого доступа:

Close #<числовой идентификатор>    

Файлы  последовательного доступа (текстовые):

1) представляют последовательность символов, следовательно при открытии файла из текстового редактора (блокнот, wordpad, word)  можно видеть значения, которые туда записаны;

2) данные могут иметь некоторую структуру, организованную разделителями; это зависит от использования формата при выводе (вывод может быть форматным и бесформатным);

структурная единица такого файла –  обычно строка;

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

4) можно писать данные любых типов, при записи они преобразуются к строковому типу; читать можно данные любого типа, при чтении они из строкового преобразуются к нужному типу (если это возможно)

Команды для работы с файлами   последовательного доступа:

Открыть файл :

  •  открывает файл для чтения:

Open "<имяФайла>" For Input  [тип блокировки] As #<числовой идентификатор>

  •  открывает файл для записи:

Open "имяФайла" For Output  [тип блокировки] As #<числовой идентификатор>    

  •  открывает существующий файл для добавления   (то есть открывает файл для записи и ставит курсор в конец файла).

Open "имяФайла" For Append   [тип блокировки]  As #<числовой идентификатор>    

Тип блокировки:

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

1) shared – общий доступ

2) lock read – блокировка чтения

3) lock write – блокировка записи

4)  lock read write – блокировка чтения и записи

Записать данные в файл:

  •  бесформатный  вывод в файл:

Write #<числовой идентификатор>,  список вывода     

  •  ' форматный  вывод в файл, форматы basic используются в списке вывода; писать в файл  после установки указателя  можно только этой командой:

Print #<числовой идентификатор>,   список вывода      

Читать данные из файла:

  •  чтение из файла с безформатной записью данных:

Input #<числовой идентификатор>, <список переменных>    

  •  чтение из файла с форматной записью данных:

Line Input #<числовой идентификатор>,  <список переменных>    

Установить  указатель на заданную позицию:

Seek #<числовой идентификатор>, <номерСимвола>    -после этой команды  чтение будут производиться с позиции <номерСимвола> по строкам, запись затирает старый файл.

Пример1:

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

Результат (файл test1.txt после записи):

Рис 8.1 – файл test1.txt

Пример2:

Наберите текст макроса, который реализует считывание из файла test1.txt с использованием Input Line (считывается целыми строками) и Input (считывается по формату данных).

Для проверки конца файла использован EOF(<числовой идентификатор файла>). Если EOF(числовой идентификатор файла)=true, значит, достигнут конец файла.

Каждая прочитанная строка из файла test1.txt переписывается test2.txt

Рис.8.2 – Результаты считывания из файла test1.txt в файл test2.txt

Файлы прямого (произвольного доступа) доступа :

1) могут содержать данные только одного типа;

2) файл разбит на записи определённой длины, которая определяется типом записываемых данных; каждая запись имеет номер;

3) данные можно читать в любом порядке,

4) нельзя увидеть данные, открыв файл в текстовом редакторе, данные записаны в кодах; проверить что содержится в таком файле можно только из программы и только зная длину одной записи;

5)  в файл прямого доступа можно писать массив значений и диапазон ячеек сразу за одну операцию, но !!! длина массива (диапазона)  не должна превышать 32 167 байт .

6) чтобы записать новые данные в конец файла, надо открыть его для записи и установить указатель на последнюю запись.

7) одна команда открывает для чтения и записи., то есть можно читать из файла и записывать в файл  открытый одной командой ;

Команды для работы с файлами   прямого доступа:

Открыть файл  (и для чтения и для записи) :

Open "<имя файла>" For Random As #<числовой идентификатор> Len = Len(<имяПеременной>)

Записать данные в файл:

 Put #<числовой идентификатор>, <номерЗаписи>, <переменная> - Записывает переменную в файл в позицию с указанным номером. Начальная позиция -1.

Читать данные из файла:

Get #<числовой идентификатор>, <номерПозиции>, <имяПеременной> - читает  запись с указанной позиции в переменную.

Установить указатель на нужную запись в файле:

Seek #<числовой идентификатор>, номер записи ‘после этого запись будет производиться в конец файла.

Пример3: Создать файл, содержащий сведения о студентах (ФИО и дата рождения). Сохранить данные в файле «students». Файл будет из блоков по 33 байта (размер записи Student). Запись поблочная.

Первоначально следует определить тип пользователя в самом начале модуля:

Type Student

   b_d As Integer

   Name As String * 30

End Type

Пример4: Написать программу для считывания записей из файла «students»... Переписать данные их типизированного файла в текстовый о тех студентах, возраст которых больше 20 лет.

Особенности работы с файлами:

1)  необходимо соблюдать строгое соответствие между командами записи и чтения:

Запись

чтение

Write

Input

Print

Line input

Put

Get

2) номер после знака  «#»  в операторах открытия, чтения / записи и закрытия файла должен быть одинаковым при работе с одним файлом;

Двоичные файлы

1) просто последовательность байтов или блоков байтов;

2) одна команда открывает для чтения и записи.;

Команды для работы с файлами   прямого доступа:

Открыть файл  (и для чтения и для записи) :

Open "<имя файла>" For binary As #<числовой идентификатор>

Записать данные в файл:

 Put #<числовой идентификатор>, номерЗаписи, переменная  ' Записывает переменную в файл в позицию с указанным номером.

Читать данные из файла:

Get #<числовой идентификатор>, номерПозиции, имяПеременной  ' Читает  запись с указанной позиции в переменную.

Пример5: Запись в файл bin.txt значений от 0 до 255 через переменную типа integer (2 байта). Данные будут записаны просто как последовательность байтов, при открытии в блокноте, данные не будут иметь привычную для нас числовую форму.

Рис.8.3 – файл bin.txt в блокноте.

Варианты задания для самостоятельной работы

  1.  Создать типизированный файл, содержащий данные о  студентах группы: фамилия и инициалы (одно поле записи), год рождения, адрес (улица, дом, квартира), средний балл при поступлении. Переписать в текстовый и вывести в ячейки эл. таблицы данные о студентах со средним проходным баллом, большим 3,8;
  2.  Создать типизированный файл, содержащий данные о редких книгах, хранящихся с библиотеке: название, автор (фамилия и инициалы), год издания, место издания, инвентарный номер. Переписать в текстовый файл и вывести в ячейки эл. таблицы данные о книгах, изданных в Санкт-Петербурге;
  3.  Создать типизированный файл, содержащий данные о рейсах самолетов: номер рейса, пункт назначения, время в пути (дробное число), тип самолета, время отправления (два поля записи: часы и минуты). Переписать в текстовый файл и вывести в ячейки эл. таблицы данные о рейсах, вылетающих после десяти вечера, но до полуночи;
  4.  Создать типизированный файл, содержащий данные о автобусных маршрутах: пункт отправления, пункт назначения, время в пути (дробное число), время отправления (два поля записи: часы и минуты), количество остановок в пути. Переписать в текстовый файл и вывести в ячейки эл. таблицы данные о рейсах, делающих более трех остановок в пути;
  5.  Создать типизированный файл, содержащий данные о наименованиях продукции молокозавода, поступивших в продажу: название продукта, дата изготовления (три поля записи: год, месяц и число), срок хранения в днях, закупочная цена (дробное число). Переписать в текстовый файл и вывести в ячейки эл. таблицы данные о продуктах, выпущенный в июле 2004 года;
  6.  Создать типизированный файл, содержащий данные о фирмах: название фирмы, фамилия и инициалы владельца (одно поле), адрес (три поля: город, улица, дом), телефон. Переписать в текстовый файл и вывести в ячейки эл. таблицы данные о владельцах фирм, фамилия которых начинается с буквы М;
  7.  Создать типизированный файл, содержащий данные о автомашинах, находящихся в розыске: марка, цвет, год выпуска, номер, дата угона (три поля: число, месяц, год). Переписать в текстовый файл и вывести в ячейки эл. таблицы данные о машинах, угнанных в июле 2002 года;
  8.  Создать типизированный файл, содержащий данные о сотрудниках фирмы: фамилия, имя, отчество, год рождения, должность, год поступления на работу. Переписать в текстовый файл и вывести  в ячейки эл. таблицы данные о сотрудниках фирмы, устроившихся на работу в период с 1999 по 2002 год включительно;
  9.  Создать типизированный файл, содержащий данные о спортсменах-пловцах: фамилия и инициалы, пол, год рождения, рост, вес, лучшее время, за которое спортсмен проплывает 50 метров. Переписать в текстовый файл и вывести в ячейки эл. таблицы данные о спортсменах, рост которых больше 175 см;
  10.  Создать типизированный файл, содержащий данные о клиентах ателье: фамилия и инициалы, адрес (три поля: улица, дом, квартира), вид заказа, стоимость заказа. Переписать в текстовый файл и вывести в ячейки эл. таблицы данные о клиентах, проживающих на улице Международная.

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

  1.  С какими типами файлов позволяет работать BVA? Чем они отличаются?
  2.  Какие процедуры и функции для работы с файлами вы знаете?
  3.  Как записать данные в файл? Как прочесть данные из файла?
  4.  Может ли не совпадать тип файла и тип записываемых в него данных?




1. а участников подписчиков друзей лайков Время выполнения- расчёт за 1000 участников
2. Выбрав тип аппроксимации определяем схему заданного типа фильтра с минимальным числом индуктивных элемент.
3. Программа формированияу обучающихся универсальныхучебных действий Программа формирования универсаль
4. на тему- Прогнозирование использования земельных ресурсов в Хвалынском муниципальном районе Саратовской
5. правовое регулирование социального обслуживания граждан инвалидов в г
6. Учет оплаты труда и эффективности использования системы оплаты труда. Задачи и порядок проведения анализа показателей по труду
7. Схема вызова всех служб города Кургана
8. Тема- Методика розрахунку вартості статутного капіталу підприємства Мета- одержати практичні навички та вм
9. Ліквідація Запорізької Січі, та подальша доля запорізьких козаків.html
10. Тема 18. Новый курс Ф
11. Таглит Израиль по праву рождения
12. Кристаллы и их применение
13.  Судебноветеринарная экспертиза повреждений механического происхождения
14. Легка промисловість України i транспорт
15. то чемто leiden Сожалеть n D dem Der Krnke leidet n einer Vergiftung
16. грымзу но была одна девочка и не зря М
17. Вступ 2 Поняття та значення принципів трудового права
18. В каких границах относительная влажность воздуха в жилых помещениях считается нормальной1
19. Отказ в возбуждении уголовного дела
20. Механицизм в науке и философии