Доброе утро!
на Qt пишу впервые, поэтому прошу не кидать камнями.
задача проста - сделать вывод в одной из вкладок программы "сырого" файла в том виде, как все привыкли видеть в hex-редакторах.
Но у меня получился ужасно медленный и тупой код, да еще и с ошибками работающий...
Подскажите как сделать оптимально (П.С. в программе будут загружаться и большие файлы, как лучше их показывать?)
Спасибо!
void MainWindow::actionNew(const QString &path) {
QString fileName = path;
QString line;
unsigned int offset = 0, i = 0;
char *tmp = (char*)malloc(24);
widget.textRAW->clear();
widget.textSOURCE->clear();
if (fileName.isNull())
fileName = QFileDialog::getOpenFileName(this,
tr("Open File"), "", "AllFiles (*.*)");
if (!fileName.isEmpty()) {
QFile file(fileName);
if (file.open(QIODevice::ReadOnly)) {
while (!file.atEnd()) {
line.sprintf("0x%04x:%04x | ", offset >> 16, offset & 0x0000FFFF);
widget.textRAW->insertHtml(line);
file.read(tmp, 24);
i = 0;
while (i < 24) {
line.sprintf("%x%x ", tmp[i], tmp[i + 1]);
widget.textRAW->insertHtml(line);
i += 2;
}
line.sprintf(" | <br />");
widget.textRAW->insertHtml(line);
line.clear();
offset += 24;
}
}
}
fileName.clear();
free(tmp);
}