Размер имеет значение

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8024
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

Размер имеет значение

Сообщение Игорь Столяров »

Привет всем !

Что-то я опять заблудился в "трех соснах" ... :)
Подскажите пожалуйста, можно ли узнать размер (не длину !) текущего поля под ANY ?
Пример:

GR Group
F1 Long
F2 String(30)
F3 Real
F4 Decimal(15,0)
end

F_ANY ANY

Code

Loop i# = 1 to 4
F_ANY &= What(GR,i#)
! Какой размер сейчас имеет поле в ANY ?
! Size(F_ANY) - возвращает размер самого ANY, т.е. просто длину указателя в 4 byte ...
end

Или эта задача в общем случае вообще не имеет решения ?
Заранее спасибо !
Make Clarion Great Again ! 😎
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: Размер имеет значение

Сообщение Admin »

Игорь Столяров писал(а):Подскажите пожалуйста, можно ли узнать размер (не длину !) текущего поля под ANY ?
Думаю только недокументированными функциями клариона. Таких не знаю.
Наверное проще переписать твою приладу что бы при получении из группы поля сразу рядом сохраняла размер...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8024
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

Re: Размер имеет значение

Сообщение Игорь Столяров »

Ха ! Это понятно ... Здесь именно фишка в том, что бы написать обработку группы независимо от ее структуры - например объявить динамический файл и записать в него данные. А для этого нужно знать размерность полей группы ... Замое забавное, что я вроде бы технологических проблем здесь не вижу. ANY - указатель, в момент присвоения данных, резервируется область памяти под вполне определенный и известный тип данных ... А вот почему нельзя получить текущие параметры инициализации переменной ANY - непонятно ... :(
Make Clarion Great Again ! 😎
БАИ
Посетитель
Сообщения: 25
Зарегистрирован: 09 Октябрь 2009, 13:05

Re: Размер имеет значение

Сообщение БАИ »

не, any же не указатель, а обертка над "ufo-переменной"(клевое имя на самом деле). этот самый нло- целый класс, с методами и пропертями, среди которых есть _size, содержащее как раз размер. Про доступ этим свойствам http://www.clarionlife.net/content/view/159/29/
Или я опять не про то?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8024
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

Re: Размер имеет значение

Сообщение Игорь Столяров »

Спасибо ! Это как раз то, что нужно ... :)
Make Clarion Great Again ! 😎
Ответить