Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
файлы лекция (основная).pdf
Скачиваний:
31
Добавлен:
15.04.2015
Размер:
938.85 Кб
Скачать

Вы можете также открыть поток и привязать его к файлу с помощью конструктора класса StreamReader;

StreamReader sr = new StreamReader(testFile);

Далее наша программа считывает текстовые строки из файла, вызывая в цикле метод ReadLine:

while(true)

{

String str = sr.ReadLine();

if (str == null) break; Console.WriteLine(str);

}

Этот метод возвращает прочитанную строку или значение null при достижении конца файла.

После завершения работы с потоком StreamReader его следует закрыть методом Close:

sr.Close();

Таким образом, наша программа записывает две строки в файл, а затем читает их оттуда и отображает на консоли:

Каждый охотник желает знать, где сидит фазан! Число "Пи" равно примерно 3,1415926. Файл успешно создан

5 Выбор кодировки символов

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

Те из вас, кому, как и авторам этой книги, посчастливилось работать на «больших» компьютерах серии ЕС (аналоги компьютеров IBM 360/370), знакомы с так называемой кодировкой EBCDIC, В ней представлялись латинские символы, символы кириллицы, а также знаки пунктуации и управляющие знаки.

Что же касается современных персональных компьютеров, то для представления текстовых символов различных алфавитов в них используются кодовые страницы (Code Pages) и кодировка UNICODE. Расскажем об этом подробнее.

5.1 Кодовые страницы

До появления ОС Microsoft Windows 95 и Microsoft Windows широко применялась так называемая модель кодовых страниц. В этой модели каждому символу ставилось в соответствие число в диапазоне от 0 до 255. Таким образом, для представления одного символа использовался 1 байт.

Каким способом устанавливается соответствие?

Для ОС MS-DOS было известно по крайней мере несколько таких способов, основанных на применении различных таблиц кодировок: кодировка ASCII, основная и

альтернативная, а также некоторые другие.

Компания Microsoft стандартизовала таблицы кодировок, назвав их кодовыми страницами и присвоив каждой странице свой номер. Первые версии MS-DOS работали с расширенным набором символов IBM, в котором отсутствовали символы кириллицы (рис. 6).

Рисунок 6: Расширенный набор символов IBM

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

В ОС MS-DOS версии 4.01 впервые появилась стандартная кодовая страница с номером 866, содержащая символы кириллицы (рис. 7). С тех пор российские пользователи компьютеров не могут пожаловаться на то, что компания Microsoft обходит их своим вниманием, создавая новые ОС и прикладные программы.

Рисунок 7: Набор символов кодовой страницы 866

Заметим, что для представления символов кириллицы в ОС IBM OS/2 применяется кодировка, соответствующая кодовой странице 866. Пользователи ОС Unix и Linux отдают предпочтение кодировке KOI-8, а пользователи компьютеров Apple Macintosh — своей собственной кодировке, несовместимой ни с одной из перечисленных выше. В Интернете есть немало утилит, предназначенных для перекодирования текстовых файлов, подготовленных в самых разных кодировках.

Когда появилась ОС Microsoft Windows 3.1, в ней также были предусмотрены кодовые страницы. К сожалению, кодовые страницы ANSI Microsoft Windows 3.1 были лишены символов кириллицы (рис. 8).

Рисунок 8: Кодовая страница ANSI без символов кириллицы

Для ОС Microsoft Windows 3.1 было создано несколько популярных программ русификации, устанавливающих шрифты с символами кириллицы и переключатели клавиатурных раскладок. При этом применялась кодировка ANSI, показанная на рис. 9.

Рисунок 9: Кодовая страница ANSI с символами кириллицы

Программы MS-DOS, запущенные под управлением ОС Microsoft Windows, пользовались кодовыми страницами DOS (рис. 6 и 7), которые получили название страниц оригинальных производителей оборудования — OEM (Original Equipment Manufacturer).

С появлением русской версии ОС Microsoft Windows 3.1 эта кодировка стала стандартной. Соответствующая кодовая страница получила номер 1251.

К этому моменту было разработано огромное количество шрифтов True Туре с символами кириллицы, коды которых находились в диапазоне от СО до FF. Именно эти шрифты и стали популярны, распространяясь в основном пиратскими способами вместе с программами русификации Microsoft Windows 3.1 или по отдельности.

5.2 Недостатки модели кодовых страниц

Хотя на первый взгляд может показаться, что 1 байта вполне достаточно для представления всех символов, это не всегда так.

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