Форум Кургана и Курганской области и наших друзей

Зима. Форум Кургана и Курганской области и наших друзей
03 Июль 2020, 22:53:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Программная конвертация кодировки dbf таблицы из DOS в Windows  (Прочитано 5756 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ы555
Титулярный советник
*****

Карма: 158
Offline Offline

Пол: Мужской
Сообщений: 859



Награды
« : 23 Апрель 2007, 18:43:04 »

Проблем: имеется таблица, кодировка dos, при открытии таблици и передаче в DBGrid - кирилица отображается кракозябрами.
Решение перегонять в нужную кодировку ДБФвьюверами - скучно и не реально.
Есть решения на дельфи7 ?
Записан
sharpey
BSD'ун
Титулярный советник
*****

Карма: 126
Offline Offline

Пол: Мужской
Сообщений: 686



Награды
« Ответ #1 : 23 Апрель 2007, 20:28:42 »

Очень даже может быть, что в самой DBF'ке установлена кодовая страница какая-нибудь отличная от кириллицы CP866 (например, японская). Правится в DBDesktop (вроде так называется та программа в пятой версии Delphi). А после всё пучком у меня заработало. Заодно проверить настройки надо драйвера БД формата DBF в BDE и указать принудительно CP866.
Записан
kash
Корабельный секретарь
***

Карма: 21
Offline Offline

Пол: Мужской
Сообщений: 121


WWW Награды
« Ответ #2 : 24 Апрель 2007, 01:10:53 »

dbgrid1.Font.Charset := OEM_CHARSET;
попробуй написать вот так перед тем как загружать данные в dbgrid
Записан
Ы555
Титулярный советник
*****

Карма: 158
Offline Offline

Пол: Мужской
Сообщений: 859



Награды
« Ответ #3 : 24 Апрель 2007, 14:09:59 »

Работает.
Спасибо.
Записан
KuZZZmich
Корабельный секретарь
***

Карма: -9
Offline Offline

Пол: Мужской
Сообщений: 123

"Красота губит." © Кинг Конг


WWW Награды
« Ответ #4 : 14 Май 2007, 23:58:15 »


...
var MyStringList: TStringList;
begin
  //Перед (!) открытием dbf таблицы
  //программно изменить LangDriver для таблиц dBase
  MyStringList := TStringList.Create;
  MyStringList.Add('LANGDRIVER=db866ru0');
  MyStringList.Add('LEVEL=4');
  Session.ModifyDriver('DBASE', MyStringList);
  MyStringList.Free; 
end;
Записан

Чем дешевле девушка, тем меньше она ломается. © Н.Фоменко "Русское радио"
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC
rss | wap
Valid XHTML 1.0! Valid CSS!