Имя: Пароль:
1C
1С v8
Кракозябры при загрузке из dbf. Кто победил ?
0 Aleks73
 
28.10.11
17:08
1С:Предприятие 8.2 (8.2.13.219)
ПУТЬ = ДиалогВыбора.ПолноеИмяФайла;
БД = Новый Xbase ;
БД.ОткрытьФайл(Путь);
ПОКА БД.Следующая() цикл
БД.ADRES - содержит в dbf строку русского текста, не печатается через сообшить и в отладчике видна как кракозябры. другая - числовая - колонка читается и выводится нормально.
Кто победил ? Что делать ?
1 Rabbit
 
28.10.11
17:09
Кодировка?
2 Aleks73
 
28.10.11
17:11
(1) где её посмотреть ?
3 Wobland
 
28.10.11
17:12
(2) начать стоит с СП
4 Axel2009
 
28.10.11
17:12
XBase (XBase)
Кодировка (Encoding)
Использование:

Чтение и запись.
Описание:

Тип: КодировкаXBase. Определяет режим кодировки базы.

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

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
5 Aleks73
 
28.10.11
17:14
(3,4) нет. где её посмотреть в файле dbf  ?
6 Wobland
 
28.10.11
17:14
(5) зачем тебе? наколдуй правильную при открытии
7 Aleks73
 
28.10.11
17:16
(6) что-то ни один из двух вариантов не выводит в сообщить....может, порядок написания другой...киньте кодом в меня, плиииииз !
8 Axel2009
 
28.10.11
17:16
(7) это свойство у КОМ объекта. перед открытием нужно присвоить другую кодировку.
9 Wobland
 
28.10.11
17:16
(7) лучше ты
10 Aleks73
 
28.10.11
17:19
(9) Очень странно....
вбил кодировку, в отладчике стало нормально, но
первая строка не выводит строковое поле, а вторая - выводит.


сообщить("Не найден лицевой счет в строке "+ к +" "+  БД.NUMLS + " " + БД.ADRES);
сообщить(БД.ADRES);
11 Defender aka LINN
 
28.10.11
17:24
(10) "ЫЫЫ" + NULL=?
12 Wobland
 
28.10.11
17:24
а что там в адресе?
13 Wobland
 
28.10.11
17:26
(11) Сообщить("ЫЫЫ" + NULL) должно сказать то же, что и Сообщить(NULL), то есть ничего
14 acsent
 
28.10.11
17:26
(11) null в дбф???
15 Aleks73
 
28.10.11
17:27
(12) нашёл в чем дело было. БД.NUMLS был какой-то безразмерный, выводился где-то за пределами видимой зоны...нет фокса на компе, не могу структуру посмотреть, что они там наваяли, файлик не мой.
вылечилось сокрлп(
спасибо всем за поддержку !
16 Wobland
 
28.10.11
17:28
(15) есть куча более мелких программ для посмотреть
17 Aleks73
 
28.10.11
17:32
(16) политика безопасности...проще дома.
18 Axel2009
 
28.10.11
17:47
СокрЛП
19 Reset
 
28.10.11
17:52
БД.NUMLS.Длина - запрещено выводить политикой безопасности? )
20 Reset
 
28.10.11
17:53
*БД.Поля.NUMLS.Длина
21 Aleks73
 
28.10.11
17:54
(18) см (15)
(19) когда я был молодой, кажется тогда в семерке ещё кодил, я как-то вроде помнится загружал дбф. А ЩАС ЗАБЫЛ НАПРОЧЬ.
(20) Буду знать, спасибо. конечно.
22 Reset
 
28.10.11
17:55
// FOX xd
Для каждого Поле из БД.Поля цикл
Сообщить(Поле.Имя+","+Поле.Тип+","+Поле.Длина+","+Поле.Точность);
КонецЕсли;
23 Reset
 
28.10.11
17:56
(21) Пожалуйста, я узнал об этом примерно минутой ранее тебя.
24 Axel2009
 
28.10.11
17:57
(21) в xbase нет полей с переменной длинной. там только с фиксированной. и длина добивается пробелами.
25 Aleks73
 
28.10.11
18:00
(23) Уел. но я сначала нашёл, почему так выводит, а потом уже не было необходимости выяснять длину.
(24) а мемори ?
26 Axel2009
 
28.10.11
18:01
(25) by design
Независимо от того, куда вы едете — это в гору и против ветра!