Главная страница
    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.47 MB
Время: 0.041 c
14-1097667095
Odessos
2004-10-13 15:31
2004.10.31
ВВ в Одессе


14-1097499680
Григорьев Антон
2004-10-11 17:01
2004.10.31
Может, кто подскажет? А то наш админ не смог :(


14-1097214769
OlDemon
2004-10-08 09:52
2004.10.31
Атлон, Дюрон, Селерон ...


4-1096116790
Nils
2004-09-25 16:53
2004.10.31
Нужен пример работы с TMemIni?


1-1098083698
Kniaz
2004-10-18 11:14
2004.10.31
Контроль за исключениями





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский