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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Прочитать DBF  (Прочитано 15381 раз)
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

Сообщений: 5877


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


Просмотр профиля 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.021 секунд. Запросов: 22.