Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c