Имя: Пароль:
1C
1С v8
XBASE читает строку "ЧЪ000229" как "Ћђ000229"
0 Amiralnar
 
15.09.11
13:54
Файл открывается следующим образом:


   СпрДокументы = Новый XBase();
   СпрДокументы.ОткрытьФайл(мКаталогОбмена + "PDA.DBF");
   СпрДокументы.Индексы.Добавить("istatus", "istatus");
   СпрДокументы.СоздатьИндексныйФайл(мКаталогОбмена + "PDA.CDX");
   СпрДокументы.ТекущийИндекс = СпрДокументы.Индексы.istatus;
   СпрДокументы.Первая();


В свойствах файла после открытия
Кодировка    ANSI    КодировкаXBase

Сам файл создается программой на дельфях, которая использует BDE
Для BDE настроен алиас, с драйвером FOXPRO

Что надо этой гадине?
Я уже не знаю, как заставить его правильно читать...
1 shuhard
 
15.09.11
13:56
(0) ADODB уже пробовал ?
2 Salvador Limones
 
15.09.11
13:58
c КодировкаXBase игрался уже?
3 Amiralnar
 
15.09.11
13:58
В программе DBFPLUS поле видно нормально, в описании таблицы показывает "FoxBASE+/Dbase III plus, no memo"
В описании поля тип TEXT, размер 20.
4 Amiralnar
 
15.09.11
13:59
Там должно быть ANSI...
5 aka AMIGO
 
15.09.11
14:00
в xbase есть метод "КодоваяСтраница()"
6 Amiralnar
 
15.09.11
14:00
Ди и поможет ли смена на OEM, если это чтение, а не запись?
7 Amiralnar
 
15.09.11
14:01
(5) нету такой, есть только свойство "Кодировка"
8 aka AMIGO
 
15.09.11
14:02
(7) а, пардон, это 8-ка..
9 andrewks
 
15.09.11
14:02
похоже на UTF-8
10 Amiralnar
 
15.09.11
14:02
(1) ADODB - это очень крайний случай. Я его просто не знаю.
11 Amiralnar
 
15.09.11
14:03
(9) В dbf-то uft8? Почему не 16?
12 aka AMIGO
 
15.09.11
14:03
имхо насколько я помню, FoxBase создает файлы в дос-кодировке

но это так.. размышлизмы вслух.. надо-бы дбф-ку твою глянуть
13 Amiralnar
 
15.09.11
14:04
щас..
14 shuhard
 
15.09.11
14:06
(10) дык изучи, дел то
MyCon = Новый COMОбъект ("ADODB.Connection");
           MyCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=D:\1c_common\Реальный_сектор\TEL_BASE2006.MDB");
           MyRst = Новый COMОбъект ("ADODB.Recordset");
           MyRst.Open ("select * from TCorp", MyCon, 3, 1);
           Пока НЕ MyRst.EOF Цикл
           
              MyRst.MoveNext();
           КонецЦикла;
15 Гефест
 
15.09.11
14:06
ЕМНИП, так:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase]
"DataCodePage"="ANSI"
"BDE"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
16 ice777
 
15.09.11
14:08
было нечто подобное, когда дельфями считывал dbf с кассового аппарата, подошла некая странно звучащая кодировка, вовсе не fox.
17 Amiralnar
 
15.09.11
14:08
(12) http://rghost.ru/21688601
Последние две строки

(14) Посмотрим...

(15) Попробую
18 Amiralnar
 
15.09.11
14:08
(16) У меня в 1С всего два варианта, ANSI И OEM
19 ice777
 
15.09.11
14:10
(18) гм. с чего бы всего 2? больше.
20 andrewks
 
15.09.11
14:10
(15) имхо, в этом случае это не поможет
21 Amiralnar
 
15.09.11
14:12
(19)

КодировкаXBase (XBaseEncoding)
Значения

ANSI (ANSI)
OEM (OEM)

Описание:

Содержит варианты кодировок XBase.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Возможен обмен с сервером.
См. также:

XBase, свойство Кодировка
22 Amiralnar
 
15.09.11
14:13
(15), (20) Просто поменял значения - не помогло. Может, перезагрузка нужна?
23 Amiralnar
 
15.09.11
14:24
(14) Мне в конце туда еще написать надо. Адо умеет?
24 andrewks
 
15.09.11
14:28
25 shuhard
 
15.09.11
15:04
(23) легко, метод
AddNew