Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.035 c
4-1096308180
Bes
2004-09-27 22:03
2004.10.31
Как программно погасить диалог "Сохранить как...", сохранив файло


4-1095927456
Arnold
2004-09-23 12:17
2004.10.31
Какое сообщение возникает при изменении что либо на форме


1-1097649544
Asker
2004-10-13 10:39
2004.10.31
Участок формы в графический файл


14-1097258049
GanibalLector
2004-10-08 21:54
2004.10.31
ГИМН КАЗАНТИПА


1-1097652492
cvg
2004-10-13 11:28
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский