Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Чтение файлов - двоичных и текстовых


Автор: Arks 24.4.2007, 21:44
Извиняюсь, если повторяюсь с темой. Смотрел, вроде бы не нашёл на форуме ничего подходящего мне.

Вопрос такой:
Стало интересно каким образом под .NET быстрее файлы открывать будет (C, C++ streams, классы .NET), заодно и с FileStream, SringReader и прочими разобраться.

Допустим надо читать смешанный файл. Там есть строки текста, например:
...
param 10. Its subparams: 11 12 3.333333e+000f. That's all.
param 11. Its subparams: 12 13 3.666667e+000f. That's all.
...

Надо допустим выдрать слово "param" и числа (3 целых и одно вещественное, как можно заметить).
Как это наиболее эффективно сделать? Неужели нужно использовать StringReader, т.е. читать построчно и потом выполнять разбор строки?

Я пробовал использовать BinaryReader, читать определенное количество байт для текста, учитывая, что у меня символы занимают по 1 байту; и соответсвенно использовать нужные методы для чисел. Однако выводимый результат был явно не верен.
Каким образом BinaryReader считывает тот же Int32 - как строго фиксированное число байтов? Как мне тогда организовывать бинарные файлы для работы с ними?

Автор: mr.DUDA 25.4.2007, 11:06
Цитата(Arks @  24.4.2007,  21:44 Найти цитируемый пост)
Каким образом BinaryReader считывает тот же Int32 - как строго фиксированное число байтов?

Да.

Цитата(Arks @  24.4.2007,  21:44 Найти цитируемый пост)
Надо допустим выдрать слово "param" и числа (3 целых и одно вещественное, как можно заметить).Как это наиболее эффективно сделать? Неужели нужно использовать StringReader, т.е. читать построчно и потом выполнять разбор строки?

По-другому никак.

Автор: iddqd 25.4.2007, 14:49
RegExp'ы тут очень помогут как мне кажется.

Автор: Arks 25.4.2007, 16:02
Спасибо, что подтвердили мои догадки smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)