crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QTextEdit, тормозит
&-rey
  опции профиля:
сообщение 12.12.2009, 0:55
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 12.11.2009
Пользователь №: 1225

Спасибо сказали: 0 раз(а)




Репутация:   0  


нужно преобразовать информацию из двоичного вида в текстовое представление.
пробовал:
преобразовывать информацию по кусочкам, и выводить в QTextEdit - результата не дождался ...
преобразовывать информацию в Qstring а по окончании выводить в QTextEdit append(string) - 50 сек
вначале преобразуется в Qstring и добавляем в QtextStream, после заполнения обратно преобразуем к QString и выводим append(stream.readAll()) - 45 сек

аналогичная задача на C++ Builder 2007 и RichEdit выполняется за 2 сек, используя TMemoryStream.

возможно ли ускорить процесс, или норвежская медлительность не позволяет этого сделать ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
SABROG
  опции профиля:
сообщение 12.12.2009, 9:30
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Код и двоичную информацию в студию.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
&-rey
  опции профиля:
сообщение 12.12.2009, 11:12
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 12.11.2009
Пользователь №: 1225

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(SABROG @ 12.12.2009, 10:30) *
Код и двоичную информацию в студию.


    QFile *file = new QFile(filename);
    if (!file->open(QIODevice::ReadOnly)) return;
    unsigned long Length = file->size();
    char *ptr = (char*)file->map(0, Length, QFile::NoOptions);
    if (QFileInfo(filename).suffix().toLower() == "bin")
    {
        QTextStream Stream(new QString);
        for (unsigned long i = 0; i < Length; i++)
        {
            if (!(i&0x0F)) Stream << "\n"; // каждая строка по 16 символов
            if (!(i%16)) Stream << QString::number(i/16, 16).toUpper().rightJustified(5,'0'); // номер строки в Hex
            Stream << " " << QString::number((quint8)*ptr++, 16).toUpper().rightJustified(2,'0'); // значение байта в Hex
        }
        edit->append(Stream.readAll() + "\n"); // вывод в QTextEdit
    }
    delete file;

Прикрепленные файлы
Прикрепленный файл  test.rar.txt ( 669,67 килобайт ) Кол-во скачиваний: 137
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- &-rey   QTextEdit   12.12.2009, 0:55
- - SABROG   Код и двоичную информацию в студию.   12.12.2009, 9:30
|- - &-rey   Цитата(SABROG @ 12.12.2009, 10:30) Код и ...   12.12.2009, 11:12
|- - &-rey   скачал версию 4.6.0 тот же код выполняется за 2.5 ...   12.12.2009, 13:26
- - SABROG   С QPlainTextEdit всё работает за 10 секунд на моей...   12.12.2009, 13:59
|- - &-rey   Цитата(SABROG @ 12.12.2009, 14:59) С QPla...   12.12.2009, 14:20
|- - BRE   Попробуй вместо QTextStream Stream(new QString...   12.12.2009, 14:47
|- - SABROG   Цитата(BRE @ 12.12.2009, 14:26) Попробуй ...   12.12.2009, 14:50
||- - BRE   Цитата(SABROG @ 12.12.2009, 14:50) А заче...   12.12.2009, 14:55
|- - &-rey   Цитата(Litkevich Yuriy @ 12.12.2009, 14:2...   12.12.2009, 22:28
- - Litkevich Yuriy   Цитата(&-rey @ 12.12.2009, 17:20...   12.12.2009, 14:25
- - SABROG   Я склоняюсь к тому, что тормозит QTextDocument, а ...   12.12.2009, 14:26
- - SABROG   Цитата(BRE @ 12.12.2009, 14:55) А зачем и...   12.12.2009, 15:18
|- - BRE   Цитата(SABROG @ 12.12.2009, 15:18) Ладно,...   12.12.2009, 17:42
- - Litkevich Yuriy   Программа в помощь, и тамже можно почитать всю тем...   12.12.2009, 16:20
- - SABROG   Цитата(&-rey @ 12.12.2009, 22:28...   12.12.2009, 23:04
- - Litkevich Yuriy   Цитата(&-rey @ 13.12.2009, 1:28)...   13.12.2009, 4:42
- - &-rey   Цитата(Litkevich Yuriy @ 13.12.2009, 5:42...   13.12.2009, 19:40


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 23:10