Главная » C# » Преобразование текстового потока в двоичный в Visual C# (Sharp)

0

Процесс преобразования текстового потока в двоичный поток включает разбиение текстового потока на части, создание экземпляра Ticket, присвоение значений членам данных экземпляра и передачу экземпляра двоичному потоку. Далее продится исходный код для выполнения всех этих шагов. (Для правильной работы кода в Text2Binary необходимо создать ссылку на LottoLibrary.)

using System.10;

using  System.Runtime.Serialization.Formatters.Binary;

namespace Text2Binary {

class LottoTicketProcessor : IText2BinaryProcessor { public void Process(TextReader reader, Stream writer) {

StringBuilder retval = new StringBuilder();

while (reader.Peek() != -1) {

string lineOfText = reader.ReadLineO;

string[] splitUpText = lineOfText.Split(new char[] {”}); string[] dateSplit = splitUpText[0].Split(‘.’);

LottoLibrary.Ticket ticket = new LottoLibrary.Ticket(

new DateTime(int.Parse(dateSplit[0]),

int.Parse(dateSplit[1]), int.Parse(dateSpli t[2])),

new int[] {  int.Parse(splitUpText[1]),

int.Parse(splitUpText[2]), int.Parse(splitUpText[3]), int. Parse (spl i tUpText [ 4 ]) , int.Parse(splitUpText[5]), int.Parse(spli tUpText[6]), int.Parse(splitUpText[7])};

BinaryFormatter formatter = new BinaryFormatter();

formatter.Serialize(writer, ticket);

}

}

}

}

Код  считывает  текстовый  поток  и  разбивает  его  сначала  на  отдельные  строки, а  потом  каждую  строку  на  составляющие  поля.  Отдельные  поля  преобразуются в числа с помощью метода int.Parse(). Данный процесс разбивки и преобразовия называется маршаллингом данных (data marshalling). Маршаллинг означает преобразование типа из одной среды в другую.

Маршаллингом текста управляем мы, а  маршаллингом  двоичных  данных, которая также осуществляется, но -скрыто  от  нас,  управляет  .NET.  Маршаинг объекта Ticket в двоичный поток осуществляется классом System.Runtime.Serialization.Formatters.Binary.BinaryFormatter. Атрибу т Serializable указывает данному классу объект, который необходимо маршаллировать в двоичный поток. По сути, преобразование текстового потока в двоиый означает маршаллинг текстового билета в билет в формате .NET,  который потом маршаллизируется в билет в двоичном  формате.  В  каждой  из  этих трех сред представление билета является управляемым.

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

По теме:

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