![]() |
![]() |
![]() |
|
Как записать логическое значение в dbf файл | ☑ | ||
---|---|---|---|---|
0
Ясный перец
27.02.11
✎
15:10
|
Создаю средствами 1С dbf-файл.
Одно из полей имеет логический тип. Не могу понять, как правильно присвоить логическое значение (.T. или .F.) полю dbf-файла. Помогите советом, плиз. Срочно нужно. |
|||
1
DGorgoN
27.02.11
✎
15:11
|
True = истина
False = Ложь |
|||
2
Ясный перец
27.02.11
✎
15:17
|
Спасибо, это понятно.
В языке 1С 77 разве есть значения булева типа? По-моему нет. Уточню: в структуру базы добавляю поле ДБФМн.ДобавитьПоле("Ext","L",,); Хочу присвоить значение True, например. Как это написать? ДБФМн.Ext = ???? |
|||
3
G-Re
27.02.11
✎
15:22
|
(2) Logical не поддерживается XBase.
Записывай или 1 - 0 или -1 - 0 или еще как-нибудь в стандартные типы (Число, символ) данных. |
|||
4
miki
27.02.11
✎
15:23
|
>>В языке 1С 77 разве есть значения булева типа?
По-моему нет. Вы заблуждаетесь, либо путаете с memo/blob |
|||
5
Ясный перец
27.02.11
✎
15:23
|
Люди, подскажите, плиз
Срочно нужно (я уже поиски и ЖКК мусолю параллельно - нет ответа) :( |
|||
6
aka AMIGO
27.02.11
✎
15:25
|
(2) ну, разве что 1 и 0 для обозначения состояния флажка - элемента диалога - остальное рукотворное.. Например, в одной из прог (самопальных, если чо..) есть перечисление "Булево" и два значения - Да и Нет
можно модифицировать, если хочется, и применять, если понадобится. конфа - давнииишняя, изначально была "Торговля", так и осталась.. в других 7-рочных не встречал. достаточно функций ВЯ.. ЗЫ, всё ИМХО! |
|||
7
Ясный перец
27.02.11
✎
15:25
|
(4) Да, 1С не поддерживает создание полей memo.
Но не о них речь. И даже не о том заблуждаюсь я или нет. Просто подскажите как записать: ДБФМн.Ext = ???? (здесь ДБФМн - объект xBase) |
|||
8
Ясный перец
27.02.11
✎
15:27
|
(6) Спасибо. Про Перечисление Булево тоже наслышан (и даже щупал), но это немного не та тема.
|
|||
9
G-Re
27.02.11
✎
15:31
|
(7) Да так и написать, например
Если Нечто Тогда ДБФМн.Ext = 1; Иначе ДБФМн.Ext = 0; Или ДБФМн.Ext =?(Условие,1,0); Да как хочешь. |
|||
10
Ясный перец
27.02.11
✎
15:33
|
(9) Спасибо. Сейчас попробую...
|
|||
11
Ясный перец
27.02.11
✎
15:35
|
Спасибо всем поучаствовавшим.
И особенно G-Re. Ваш совет помог. Извините меня за тупость - это временно :) |
|||
12
G-Re
27.02.11
✎
15:40
|
(11) Это не тупость, это просто временное помутнение разума. Тупости даже в вопросах не наблюдалось. Успехов!
|
|||
13
miki
27.02.11
✎
15:42
|
(11)Ты же, надеюсь, 0/1 в Logical записал?
Или ты про совет из (3)? |
|||
14
Ясный перец
27.02.11
✎
15:47
|
(13) Дабы не оставлять вас в сомнениях поясню: воспользовался советом из (9)
|
|||
15
Torquader
27.02.11
✎
16:36
|
(14) Вообще-то, со стороны 1С значение Logical, которое в ADO есть True в 1С будет -1, а False - будет 0.
|
|||
16
VasilyKushnir
27.02.11
✎
18:50
|
После (1) ветку смело можно было закрывать.
True = истина False = Ложь True = 1 False = 0 (или все что угодно, кроме 1) |
|||
17
Torquader
27.02.11
✎
19:02
|
(16) На самом деле "умная" ADO, например, считает, что FALSE=0, а всё, что не ноль - это TRUE!
|
|||
18
VasilyKushnir
27.02.11
✎
19:05
|
(17) Можно и так, только надо по диагонали хотя бы АДО просмотреть :-)))
|
|||
19
miki
27.02.11
✎
19:05
|
(16)False - _только_ 0. Всё остальное - True.
|
|||
20
Cthulhu
27.02.11
✎
19:15
|
(19): ну зависит от.. в общем случае -1 - всегда true.
|
|||
21
Torquader
27.02.11
✎
20:18
|
(20) В общем случае, всё зависит от реализации, но обычно, если используется логическое поле, то выполняется сравнение (не 0), то есть 0 всегда будет False.
Что касается -1, то если используется арифметическое дополнение, то при преобразовании бита в байт (признак знака обычно включён), мы получаем -1 (то есть все установленные единицы). Что касается самого DBF-файла, то там логический тип мало чем отличается от типа CHAR(1), то есть за исключением проверки на два возможных значения. Не удивлюсь, что символ получается как "FT"[LogicalValue&1] то есть наиболее быстрая операция. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |