Russian Qt Forum
Ноябрь 28, 2024, 07:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Прочитать DBF  (Прочитано 14914 раз)
Astrologer
Гость
« : Сентябрь 08, 2010, 12:18 »

Все доброго дня! Передо мной стоит задача считать DBF файл (в будущем огромное их количество) и, скажем, отобразить его на форме. Возможно ли использование QSqlDatabase? Огромное спасибо за любой пример.
Записан
crossly
Гость
« Ответ #1 : Сентябрь 08, 2010, 12:33 »

+ odbc

ну или http://qt-apps.org/content/show.php/qtDbf?content=109162
а вообще вопрос по моему уже поднимался .... поищи..
« Последнее редактирование: Сентябрь 08, 2010, 12:35 от crossly » Записан
Astrologer
Гость
« Ответ #2 : Сентябрь 08, 2010, 12:35 »

 Улыбающийся что бы это могло значить?
Записан
crossly
Гость
« Ответ #3 : Сентябрь 08, 2010, 12:36 »

в каком месте не понятно??
Записан
Astrologer
Гость
« Ответ #4 : Сентябрь 08, 2010, 12:53 »

Спасибо огромное за ссылку. Как раз то, что нужно. Только надо будет сделать чтобы русскую кодировку понимала.
« Последнее редактирование: Сентябрь 08, 2010, 14:04 от Astrologer » Записан
Astrologer
Гость
« Ответ #5 : Сентябрь 08, 2010, 14:05 »

Почему то не получается получить русскую кодировку. Кто нибудь работал с данной библиотекой?
Код:
QString tempString;
QByteArray recordData;
tempString = recordData.mid(fieldsItem->fieldOffset,fieldsItem->fieldSize);

Такое преобразование происходит.
« Последнее редактирование: Сентябрь 08, 2010, 14:08 от Astrologer » Записан
crossly
Гость
« Ответ #6 : Сентябрь 08, 2010, 14:08 »

нет... а в какой кодировке БД??
Записан
Astrologer
Гость
« Ответ #7 : Сентябрь 08, 2010, 14:09 »

760 или 866. Точнее сказать пока не могу.
Записан
Astrologer
Гость
« Ответ #8 : Сентябрь 08, 2010, 14:22 »

Код:
QTextCodec *codec = QTextCodec::codecForName("IBM 866");
QString str = codec->toUnicode(recordData.mid(fieldsItem->fieldOffset,fieldsItem->fieldSize));

Так конвертируется.
Записан
Troglodit
Гость
« Ответ #9 : Сентябрь 08, 2010, 22:11 »

Достаточно выбрать походящий драйвер DBF ODBC.
Записан
arial
Гость
« Ответ #10 : Сентябрь 09, 2010, 11:45 »

Зная формат dbf-файла, можно его прочитать. По крайней мере я в своё время так и сделал.
Записан
Astrologer
Гость
« Ответ #11 : Сентябрь 09, 2010, 14:21 »

Какая то ерунда с кодировкой. Даже QString::fromLocal8Bit("Трава") не помогает. Возвращает - Непонимающий??.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #12 : Сентябрь 09, 2010, 15:02 »

Кодек сначала установить нужно. Куда выводишь: консоль или гуи? Почитай раздел Интернационализация, там уже много раз говорилось как правильно сделать.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Astrologer
Гость
« Ответ #13 : Сентябрь 09, 2010, 16:21 »

Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("Windows-1251"));
QString trava_str = tr("Трава");

Не пашет и так.
Записан
Astrologer
Гость
« Ответ #14 : Сентябрь 09, 2010, 16:30 »

Какая то ерунда с кодировкой. Даже QString::fromLocal8Bit("Трава") не помогает. Возвращает - Непонимающий??.

Если открываю новый проект - то безо всяких кодеков такое преобразование проходит.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 23.