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

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

кодировка [D6, FB]


Ann ©   (2003-05-22 09:10:00) 

Добрый день!
Подскажите пожалуйста, как при записи из таблицы с досовской кодировкой перекодировать ее в виндовскодировку?


Stas   (2003-05-22 10:52:00) [1]

>Anatoly Podgoretsky ©

У меня перекодирует, а у нее небудет ?
Что-то ты не то городишь.


Anatoly Podgoretsky   (2003-05-22 10:49:00) [2]

Это не будет перекодировать твою таблицу, надо самой перекодировать построчно, конечно прежде создав новую таблицу.
Или сразу гнать из старой таблицы в FB с перекодировкой поле, для этого используй функцию OemToChar


Stas   (2003-05-22 10:49:00) [3]

Не зачто, Аня. Обращайся.


Ann   (2003-05-22 10:44:00) [4]

хорошо... спасибо :)


Stas   (2003-05-22 10:40:00) [5]

Ну, я так понимаю ты перегоняешь свои таблы из *.dbf в FB
Ты перекодируй таблицу через BDE, а потом перегоняй.


Ann   (2003-05-22 10:32:00) [6]

ок! :) спасибо. Так понятно :) а то что я использую не BDE а FibPlus это роли не играет?


Stas   (2003-05-22 10:27:00) [7]

А что тебе нужно понять Аня ?
в USES пропиши BDE
Всталяешь эту процедурку, объявляешь ее заголовок.
Кидаешь на форму DataBase и таблицу,и соединяешь их.
А вызвать ее нужно так:

ChangeLangDriver (Database1.Handle,Table1,"DBASE","anccyrr")


Stas   (2003-05-22 10:27:00) [8]

А что тебе нужно понять Аня ?
в USES пропиши BDE
Всталяешь эту процедурку, объявляешь ее заголовок.
Кидаешь на форму DataBase и таблицу,и соединяешь их.
А вызвать ее нужно так:

ChangeLangDriver (Database1.Handle,Table1,"DBASE","ancyrr")


Ann   (2003-05-22 10:14:00) [9]

обидно только то, что я этим никогда не занималась.. почему-то ничего понять не могу. :(


Ann   (2003-05-22 09:47:00) [10]

спасибо


Stas   (2003-05-22 09:45:00) [11]

Этот вопрос возникает почти каждый день !!!
Наверное его нужно поместить в F.A.Q :-)
Вот код:

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;


Ann   (2003-05-22 09:35:00) [12]

у базы с дос кодировкой расширение dbf.. вроде стандартная функция была, а найти не получается :(


Stas   (2003-05-22 09:14:00) [13]

А под DOS-ом какая база была ?
Или расширения файлов Dos базы ?


Наверх

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