Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сконвертировать DBF в BD(Paradox) [D6, dBase, FoxPro, Paradox]


Stanislav SM ©   (2003-04-16 11:53:00) 

Уваж. мастера, у меня имеется таблица FoxPro (DBF-файл ДОСовского приложения). Мне нужно сделать программу конвертор, которая этот файл перенесет с некоторыми изменениями в таблицу Paradox (DB-файл). Возникает проблема: при открытии DBF текст отображается ненормально (явное несовпадение кодировки). И ничего не помогает: пробовал менять тип таблицы (ttFOXPRO, ttDBASE), ANSI. Помогите пожалуйста кто сможет.


Stas   (2003-04-16 14:00:00) [1]

Если с таблицей в DOS работать не будешь, то можно преобразовать. Вот код:

aDBHnd - TDatabase.Handle;
aTblType - "PARADOX"/"DBASE"/"FOXPRO"
aLangDriver - "ancyrr".

procedure ChangeLangDriver( aDBHnd: HDBIDB; aTable: TTable; const aTblType, aLangDriver: String);
var
TblExt: string;
TblDesc: CRTblDesc;
OptDesc: FLDDesc;
OptData: array [0..250] of Char;
Cur: hDBICur;
Rec: CFGDesc;
begin
FillChar( OptDesc, SizeOf( OptDesc ), #0);
FillChar( TblDesc, SizeOf( TblDesc ), #0);
StrCopy( OptDesc.szName, "LANGDRIVER");
OptDesc.iLen := Length(aLangDriver) + 1;
with TblDesc do
begin
StrPCopy( szTblName, aTable.TableName);
StrCopy( szTblType, PChar(aTblType));
iOptParams := 1;
pfldOptParams := @OptDesc;
pOptData := @OptData;
end;
StrPCopy( OptData, aLangDriver);
Check( DbiDoRestructure( aDBHnd, 1, @TblDesc, nil, nil, nil, False ) );
end;


гончий   (2003-04-16 12:09:00) [2]

Кроме того, что нужно настроить BDE правильным образом, может возникнуть ситуация, что кодировка самой таблицы "кривая". Советую подобрать кодировку в Database Workshop - там видно как будут выглядеть строковые поля при различных кодировках - очень легко подбирается :) http://www.degisy.com


Соловьев   (2003-04-16 12:05:00) [3]


> И ничего не помогает: пробовал менять тип таблицы (ttFOXPRO,
> ttDBASE), ANSI.

не здесь меняют, а в настройках BDE: драйвер и алиас.


Наверх

Титульная страница Поиск, карта сайта Написать письмо