Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для vialet
57 / 57 / 11
Регистрация: 04.03.2010
Сообщений: 244

Бинарный файл долго читается

31.01.2013, 08:11. Показов 1240. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане! очень нуждаюсь в помощи!!!
есть бинарный файл. Читаю его вот так.
C#
1
2
3
4
5
6
7
8
9
10
11
12
                Stopwatch sw = new Stopwatch();
                sw.Start();
                BinaryReader br = new BinaryReader(new FileStream("Multipath_short.bin", FileMode.Open, FileAccess.Read), new ASCIIEncoding()); 
                sbyte buf = new sbyte();
                int readBytes = 0; 
                do
                {
                    buf = br.ReadSByte();
                    readBytes += 1;
                }
                while (br.BaseStream.Length > readBytes); //
                sw.Stop();
считывается все правильно. время чтения порядка 140 секунд
в матлабе этот файл считывается за 2,35 секунд. Вот код в матлабе.
Matlab M
1
2
fid = fopen('Multipath_short.bin');
a = fread(fid,'int8');
Подскажите, как сделать, чтобы в c# файл читался быстрее.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2013, 08:11
Ответы с готовыми решениями:

Не читается и не записывается в файл.
Столкнулся с вот такой вот проблемкой... Использую следующий класс для записи/чтения INI файла: public class IniFile { ...

Rijndael - после расшифровки не читается файл
после кодирования и перекодирования файл не читается. Прошу помощи в поиске ошибки. Код программы using System; using...

Dictionary serialization: нужно провести сереализацию в бинарный файл и xml файл
Помогите сереализоровать словарь вида: public class BankManager : Dictionary<String, Bank> {} Где Bank - сереализируемый объект....

4
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
31.01.2013, 10:01
У вас на каждый байт отдельно вызывается операция чтения. Конечно, будет медленно.
Надо подготовить буфер памяти (или несколько, если файл очень большой) и туда один раз считать.
Такими штуками в C# не занимался, так что конкретный рецепт не дам, но, думаю, принцип ясен.
Погуглите "C# read file to byte array".
1
146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
31.01.2013, 11:01
C#
1
2
3
            BinaryReader br = new BinaryReader(File.OpenRead("Multipath_short.bin")); //поток открываем
            byte[] buff = new byte[(int)br.BaseStream.Length]; //создаем массив байт размером равным длине файла
            br.Read(buff, 0, (int)br.BaseStream.Length); // читаем полностью файл
1
 Аватар для vialet
57 / 57 / 11
Регистрация: 04.03.2010
Сообщений: 244
31.01.2013, 12:43  [ТС]
Цитата Сообщение от KeBJIaP Посмотреть сообщение
br.Read(buff, 0, (int)br.BaseStream.Length); // читаем полностью файл
а не подскажите как потом конвертировать в sbyte без использования цикла, а то работа все равно замедляется. заранее балгодарен
0
146 / 143 / 32
Регистрация: 21.01.2012
Сообщений: 545
31.01.2013, 13:34
байт в сбайт преобразуется с потерей данных
C#
1
2
byte b = 9999;
sbyte s = (sbyte)b;
работа из-за одног опрохода массива вряд ли замедлится заметно
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.01.2013, 13:34
Помогаю со студенческими работами здесь

Бинарный файл
День добрый всем) Как можно определить количество записей в бинарном файле?

Бинарный файл
Здравствуйте! У меня вопрос: У меня есть файл в виде массива байт (например файл mp3 или картинка не важно что) закодированный в base64....

Запись структуры в бинарный файл
Привет всем, тут такая проблема, мне нужно записать в бинарный файл структуру, а потом считать её. Например: у меня программа...

Как совершить дозапись в бинарный файл
Имеется бинарный файл как в этот файл дописать данные из другого бинарника не заменяя?

Чтение программой себя же как бинарный файл
Возникла необходимость прочесть некоторые байты запущенной программной с помощью нее же. Читаю так: String path =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru