Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

Проблема с кодировкой   Найти похожие ветки 

 
Шурик Ш ©   (2002-10-18 16:07) [0]

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


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

TTable.Open;
TTable.Active:=True;


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

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


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

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


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

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


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

Типа, Up!


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

Session.ModifyDriver(....)

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


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

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

А что такое Session?


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

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


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

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

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



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

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


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

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


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

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


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

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


 
Шурик Ш ©   (2002-10-18 18:29) [14]

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


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

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



 
lejik ©   (2002-10-19 18:59) [16]

Я делал так:
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;


 
Anatoly Podgoretsky ©   (2002-10-19 19:25) [17]

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



Страницы: 1 вся ветка

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
14-21777
^Sanya
2002-10-18 19:49
2002.11.07
Кто знает, на чём


4-21854
progger
2002-09-24 20:26
2002.11.07
Почему не выходит?


6-21710
delpher_gray
2002-09-06 11:14
2002.11.07
Передача файлов


4-21872
Velocity
2002-09-25 08:55
2002.11.07
пара ламерских вопросов


4-21891
vinni2000
2002-09-24 12:05
2002.11.07
Как узнать занят ли файл другим приложением