Главная » C# » Хранение данных в Visual C# (Sharp)

0

Создаваемым вами программам, вероятно, будет необходимо считывать и/или сранять данные на каком-либо устройстве хранения. Этим устройством хранения может быть жесткий диск, диск USB или даже сетевой диск. Основной принцип одинаков независимо от типа устройства хранения — информация из памяти перещается в другое определенное место, откуда ее можно извлечь для последующей обработки.

Эта концепция называется персистентностъю (persistence). В большей мере коепция персистентности относится к процессу создания объектов и последующего их сохранения на жесткий диск. Но чтение и сохранение объекта состоит не только в считывании и записывании данных на жесткий диск, хотя часто именно это явлтся  результатом.  Суть  считывания  и  записи  данных  на  жестких  диск  состоит в считывании и записи в потоки данных (data streams). Процесс считывания и запи данных в потоки и является предметом рассмотрения данной главы.

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

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

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

Такая программа, как реализовано в примере, будет состоять из следующих трех приложений:

• TextProcessor — считывает номера из неупорядоченного файла, предваритело упорядочив его;

• Binary2Text — преобразует двоичный поток в текст;

• Text2Binary — преобразует текстовый поток в двоичный. Приложения содержатся в следующих пяти проектах:

• Binary2Text — консольная программа, которая преобразует двоичный поток данных лотерейных билетов в текстовый поток;

• LottoLibrary — библиотека класса, содержащая определение типа Ticket, корый представляет лотерейный билет в памяти;

• Readerwriter— библиотека класса, содержащая инфраструктурный код для обработки потоков и аргументов командной строки;

• Text2Binary — консольная программа, которая преобразует текстовый поток данных лотерейных билетов в двоичный поток;

• TextProcessor — консольное приложение для чтения и записи в текстовый файл. Это приложение будет примером написания  консольных  приложений. Оно содержит ссылку на библиотеку класса Readerwriter.

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии