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

Задание для самостоятельного выполнения. Подключите пространство имён System.IO.

Читайте также:
  1. Алгоритм выполнения.
  2. Ваша позиция в начале выполнения задачи влияет на ее результат больше, чем что-либо другое
  3. Вводным заданием будет небольшой тест, который определит ваши отношения с едой.
  4. Возможность самостоятельного выполнения и спосо­бов действия
  5. Вопросник для активизации процесса самостоятельного анализа проблем.
  6. Время выполнения производственного задания подразделяется на подготовительно-заключительное, оперативное и время обслуживания рабочего места.
  7. ВРЕМЯ ОКОНЧАНИЯ ВЫПОЛНЕНИЯ ВЫЗОВА.

Подключите пространство имён System.IO.

Начнём с финальной части - реализуем алгоритм вывода дан­ных из массива в файл. Создадим обработчик события FormClosed для окна Form1 и подключим его к событию. Алгоритм сохране­ния будет описан в этом обработчике. В пособии [5] описан конст­руктор объектов класса FileStream. Воспользуемся им для созда­ния объекта-потока, который используем для записи в файл:

FileStream F;

F = new FileStream("Данные", FileMode.Create, FileAccess.Write);

Теперь создадим объект класса BinaryFormatter, который будем использовать как инструмент записи в поток:

BinaryFormatter P = new BinaryFormatter();

Объекты F (поток) и P (средство общения с потоком) будем ис­пользовать при работе с методом Serialize. Организуем цикл выво­да объектов из массива:

int i;

for (i = 0; i < КоличЭлем; i++)

{ P.Serialize(F, МДр]); }

F.Close();

Запустите программу, наберите три набора данных, а потом за­вершите работу программы. Проверьте: после завершения в той папке, где хранится готовая программа (exe-файл) образовался файл с именем Данные. Однако, после запуска программы список госномеров пуст - алгоритм считывания еще не готов.

Алгоритм считывания опишем в отдельном методе с именем Считывание, а оператор вызова этого метода запишем в обработ­чике события Load. Алгоритм метода немного сложнее предыду­щего. Файл может быть, а может и отсутствовать. Например, при первом запуске программы. Это придётся учесть при использовании конструктора потока. Из всех констант перечисления FileMode лучше всего подходит OpenOrCreate: в случае отсутствия файла будет создан пустой файл:

FileStream F = new FileStream("Данные", FileMode.

OpenOrCreate, FileAccess.Read);

Для общения с потоком создаём также объект P:

BinaryFormatter P = new BinaryFormatter();

Так как мы формируем массив данных на основе считываемого файла, то начальное значение счетчика элементов равно нулю:

КоличЭлем = 0;

Теперь надо организовать считывание. Файл содержит разные объекты, длина каждого - разная. Однако, у каждого из них есть своя позиция в файле: номер байта начала объекта (или, по друго­му, позиция объекта в потоке). Определить эту позицию можно свойством Position. Счёт позиций идёт с нуля (с нулевого байта файла). После считывания последнего объекта указатель позиции получит значение, равное длине файла. Этим и воспользуемся:

while (F.Position<F.Length)

{ МД[КоличЭлем] = (Авто) P.Deserialize(F); КоличЭлем++; }

Осталось закрыть поток и создать список госномеров:

F.Close(); СоздСписГос();

Запустите программу и проверьте работу.


Дата добавления: 2015-08-09; просмотров: 138 | Нарушение авторских прав


Читайте в этой же книге: Создание Windows-приложения | Организация класса Form1 | События, связанные с окном | Решение проблемы ввода данных | Доработка и устранение ошибок ввода | Типовые алгоритмы обработки массива | Задание для самостоятельного выполнения | ЧАСТЬ 1. Разработка алгоритма программы | ЧАСТЬ 2. Выделение функций | Разработка некоторых элементов класса данных |
<== предыдущая страница | следующая страница ==>
Задание для самостоятельного выполнения| Постановка задачи

mybiblioteka.su - 2015-2024 год. (0.006 сек.)