Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Перенос записей из db в dbf  (Прочитано 9896 раз)
0 Пользователей и 1 Гость смотрят эту тему.
liones
Постоялец

ru
Offline Offline
Пол: Женский

« : 26-03-2010 06:28 » new

Проблема такая: есть таблица paradox, из нее нужно перенести записи в dbase. При переносе вместо русских букв получается псевдографика. В BDE Administrator для DBASE установлен языковой драйвер dBASE RUS cp866. Для Paradox установлен языковой драйвер Paradox Cyrr 866. Программа для работы с dbf написана под dos, может в этом основная проблема. Как решить задачу переноса?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 26-03-2010 07:03 » 

А посредством чего осуществляется перенос?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
liones
Постоялец

ru
Offline Offline
Пол: Женский

« Ответ #2 : 26-03-2010 07:13 » 

DM.TImport.FieldByName('FATHER').AsString:=fio;
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 26-03-2010 08:43 » 

Т.е. посредством Delphi. А используемый компонент учитывает кодировки?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
liones
Постоялец

ru
Offline Offline
Пол: Женский

« Ответ #4 : 26-03-2010 09:32 » 

использую компоненты Table и Query, нашла что у table есть метод function Translate(Src, Dest: PChar; ToOem: Boolean): Integer; override; не могу найти расшифровку параметров, что я должна указать в скобках не понятно и вобще как этот метод работает
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 26-03-2010 09:44 » 

судя по всему,
Src - источник
Dest - приёмник
Записан

liones
Постоялец

ru
Offline Offline
Пол: Женский

« Ответ #6 : 26-03-2010 10:41 » 

function ConvertAnsiToOem(const S: string): string;
{ ConvertAnsiToOem translates a string into the OEM-defined character set }
{$IFNDEF WIN32}
var
  Source, Dest : array[0..255] of Char;
{$ENDIF}
begin
  {$IFDEF WIN32}
  SetLength(Result, Length(S));
  if Length(Result) > 0 then
    AnsiToOem(PChar(S), PChar(Result));
  {$ELSE}
  if Length(Result) > 0 then
  begin
    AnsiToOem(StrPCopy(Source, S), Dest);
    Result := StrPas(Dest);
  end;
  {$ENDIF}
end; { ConvertAnsiToOem }
вот что я нашла в просторах инета
Записан
Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 26-03-2010 13:28 » 

Проверьте, и хотя бы обнулите 30-й байт полученного DBF-файла, т.к. там находится информация о кодовой странице, а в dBASE, Foxpro и Clipper для DOS значения для одной и той-же кодовой страницы разные.
Записан

С уважением, Oldy.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines