![](/user_photo/2706_HbeT2.jpg)
- •1 Файлы и потоки
- •2 Потоки данных и классы
- •2.1 Стандартные потоки
- •2.2 Базовые классы для работы с файлами и потоками
- •2.2.1 Основные классы ввода и вывода
- •2.2.2 Классы на базе FileSystemInfo
- •2.2.3 Классы для работы с потоками
- •2.2.4 Классы для работы с потоками текстовых символов
- •2.3 Перечисления
- •3 Работа со стандартными потоками
- •3.1 Стандартный поток ввода
- •3.2 Стандартный поток вывода
- •3.2.1 Стандартный поток вывода сообщений об ошибках
- •3.3 Программа StdStreams
- •4 Создание потоков, связанных с файлами
- •4.1 Открытие потока FileStream
- •4.2 Открытие потоков BinaryWriter и BinaryReader
- •4.3 Закрытие потоков
- •4.4 Запись двоичных данных
- •4.5 Чтение двоичных данных
- •4.6 Программа Binary
- •4.7 Работа с текстовыми файлами
- •5 Выбор кодировки символов
- •5.1 Кодовые страницы
- •5.2 Недостатки модели кодовых страниц
- •5.3 Стандарт UNICODE
- •5.3.1 Unicode в Microsoft Windows NT/2000/XP
- •5.3.2 UNICODE в Microsoft Windows 95
- •5.4 Кодировка текстовых потоков
- •5.5 Кодировка текстовых строк в двоичных потоках
- •6 Буферизация потоков
- •6.1 Буферизация двоичных потоков
- •6.2 Буферизация текстовых потоков
- •6.3 Принудительный сброс буферов
- •7 Потоки в оперативной памяти
- •7.1 Создание потока
- •7.2 Чтение данных
- •7.3 Запись данных
- •7.4 Доступ к буферу потока MemoryStream
- •7.5 Потоки на базе строк string
- •7.6 Потоки класса StringBuilder
- •8 Краткие выводы
- •8.1 Создание и чтение бинарного файла
- •8.2 Создание текстового файла
- •8.3 Добавление в текстовый файл
- •8.4 Чтение и запись в файл строк на русском языке
- •8.5 Посимвольное чтение текстового файла
- •8.6 Построчное чтение текстового файла
- •8.7 Чтение файла полностью
![](/html/2706/211/html_GKjIcfBniA.usgW/htmlconvd-43pxFj21x1.jpg)
или какой-либо другой, такую задачу решить невозможно. Чтобы как-то выйти из данной ситуации, приходится дополнительно применять специальные шрифты, что усложняет процесс оформления документа.
Заметим также, что в некоторых алфавитах слишком много символов, чтобы их коды можно было представить 1 байтом. В азиатских версиях Microsoft Windows применяются многобайтовые наборы символов, где для представления одного символа используется несколько байтов. Например, в японской, корейской и китайской версиях Microsoft Windows вы можете столкнуться с 2-байтовыми символами (набор символов double-byte character set, или DBCS), которые не следует путать с символами UNICODE.
5.3 Стандарт UNICODE
Стандарт UNICODE был предложен некоммерческой организацией UNICODE Consortium, образованной в 1991 г. В этом стандарте для представления каждого символа используется 16 бит, т. е. 2 байта, С помощью UNICODE можно закодировать очень большое количество символов из разных алфавитов, благодаря чему отпадает необходимость применять кодовые страницы. В документах UNICODE могут встречаться одновременно латинские и греческие символы, символы кириллицы и технические символы.
Значения кодов UNICODE разделены на несколько областей.
Область с кодами от 0000 до 007F применяется таким же образом, как и первая половина расширенного набора символов IBM, показанная на рис, 14.6. Далее идут области, в которых расположены греческие символы, символы кириллицы, символы пунктуации и технические символы, а также зарезервированные области. Для символов кириллицы, например, выделены коды в диапазоне от 0400 до 0451,
5.3.1 Unicode в Microsoft Windows NT/2000/XP
Ядро Microsoft Windows NT/2000/XP, графический интерфейс GDI этих ОС и файловая система NTFS реализованы с использованием UNICODE. Тем не менее приложения, запущенные в среде Microsoft Windows NT/2000/XP, могут работать и с одной кодовой страницей ANSI. Она выбираегся автоматически в зависимости от того, какая страна была выбрана пользователем при установке ОС.
Приложения, применяющие кодовую страницу ANSI, перед вызовом некоторых функций программного интерфейса Microsoft Windows NT выполняют преобразование кодировки в UNICODE с учетом номера кодовой страницы ANSI. Для того чтобы такое преобразование выполнялось без ошибок, пользователь должен правильно указать страну в приложении Regional Settings, пиктограмма которого находится в папке Control Panel. Это также необходимо и для правильной работы программ MS-DOS, запущенных под управлением Microsoft Windows NT/2000/XP и использующих кодовую страницу OEM.
Очень важно, что для работы с документами UNICODE требуются шрифты UNICODE. Один файл такого шрифта содержит несколько наборов символов, соответствующих разным областям кодов UNICODE. Разработчик шрифта может разместить в файле не все,
атолько некоторые наборы символов.
5.3.2UNICODE в Microsoft Windows 95
В отличие от Microsoft Windows NT/2000/XP, ядро и графический интерфейс Microsoft Windows 95 не используют UNICODE, а работают с кодовыми страницами. Тем не менее в Microsoft Windows 95 предусмотрена возможность динамического переключения наборов символов, а также клавиатурных раскладок. Это позволяет создавать документы, содержащие одновременно символы из разных наборов.