Читаем C# 4.0 полное руководство - 2011 полностью

str = str + "\r\n"; // добавить новую строку fstr_out.Write(str);

}

} while(str != "стоп");

} catch(IOException exc) {

Console.WriteLine("Ошибка ввода-вывода:\n" + exc.Message);

} finally {

if(fstr_out != null) fstr_out.Close ;

}

}

}

Применение класса StreamReader

Длясоздания символьного потока ввода достаточно заключить байтовый поток в оболочку классаStreamReader.В классеStreamReaderопределено несколько конструкторов. Ниже приведен наиболее часто используемый конструктор:

StreamReader(Streamпоток)

гдепотокобозначает имя открытого потока. Этот конструктор генерирует исключениеArgumentNullException,еслипотококазывается пустым, а также исключениеArgumentException,еслипотокне открыт для ввода. После своего создания объект классаStreamReaderвыполняет автоматическое преобразование байтов в символы. По завершении ввода из потока типаStreamReaderего нужно закрыть. При этом закрывается и базовый поток.

В приведенном ниже примере создается простая сервисная программа ввода с диска и вывода на экран содержимого текстового файлаtest. txt.Она служит дополнением к представленной ранее сервисной программе ввода с клавиатуры и вывода на диск.

// Простая сервисная программа ввода с диска и вывода на экран,

// демонстрирующая применение класса StreamReader.

using System; using System.10;

class DtoS {

static void Main {

FileStream fin; string s;

try {

fin = new FileStream("test.txt", FileMode.Open);

catch(IOException exc) {

Console.WriteLine("Ошибка открытия файла:\п" + exc.Message); return;

}

StreamReader fstr_in = new StreamReader(fin); try {

while((s = fstr_in.ReadLine)    !=    null)    {

Console.WriteLine(s);

}

} catch(IOException exc) {

Console.WriteLine("Ошибка ввода-вывода:\n" + exc.Message);

} finally {

fstr_in.Close;

}

}

}

Обратите внимание на то, как в этой программе определяется конец файла. Когда методReadLine возвращает пустую ссылку, это означает, что достигнут конец файла. Такой способ вполне работоспособен, но в классеStreamReaderпредоставляется еще одно средство для обнаружения конца потока —EndOfStream.Это доступное для чтения свойство имеет логическое значениеtrue,когда достигается конец потока, в противном случае — логическое значениеfalse.Следовательно, свойствоEndOf Streamможно использовать для отслеживания конца файла. В качестве примера ниже представлен другой способ организации циклаwhileдля чтения из файла.

while(!fstr_in.EndOfStream) { s = fstr_in.ReadLine;

Console.WriteLine(s);

}

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных