Чтение Char из бинарного файла по смещению

Astyxys

New member
13.07.2010
4
0
#1
Задача:

Используя MFC, вывести на экран таблицу строк.

Что имеем:

Есть два бинарных файла. В первом массив int, во втором массив char, разделенный "\0", при этом кодировка UTF-8. Int-ы показывают смещение, от начала второго файла, первого символа в строке.

Как реализовал я:

1) Читаю первый файл в массив int
2) Читаю второй файл в массив char
3) В цикле заполняю структуру GV_ITEM (для вывода на экран использую CGridCtrl)
4) Перевожу кодировку на "человеческий" (MultibyteToWidechar)
5) Вывожу на экран

Проблема:

При размере файла с массивом char 40 МБ и выше(а таких большенство) вывод на экран сильно тормозит. Около 2-3 минут загрузка происходит.

Вопрос:

Как ускорить вывод на экран?

Мои варианты:

1) Разбить на отдельные процессы
а. пункты 3 и 4
б. пункт 5

2) Сделать свой класс(наследник от CGridCtrl) и читать сразу в GV_ITEM

Заранее спасибо за ответы, извинте если сумбурно...
 

grigsoft

Well-known member
15.11.2005
735
0
#2
CGridCtrl - это с Codeproject который? Там вроде есть режим
VirtualMode когда GV_ITEM создавать не надо, а данные отдаются прямо
во время отрисовки. Должно помочь.
 

grigsoft

Well-known member
15.11.2005
735
0
#4
Учитывая что врядли 40МБ+ у вас сразу на экран влазит, стоит грузить часть, остальное подгружать по необходимости\в отдельном потоке