Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Срочно нужен совет по .NET (richTextBox)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Vector
Гость





СообщениеДобавлено: Пт Авг 27 2004 12:10    Заголовок сообщения: Срочно нужен совет по .NET (richTextBox) Ответить с цитатой

Проблема такая...
Мне требуется построить 16-ричный dump exe файла. Вот я его считал в массив Byte[n], где n у меня получилось приблизительно 27 000 000.
И вот здесь то и начинаются проблемы.
Во-первых Byte[3] == 0, что означает конец строки, поэтому Convert::ToString(b) мне выдаст строчку из трех символов. Пробовал простой перебор всех значений b на предмет существования символа 0. Сами понимаете, сколько времени это занимает. Отсюда вопрос: существует ли какой-нить быстрый алгоритм построения 16-ричного dump-а?
Во-вторых загнав всю эту информацию в richTextBox, который располагается на форме с изменяющимися размерами, я жду в районе нескольких минут пока форма меняет ширину. Уж что этот компонент пытается там делать, не знаю, но факт налицо. Поэтому вопрос второй собственно и заключается в том, как решить эту проблему.
Использовать, видимо, нужно именно RichTextBox, поскольку мне придется менять цвета отдельных блоков текста.

Заранее благодарен за вразумительные ответы.
Вернуться к началу
dAnIK SeNT



Зарегистрирован: 11.06.2004
Сообщения: 43
Откуда: Казань

СообщениеДобавлено: Пт Авг 27 2004 13:37    Заголовок сообщения: Ответить с цитатой

2Vector
Я не понял - ты 16-ричный дамп хочешь получить?
Тогда зачем перефигачивать массив в строку?
Тебе надо побайтово просмотреть массив, преобразовав каждый элемент массива в два символа - две шестнадцатеричных цифры.
Встретил символ с кодом 0 - получил на выходе строку "00"
Или я чего-то не понял?
_________________
Cисадмин - образ жизни. Программист - диагноз...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Гость






СообщениеДобавлено: Пт Авг 27 2004 19:08    Заголовок сообщения: Ответить с цитатой

Дело в том, что мне этот Dump еще надо в RichTextBox-е показать.
В общем я вот так делаю

FileStream* fs = File::Open(OpenFileDlg->FileName, FileMode::Open);
Byte b[] = new Byte[fs->Length];
int ReadLen = fs->Read(b,0,fs->Length);
int Row = 0;
while (Row < ReadLen/16)
{
RichTextBoxDump->AppendText(Convert::ToString(Row, 16));
AppendText(" ");
for (int i=0; i<16; i++)
{
RichTextBoxDump->AppendText(Convert::ToString(b[Row*16+i], 16));
RichTextBoxDump->AppendText(" ");
if (i%7==0) RichTextBoxDump->AppendText(" ");
}
RichTextBoxDump->AppendText("\n");
Row++;
}

Так вот я о том, что это очень долго работает при больших
ReadLen. Я начинающий, поэтому думаю, что делаю определенно что то не так
Вернуться к началу
GeX



Зарегистрирован: 03.01.2004
Сообщения: 60
Откуда: Россия, Иркутск

СообщениеДобавлено: Пн Авг 30 2004 05:13    Заголовок сообщения: Ответить с цитатой

Однозначно.....ошибка или в коде или в генах Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...