![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
русский язык [D5, dBase, FoxPro, Paradox]
windows © (2004-05-12 18:22:00)есть таблица table.dbf. При её просмотре в DBGrid вместо русских букв - '#'. Манипуляции с BDE не помогают, русский шрифт появляется только после изменения Table Language через Database Desktop. Как программно установить русский язык в таблице?
LaidBack (2004-05-12 19:44:00) [1]А подобрать правильную кодировку визуально поможет Abidesktop:
http://www.degisy.com/download.php
sniknik (2004-05-12 18:59:00) [2]эту я когдато сам писал, (переписывал) в основном выдрав из хелпа борланда (похоже не только я так ;о) если оно узнаваемо).
у меня и сейчас работает.
windows (2004-05-12 18:49:00) [3]это процедура из советов Озерова? Она у меня отлично вешает программу, но язык при этом не меняет
sniknik (2004-05-12 18:45:00) [4]
procedure ChangeLangDriver(DatabaseName, TableName, LDName: string);
var
TblExt: string;
Database: TDatabase;
TblDesc: CRTblDesc;
OptDesc: FLDDesc;
OptData: array [0..250] of Char;
Cur: hDBICur;
Rec: CFGDesc;
begin
if (TableName='') or (LDName='') then raise Exception.Create('Unknown TableName or LDName');
Database:=Session.OpenDatabase(DatabaseName);
try
if Database.IsSQLBased then raise Exception.Create('Function ChangeLangDriver working only with dBase or Paradox tables');
FillChar(OptDesc, SizeOf(OptDesc), #0);
FillChar(TblDesc, SizeOf(TblDesc), #0);
StrCopy(OptDesc.szName, 'LANGDRIVER');
OptDesc.iLen:=Length(LDName)+1;
with TblDesc do begin
StrPCopy(szTblName, TableName);
TblExt:=UpperCase(ExtractFileExt(TableName));
if TblExt='.DBF' then StrCopy(szTblType, szDbase)
else if TblExt='.DB' then StrCopy(szTblType, szParadox)
else begin
AnsiToOEM(StrPCopy(OptData, DatabaseName), OptData);
if DbiOpenCfgInfoList(nil, dbiREADONLY, cfgPersistent, StrPCopy(OptData, '\DATABASES\'+StrPas(OptData)+'\DB INFO\'),Cur)<>DBIERR_NONE
then raise Exception.Create('Unknown table type');
try
while DbiGetNextRecord(Cur, dbiNOLOCK, @Rec, nil)<>DBIERR_EOF do
if StrComp(Rec.szNodeName, 'DEFAULT DRIVER')=0 then begin
StrCopy(szTblType, Rec.szValue);
Break;
end;
finally
Check(DbiCloseCursor(Cur));
end;
end;
iOptParams:=1;
pfldOptParams:=@OptDesc;
pOptData:=@OptData;
end;
StrPCopy(OptData, LDName);
Check(DbiDoRestructure(Database.Handle, 1, @TblDesc, nil,nil, nil, False));
finally
Session.CloseDatabase(Database);
end;
end;
вызов
ChangeLangDriver(понятно, понятно, 'cyrr'{db866ru0});
windows (2004-05-12 18:40:00) [5]ну так я ttable и использую
KillOfCats (2004-05-12 18:35:00) [6]Попробуй таблицу подключить через компонент Table
KillOfCats (2004-05-12 18:31:00) [7]К ТАБЛИЦЕ
KillOfCats (2004-05-12 18:29:00) [8]Через какой компонент ты осуществляешь доступ к странице?