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

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

Проблема с кодировкой [D6]


Шурик Ш ©   (2002-10-18 16:07:00) 

Как открыть таблицу DBF c кодировкой ""ascii" ANCI", а то она у меня в ДБ-гриде открывается нак набор закорючек.


Anatoly Podgoretsky   (2002-10-19 19:25:00) [1]

NewDriverParams.Add("LANGDRIVER = db866ru0");
Если у тебя это, то это никак не ANSI ascii
Кроме прочего учти, что ANSI ascii это не русский, а обощенное имя локализации системе, то есть на машине с французкой локалью это будет французкий.
Но все это ерунда, все будет зависить а что реально у тебя в таблице и где ты будешь это использовать, используется ли перекодировка полей, какие шрифты используются для показа, какой у них указан скрипт (charset)


lejik   (2002-10-19 18:59:00) [2]

Я делал так:
procedure TForm1.FormCreate(Sender: TObject);
var MyList:TStrings;
begin
MyList:=TStringList.Create;
MyList.Clear;
Session.Close;
try
MyList.Add("LANGDRIVER=""""acsii""ANSI""");
Session.ModifyDriver("Microsoft FoxPro VFP Driver (*.",MyList);
Session.Open;
except
on E: Exception do
MessageBox(Handle,PChar(E.Message), ("Error"), MB_ICONERROR+MB_OK);
end;
Session.SaveConfigFile;
dm2.Table1.Active:=true;


Reindeer Moss Eater   (2002-10-18 18:55:00) [3]

Посмотри в какой реально кодировке данные в таблице. Например с помощью вьюера в FAR


Шурик Ш   (2002-10-18 18:29:00) [4]

Вместо алеаса пишу просто путь к БД. В этом случае, что писать вместо алеаса в вызове GetConfigParams?


Reindeer Moss Eater   (2002-10-18 17:45:00) [5]

Посмотри в какой реально кодировке данные в таблице. Например с помощью вьюера в FAR


Шурик Ш   (2002-10-18 17:41:00) [6]

Да, действительно, там уже и так db866ru0, а почему ж он тагда все криво отображает?


Reindeer Moss Eater   (2002-10-18 17:26:00) [7]

В предпоследней строке конечно же не cList, а NewDriverParams


Reindeer Moss Eater   (2002-10-18 17:25:00) [8]

1. Создать список параметров
2. Получить в него параметры по умолчанию
Session.GetConfigParams("\DRIVERS\%s\INIT","DBASE",NewDriverParams);
Session.GetConfigParams("\DRIVERS\%s\TABLE CREATE","DBASE",NewDriverParams);
3. Изменить параметр языка
cList.Values["LANGDRIVER"]:="db866ru0";
4.Session.ModifyDriver


Шурик Ш   (2002-10-18 17:14:00) [9]

Что я деляю неправильно?

NewDriverParams:=TStringList.Create;
NewDriverParams.Add("LANGDRIVER = db866ru0");
Session.ModifyDriver("DBASE", NewDriverParams);


Reindeer Moss Eater   (2002-10-18 16:51:00) [10]

Session - глобальный экземпляр класса TSession, автоматически создаваемый Delphi - 1 шт.


Шурик Ш   (2002-10-18 16:46:00) [11]

Ничего не понимаю! Кошмар, какой-то!
Еще раз...
У меня:
Query - 1 шт.
DataSource - 1 шт.
DBGrid - 1 шт.

А что такое Session?


Reindeer Moss Eater   (2002-10-18 16:37:00) [12]

Session.ModifyDriver(....)

Но не все так просто. В заголовке DBase может быть указано, что язык таблицы ANSI, а реально содержатся данные в сp866


Шурик Ш   (2002-10-18 16:36:00) [13]

Типа, Up!


Шурик Ш   (2002-10-18 16:24:00) [14]

А как его настроить програмно?
Мне присылают файлы в таком формате, поэтому для каждого из них заниматься таким гемороем тяжело. Куда проще заложить это в саму прогу!


Reindeer Moss Eater   (2002-10-18 16:21:00) [15]

Тогда настрой параметр LANGDRIVER для DBase и все


Шурик Ш   (2002-10-18 16:20:00) [16]

Под словом "открыть" я подразумеваю "открыть в читабельном виде".


Reindeer Moss Eater   (2002-10-18 16:18:00) [17]

TTable.Open;
TTable.Active:=True;


Наверх

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