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

Вниз

DBF в ДОСовой   Найти похожие ветки 

 
Morj   (2004-09-30 09:42) [0]

Подскажите такую вещь: есть DBF-файл в досовской кодировке. При вставке строк в текстовые поля все символы заменяются на решетки ("#"):

var strsmall:tstrings;
...
FieldByName("KD0").AsString:=strsmall[20];


 
Digitman ©   (2004-09-30 09:50) [1]

для начала установи в BDE-администраторе

Configuration -> Drivers -> Native -> FoxPro -> LANGDRIVER = dbase RUS cp866


 
Morj   (2004-09-30 09:58) [2]

Заменил - не помогло. :(


 
Digitman ©   (2004-09-30 10:02) [3]


> все символы заменяются на решетки


не верь глазам своим
загляни любым вьюером в содержимое dbf-файла - вряд ли ты там увидишь эти "решетки"


 
Morj   (2004-09-30 10:05) [4]

Сейчас проверю.


 
Morj   (2004-09-30 10:17) [5]

Неа, нифига. Все равно решетки. Проверил строку перед вставкой - кодировка досовская, все нормально.


 
Digitman ©   (2004-09-30 10:23) [6]


> Проверил строку перед вставкой - кодировка досовская


дык с какого перепугу ты пытаешься вставить строку с кодами символов, соответствующих ДОС-кодировке ?
ты вставляй привычную ansi-строку, а все остальное - не твоя забота, соотв.перекодировку перед непосредственно записью в файл таблицы проведет тот самый native-драйвер, которому ты указал LANGDRIVER = dbase RUS cp866


 
Morj   (2004-09-30 10:24) [7]

Может, еще что-нибудь нужно поменять?


 
Digitman ©   (2004-09-30 10:32) [8]


> Morj


угу ... компьютер, к примеру ..

я ж тебя спросил, ты зачем строку-то перед вставкой готовишь в ДОС-кодировке ?

strsmall[20]:= "Обыкновенная ANSI-строка !";
FieldByName("KD0").AsString := strsmall[20];

и ты утверждаешь, что этот код с учетом LANGDRIVER = dbase RUS cp866 приводит к решеткам ?

TTable.TableType чему у тебя равно ?


 
Morj   (2004-09-30 10:33) [9]

Вставлял уже и в виндозовской кодировке, и в дососвской - бесполезно. При настройке алиаса я поставил тип STANDARD. Может в этом дело?


 
Morj   (2004-09-30 10:34) [10]

TableType = ttDefault


 
Morj   (2004-09-30 10:39) [11]

Вот еще пример:

FieldByName("KD0").AsString:=strsmall[20];
showmessage(strsmall[20]);
showmessage(DosToWin(FieldByName("KD0").AsString));

Первый showmessage - "Октябрьская д.30"
Второй showmessage - "##############30"


 
Digitman ©   (2004-09-30 10:41) [12]

раз уж св-во LANGDRIVER установлено для native-драйвера Foxpro, то и в алиасе укажи DEFAULTDRIVER = FoxPro
до кучи и в таблице укажи TableType = ttFoxPro, хуже не будет


 
Morj   (2004-09-30 10:41) [13]

Поставил TableType=FoxPro, все исправилось. Спасибо за помощь, Digitman!



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

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

Наверх




Память: 0.49 MB
Время: 0.022 c
14-1097250847
Guest
2004-10-08 19:54
2004.10.31
Что вы можете сказать про видюхи ennyah?


1-1097589504
sten
2004-10-12 17:58
2004.10.31
read only для combobox


1-1098266599
Pitonec
2004-10-20 14:03
2004.10.31
6 и 7 Delphi


1-1098044705
Closer
2004-10-18 00:25
2004.10.31
Как очистить экран в консольном приложении?


1-1097605384
Peter
2004-10-12 22:23
2004.10.31
Диалог о сохранении при закрытии приложения