Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2008, 06:33   #1
djinni
 
Регистрация: 29.01.2008
Сообщений: 3
По умолчанию Проблема кодировки DBF из foxpro

Подскажите как работать с данными в dbf сделанными в foxpro 2
Как бысто перекодировать кодовую страницу и поменять кодировку данных.
Как отобразить данные в dos кодировке.
djinni вне форума Ответить с цитированием
Старый 29.01.2008, 07:05   #2
Aristarh Dark
Форумчанин
 
Регистрация: 07.08.2007
Сообщений: 154
По умолчанию

Смотри 29 байт от начала файла dbf, должно быть значение 0x26 для 866 кодовой страницы.
Aristarh Dark вне форума Ответить с цитированием
Старый 29.01.2008, 08:09   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как бысто перекодировать кодовую страницу и поменять кодировку данных.
Если у тебя есть Visual FoxPro то воспользуйся утилитой cpzero.app из его набора
Если ты работаеш в BDE то нужно попробовать выставить в его настройках соответствующую кодировку для драйвера в ветке BDE Admin'а - Configuration/Drivers/Native/Foxpro/Langdriver=dBASE RUS cp866
Цитата:
Aristarh Dark
Я бы рпасался рекомендовать такие способы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.01.2008, 10:03   #4
djinni
 
Регистрация: 29.01.2008
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Aristarh Dark Посмотреть сообщение
Смотри 29 байт от начала файла dbf, должно быть значение 0x26 для 866 кодовой страницы.
29 байт меняет кодовую страницу dbf, а как перекодировать все данные, мне надо работать с этим dbf файлом через Delphi, что бы правель данные отображались желательно не трогая dbf.
djinni вне форума Ответить с цитированием
Старый 29.01.2008, 10:06   #5
Aristarh Dark
Форумчанин
 
Регистрация: 07.08.2007
Сообщений: 154
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если у тебя есть Visual FoxPro то воспользуйся утилитой cpzero.app из его набора
Если ты работаеш в BDE то нужно попробовать выставить в его настройках соответствующую кодировку для драйвера в ветке BDE Admin'а - Configuration/Drivers/Native/Foxpro/Langdriver=dBASE RUS cp866

Я бы рпасался рекомендовать такие способы.
Как в Delphi поменять Configuration/Drivers/Native/Foxpro/Langdriver=dBASE RUS cp866

djinni, в большинстве случаев проблемой "неправильного" открытия dbf файлов в delphi является именно то, что этот 29 байт не установлен вообще, и поэтому берется кодовая страница по умолчанию, а это, опять же чаще всего, 1251

Последний раз редактировалось Alex21; 29.01.2008 в 14:59.
Aristarh Dark вне форума Ответить с цитированием
Старый 29.01.2008, 12:20   #6
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
Сообщение от djinni Посмотреть сообщение
29 байт меняет кодовую страницу dbf, а как перекодировать все данные, мне надо работать с этим dbf файлом через Delphi, что бы правель данные отображались желательно не трогая dbf.
Еще способ:
В свойстве Font визуальных компонентов, отображающих данные, установить свойство Charset:=OEM_CHARSET. Это позволит правильно отображать данные в досовой кодировке.

Если предполагается использовать компонент в режиме редактирования, то на OnKeyPress пишем процедурку типа:

Код:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var
s1:string;
s: PChar;
begin
 s1:=Key;
 s:=PChar(s1);
  if DBGrid1.Font.Charset=OEM_CHARSET then CharToOEM(s,s);
 Key:=s[0];
end;
Ну, и, в помощь, функции для перекодировки:
AnsiToOEM - виндовая кодировка в дос;
OEMToAnsi - досовая кодировка в виндовую.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 29.01.2008, 14:36   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как в Delphi поменять Configuration/D
Это не делфе а в BDE Administartor настраивать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по FOXPRO werser Помощь студентам 2 24.12.2009 22:17
Кодировки BOBAH13 Общие вопросы Delphi 8 29.08.2008 14:20
Помогите-кодировки в IdPOP3 linker13 Работа с сетью в Delphi 1 08.12.2007 18:11
Кодировки CoDeR Общие вопросы Delphi 5 01.09.2007 21:39