-
- Может, всё проще?:) Vit(231 знак., 15.08.2014 12:06)
- Решил все-таки написать. Никак не могу понять где тут реально проблема. Если просто возвращать из функции ccc ее локальный экземпляр этой пользовательской структуры, то вроде то что и хотелось же: AleksBak(138 знак., 15.08.2014 01:06, )
- Как ей сказать что я хочу передать. Только не на пальцах, а прямо кодом пжалста, а то я половину того что мне тут народ на словах говорит понять не могу. Ну и дополнительно инфа для размышления, type1, 2 итд тоже могут быть структурами. Ну Codavr(133 знак., 15.08.2014 03:25)
- пожалуйста и только попробуйте сказать что слишком сложно и много букв :-) abivan(1233 знак., 15.08.2014 11:30)
- Букаф достаточно, но StoreData остается глобальным. Не вижу принципиальной разницы от того что я вот тут написал --> - Codavr(15.08.2014 11:40, ссылка)
- да какой он глобальный, статиком объявляешь в модуле и все. Доступа напрямую нет только через функцию. еще будет нужна ф-я PutStoreData. abivan(70 знак., 15.08.2014 11:59)
- Блин. Как костыль приделать я бы и без обсуждения на форуме сообразил. Вопрос интересовал о принципиальной возможности/невозможности средствами сишника провернуть ту аферу что я описал. То что извращаться при написании программы можно мильеном Codavr(248 знак., 15.08.2014 12:05 - 12:13)
- А где ты костыль то увидел? Формализовал бы хоть задачу для начала. Написал хотябы вызывающую ф-ю. Как ты видишь себе запросы для получения данных. Тебе нужно было решить задачу. Она решена. Вызов ф-и эстетичный, чего еще надо? - abivan(15.08.2014 12:13)
- Вобщем то ничего что требовало бы агрессивного спора не нужно. Если бы я знал как написать вызывающую функцию, то как нибудь справился с тем как написать вызываемую. Но в целом я хочу в параметре функции написать чтонить типа А.Б.С или А->B->C или Codavr(144 знак., 15.08.2014 12:14 - 12:19)
- если структура будет хранится в ф-ии как статик, то как в ней будут изменяться значения? Наверное всеже она должна храниться как статик, но глобальной для модуля работы с этой структурой.В предложенном мнной варианте запрос происходит через abivan(272 знак., 15.08.2014 12:37)
- Так же как всегда. Ты случаем static c const не попутал? Аналогичный твоемй вариант я уже приводил. Он у меня уже есть и работает. Но вот прихотнулось сделать локальную структуру. Это не жизненно необходимое требование. Но как разминка для того Codavr(132 знак., 15.08.2014 12:39 - 12:44)
- нет не попутал. Если статик структуру разместить в ф-и GetStoreData то эта функция во-первых должна быть статическая, чтобы никто снаружи не мог изменить данные твоей структуры по указателю. Ведь к этому ты стремился, к инкапсуляции? И работать в abivan(116 знак., 15.08.2014 12:55)
- Локальная структура не видна за пределами функции как ты вне функции указатель на нее определишь? А статическая она конечно должна быть. Я это в задаче обозначил. В данном случае меня наккладные расходы не интересовали. Я хотел получить Codavr(51 знак., 15.08.2014 13:08 - 13:11)
- пример. abivan(505 знак., 15.08.2014 13:28)
- ЗВЫНЯЙТЕ МУЖИКИ. Мне нужно прерваться на время. - Codavr(15.08.2014 13:31)
- Я так понял, что данные, передаваемые через эту ф-цию, будут с динамическим типом. То есть статическая проверка типов компилятором идёт лесом, а впереди - море граблей. - SciFi(15.08.2014 13:17)
- Это тоже тема для размышления. Допускаю что локальная в модуле структура это меньшее зло. А фик там. Тип полюбасу получается динамический. А как по другому? - Codavr(15.08.2014 13:20 - 13:26)
- а может не "полюбасу"? - Vit(15.08.2014 13:26)
- поясни. - Codavr(15.08.2014 13:27)
- если твой typedef sss виден, то при ccc()->A будет проверка типа. если не виден, то другой коленкор - Vit(15.08.2014 13:30)
- typedef sss видят все. - Codavr(15.08.2014 20:55)
- если твой typedef sss виден, то при ccc()->A будет проверка типа. если не виден, то другой коленкор - Vit(15.08.2014 13:30)
- поясни. - Codavr(15.08.2014 13:27)
- а может не "полюбасу"? - Vit(15.08.2014 13:26)
- Это тоже тема для размышления. Допускаю что локальная в модуле структура это меньшее зло. А фик там. Тип полюбасу получается динамический. А как по другому? - Codavr(15.08.2014 13:20 - 13:26)
- пример. abivan(505 знак., 15.08.2014 13:28)
- Локальная структура не видна за пределами функции как ты вне функции указатель на нее определишь? А статическая она конечно должна быть. Я это в задаче обозначил. В данном случае меня наккладные расходы не интересовали. Я хотел получить Codavr(51 знак., 15.08.2014 13:08 - 13:11)
- нет не попутал. Если статик структуру разместить в ф-и GetStoreData то эта функция во-первых должна быть статическая, чтобы никто снаружи не мог изменить данные твоей структуры по указателю. Ведь к этому ты стремился, к инкапсуляции? И работать в abivan(116 знак., 15.08.2014 12:55)
- Так же как всегда. Ты случаем static c const не попутал? Аналогичный твоемй вариант я уже приводил. Он у меня уже есть и работает. Но вот прихотнулось сделать локальную структуру. Это не жизненно необходимое требование. Но как разминка для того Codavr(132 знак., 15.08.2014 12:39 - 12:44)
- В языке Си нет встроенных средств для таких дел. Кроме того, сама постановка задачи какая-то пришибленная. Ну вот нахуа такое может понадобиться? - SciFi(15.08.2014 12:24)
- ??? - Vit(15.08.2014 12:20, ссылка)
- У тебя две разных структуры созданы ;) - Codavr(15.08.2014 12:24)
- int XXX = ccc()->A; float YYY = ccc()->B; - Vit(15.08.2014 12:31)
- аааа. А эта структура у нас всегда там лежит? - Codavr(15.08.2014 12:34 - 12:37)
- static на своем месте - Vit(15.08.2014 12:39)
- Ну да. Надо обсосать со всех сторон. Очень похоже на тему. - Codavr(15.08.2014 12:44)
- static на своем месте - Vit(15.08.2014 12:39)
- аааа. А эта структура у нас всегда там лежит? - Codavr(15.08.2014 12:34 - 12:37)
- int XXX = ccc()->A; float YYY = ccc()->B; - Vit(15.08.2014 12:31)
- У тебя две разных структуры созданы ;) - Codavr(15.08.2014 12:24)
- если структура будет хранится в ф-ии как статик, то как в ней будут изменяться значения? Наверное всеже она должна храниться как статик, но глобальной для модуля работы с этой структурой.В предложенном мнной варианте запрос происходит через abivan(272 знак., 15.08.2014 12:37)
- Вобщем то ничего что требовало бы агрессивного спора не нужно. Если бы я знал как написать вызывающую функцию, то как нибудь справился с тем как написать вызываемую. Но в целом я хочу в параметре функции написать чтонить типа А.Б.С или А->B->C или Codavr(144 знак., 15.08.2014 12:14 - 12:19)
- А где ты костыль то увидел? Формализовал бы хоть задачу для начала. Написал хотябы вызывающую ф-ю. Как ты видишь себе запросы для получения данных. Тебе нужно было решить задачу. Она решена. Вызов ф-и эстетичный, чего еще надо? - abivan(15.08.2014 12:13)
- Блин. Как костыль приделать я бы и без обсуждения на форуме сообразил. Вопрос интересовал о принципиальной возможности/невозможности средствами сишника провернуть ту аферу что я описал. То что извращаться при написании программы можно мильеном Codavr(248 знак., 15.08.2014 12:05 - 12:13)
- да какой он глобальный, статиком объявляешь в модуле и все. Доступа напрямую нет только через функцию. еще будет нужна ф-я PutStoreData. abivan(70 знак., 15.08.2014 11:59)
- Букаф достаточно, но StoreData остается глобальным. Не вижу принципиальной разницы от того что я вот тут написал --> - Codavr(15.08.2014 11:40, ссылка)
- пожалуйста и только попробуйте сказать что слишком сложно и много букв :-) abivan(1233 знак., 15.08.2014 11:30)
- Как ей сказать что я хочу передать. Только не на пальцах, а прямо кодом пжалста, а то я половину того что мне тут народ на словах говорит понять не могу. Ну и дополнительно инфа для размышления, type1, 2 итд тоже могут быть структурами. Ну Codavr(133 знак., 15.08.2014 03:25)
- Заведи себе класс, в котором будут А и Б и функции, обеспечивающие к ним доступ. :-) - Мущщина(14.08.2014 16:57)
- Ндя. Не зря C++ придумали. А я все по подворотням да по подворотням :) - Codavr(14.08.2014 17:04)
- Как жаль, что ты не энтузиаст-лингвист :-) - SciFi(14.08.2014 17:09, ссылка)
- Ну можешь другой вариант, а ля протокласс, но на коленке. Структуру статическую и функции нестатические, обеспечивающие к ней доступ, в один файл. И штоб никого больше в нем не было. :-) - Мущщина(14.08.2014 17:09)
- Когда никого нет то и проблем нет. Она возникает когда кто-то открываает файл :) - Codavr(14.08.2014 17:13)
- Надо кодить так, чтобы у открывшего файл мгновенно возникло непреодолимое желание его закрыть -> - SciFi(14.08.2014 17:17, ссылка, ссылка)
- Вещь!!! - Codavr(14.08.2014 17:19)
- У меня такое желание уже второй день. - Codavr(14.08.2014 17:18)
- Надо кодить так, чтобы у открывшего файл мгновенно возникло непреодолимое желание его закрыть -> - SciFi(14.08.2014 17:17, ссылка, ссылка)
- Когда никого нет то и проблем нет. Она возникает когда кто-то открываает файл :) - Codavr(14.08.2014 17:13)
- Ндя. Не зря C++ придумали. А я все по подворотням да по подворотням :) - Codavr(14.08.2014 17:04)
- offset_of не подойдет? Вычисляет смещение от начала до указанного элемента структуры. - vmp(14.08.2014 16:01, ссылка)
- Возвращать указатель на void: SciFi(166 знак., 14.08.2014 15:49)
- select не нравится. Хочется имя элемента в параметре использовать, ибо структура будет в процессе разработки приблуды меняться, а хочется универсальности чтобы не лопатить каждый раз функцию. Поправил описание структуры и погнал дальше. - Codavr(14.08.2014 15:56 - 15:59)
- Ну тогда X macro. Обсасывалось уже -> - SciFi(14.08.2014 16:00, ссылка)
- Спасибо. Интересная фишка. Но как она может мне помочь что-то не соображу. - Codavr(14.08.2014 16:05)
- Я тоже не соображу, потому что непонятно, что надо :-) - SciFi(14.08.2014 16:08)
- Хочется локально в функции хранить статический экземпляр структуры, чтобы никто минуя функцию не залез в нее, все остальные имеют описание структуры и по этому описанию читают или пишут данные в эту структуру. - Codavr(14.08.2014 16:13)
- а объявить указатель на структуру константного типа? и лазить на чтение через него? - Mahagam(14.08.2014 20:57)
- Поясни пжалста, как это должно выглядеть. - Codavr(14.08.2014 22:55)
- Мало информации. Зачем это всё? Защита от госдепа? - SciFi(14.08.2014 16:19)
- От себя родного. От своих же косяков. Эстетствую. Некий универсальный интерфейс к данным :) - Codavr(14.08.2014 16:23)
- Универсальный, если данные разных типов, косяков отгребешь на порядок больше, чем отдельный указатель на структуру с модификатором const. Можешь этот указатель получать из функции. - Скрипач(14.08.2014 21:08)
- Поясни что имеется ввиду, а то я что-то нефтыкаю. - Codavr(14.08.2014 22:58)
- Ты запросил значение поля функцией, а кто проверит, что переменная, куда ты его хочешь получить, подходит по типу? Наверняка же из функции (void*) вернешь. Компилятор - не сможет. Какими ужасами чревато рассказывать? - Скрипач(14.08.2014 23:42 - 23:46)
- Программирование ваще чревато всякими ужасными вещами. Все опять же сводится к банальной задаче многокритериальной оптимизации. Возвращать я хотел опять же элемент структуры который попросил. Неужели я хочу так много? - Codavr(15.08.2014 01:34 - 01:36)
- Я бы поостерегся херить контроль типов. Ты многое недоговариваешь. Скрипач(648 знак., 15.08.2014 12:52 - 13:05)
- Да я уже кажется все что мог договорил. Ну разве что осталось добавить, что все это крутится под FreeRTOC и я хотел внутри функции учинить семафор чтобы не пострадала целостность данных при множественном доступе. Эта функция предполагалась некой Codavr(443 знак., 15.08.2014 20:53)
- Я бы, тогда, спрятал структуру полностью. Ввел бы абстрактные (define) индексы и обращался на чтение/запись по ним. - Скрипач(15.08.2014 20:59)
- Это как? - Codavr(15.08.2014 21:22)
- Отставить, занесло на повороте. У тебя там структуры, у меня просто список параметров. Максимум, неявно заданные группы. Еще мысль: Вычислять указатель поля и читать спец.процедурой. Вот так: Скрипач(292 знак., 15.08.2014 21:31 - 22:12)
- Ну так это примерно то же что я сейчас имею. Или предлагается для каждого элемента свою функцию городить ради проверки типа? А если мне надо вложенную структуру прочитать/записать. - Codavr(15.08.2014 21:34 - 21:37, ссылка)
- Функций нужно -
по числу основных типовтак, чтобы автоматическое приведение типов работало. Больше - нет смысла. - Скрипач(15.08.2014 21:58 - 16.08.2014 11:15)- А если структуру нужно передать? - Codavr(15.08.2014 22:06)
- Тебе функцию написать тяжело? Поверь это на много легче, чем искать, где ты во float положил int, через (void*) - Скрипач(15.08.2014 22:09)
- Ващета там функция получается неслабая и если на каждый основной тип и каждый определенный юзером тип писать еще одну получится нехилый такой чемодан. Одних имен функций надо напридумывать целую тележку. И весь этот гимор ради светлой идеи Codavr(36 знак., 15.08.2014 22:15)
- "Настоящую" функцию спрячь в обертки. Для сохранения проверки типов нужен только тип передаваемого параметра и тип результата. А лучше заставь юзера обращаться только к полям, а не "под-деревьям". - Скрипач(15.08.2014 22:20 - 22:37)
- Дык. Красоты охота! На костылях прыгать впадлу. - Codavr(15.08.2014 22:23)
- Главное - себя не обмани. Если отдаешь юзерам под-деревья - отдавай побайтовые копии. Если указатели - отдавай по базе "ноль" и пусть читают твоими функциями, А НЕ НАПРЯМУЮ :))) - Скрипач(15.08.2014 22:35)
- Ну так я и хотел чтобы общение исключительно через обертку. А идея насчет указателя по базе ноль мне понравилась. Codavr(117 знак., 15.08.2014 22:37 - 22:46)
- Ты хотел передать структуру, помнишь? Ты должен или передать указатель по базе ноль, или побайтовую копию в памяти. Иначе пустишь козла в огород :) - Скрипач(15.08.2014 22:41)
- Вот указатель по базе ноль меня оченно возбудил. - Codavr(15.08.2014 22:42)
- Я бы еще подумал о том, нет ли адресного фрагмента, который при обращении к нему генерирует прерывание :) Написал бы свой обработчик и... :)))) - Скрипач(15.08.2014 22:44)
- договаривай - Codavr(15.08.2014 22:47)
- СИРЕНУ БЫ ВКЛЮЧАЛ :о)))) Лучше включить сирену, чем отдать юзеру "флаг запуска баллистических ракет", из таблицы векторов прерываний :) - Скрипач(15.08.2014 22:50)
- Таблицу можно перенести :) - Codavr(15.08.2014 22:52)
- Главное - факт "чтения из подпространства" выявить. Жаль, в прерывание не передается "адрес-размер" вывалившейся команды чтения. Можно было бы обрабатывать запросы юзеров прямо в прерываниях :) - Скрипач(15.08.2014 22:54)
- Нет совершенства :) - Codavr(15.08.2014 23:16)
- Главное - факт "чтения из подпространства" выявить. Жаль, в прерывание не передается "адрес-размер" вывалившейся команды чтения. Можно было бы обрабатывать запросы юзеров прямо в прерываниях :) - Скрипач(15.08.2014 22:54)
- Таблицу можно перенести :) - Codavr(15.08.2014 22:52)
- СИРЕНУ БЫ ВКЛЮЧАЛ :о)))) Лучше включить сирену, чем отдать юзеру "флаг запуска баллистических ракет", из таблицы векторов прерываний :) - Скрипач(15.08.2014 22:50)
- договаривай - Codavr(15.08.2014 22:47)
- Я бы еще подумал о том, нет ли адресного фрагмента, который при обращении к нему генерирует прерывание :) Написал бы свой обработчик и... :)))) - Скрипач(15.08.2014 22:44)
- Вот указатель по базе ноль меня оченно возбудил. - Codavr(15.08.2014 22:42)
- Ты хотел передать структуру, помнишь? Ты должен или передать указатель по базе ноль, или побайтовую копию в памяти. Иначе пустишь козла в огород :) - Скрипач(15.08.2014 22:41)
- Ну так я и хотел чтобы общение исключительно через обертку. А идея насчет указателя по базе ноль мне понравилась. Codavr(117 знак., 15.08.2014 22:37 - 22:46)
- Главное - себя не обмани. Если отдаешь юзерам под-деревья - отдавай побайтовые копии. Если указатели - отдавай по базе "ноль" и пусть читают твоими функциями, А НЕ НАПРЯМУЮ :))) - Скрипач(15.08.2014 22:35)
- Дык. Красоты охота! На костылях прыгать впадлу. - Codavr(15.08.2014 22:23)
- "Настоящую" функцию спрячь в обертки. Для сохранения проверки типов нужен только тип передаваемого параметра и тип результата. А лучше заставь юзера обращаться только к полям, а не "под-деревьям". - Скрипач(15.08.2014 22:20 - 22:37)
- Ващета там функция получается неслабая и если на каждый основной тип и каждый определенный юзером тип писать еще одну получится нехилый такой чемодан. Одних имен функций надо напридумывать целую тележку. И весь этот гимор ради светлой идеи Codavr(36 знак., 15.08.2014 22:15)
- Тебе функцию написать тяжело? Поверь это на много легче, чем искать, где ты во float положил int, через (void*) - Скрипач(15.08.2014 22:09)
- А если структуру нужно передать? - Codavr(15.08.2014 22:06)
- Функций нужно -
- Можно на макроязыке делать определение структуры и генерить сишный код для работы с ней. - SciFi(15.08.2014 21:35)
- Нахватались хитростей. Рассказывай как. - Codavr(15.08.2014 21:38)
- Ну так это примерно то же что я сейчас имею. Или предлагается для каждого элемента свою функцию городить ради проверки типа? А если мне надо вложенную структуру прочитать/записать. - Codavr(15.08.2014 21:34 - 21:37, ссылка)
- Отставить, занесло на повороте. У тебя там структуры, у меня просто список параметров. Максимум, неявно заданные группы. Еще мысль: Вычислять указатель поля и читать спец.процедурой. Вот так: Скрипач(292 знак., 15.08.2014 21:31 - 22:12)
- Это как? - Codavr(15.08.2014 21:22)
- Я бы, тогда, спрятал структуру полностью. Ввел бы абстрактные (define) индексы и обращался на чтение/запись по ним. - Скрипач(15.08.2014 20:59)
- Да я уже кажется все что мог договорил. Ну разве что осталось добавить, что все это крутится под FreeRTOC и я хотел внутри функции учинить семафор чтобы не пострадала целостность данных при множественном доступе. Эта функция предполагалась некой Codavr(443 знак., 15.08.2014 20:53)
- Я бы поостерегся херить контроль типов. Ты многое недоговариваешь. Скрипач(648 знак., 15.08.2014 12:52 - 13:05)
- Программирование ваще чревато всякими ужасными вещами. Все опять же сводится к банальной задаче многокритериальной оптимизации. Возвращать я хотел опять же элемент структуры который попросил. Неужели я хочу так много? - Codavr(15.08.2014 01:34 - 01:36)
- Ты запросил значение поля функцией, а кто проверит, что переменная, куда ты его хочешь получить, подходит по типу? Наверняка же из функции (void*) вернешь. Компилятор - не сможет. Какими ужасами чревато рассказывать? - Скрипач(14.08.2014 23:42 - 23:46)
- Поясни что имеется ввиду, а то я что-то нефтыкаю. - Codavr(14.08.2014 22:58)
- Пуленепробиваемая версия на сях будет монструозная. Такшта советую снизить требования к программе и повысить требования к себе :-) Кстати, assert() иногда оч. помогает. - SciFi(14.08.2014 16:28)
- К себе не хочется ;) - Codavr(14.08.2014 16:31)
- Наверняка есть ещё новомодные языки, в которых это имееццо искаропки. - SciFi(14.08.2014 16:34)
- Нунах. Мне лень. Я не энтузиаст-лингвист. - Codavr(14.08.2014 16:35)
- На что только не идут люди, лишь бы С++ - не изучать(14.08.2014 19:56, )
- Первый раз я изучал С++ вместе с появлением Turbo C++ 3.1. Нефкурил. Второй раз когда вышла 95 винда. Ну тут уже пришлось поднапрячься. - Сodavr(14.08.2014 20:54 - 15.08.2014 04:01)
- На что только не идут люди, лишь бы С++ - не изучать(14.08.2014 19:56, )
- Нунах. Мне лень. Я не энтузиаст-лингвист. - Codavr(14.08.2014 16:35)
- Наверняка есть ещё новомодные языки, в которых это имееццо искаропки. - SciFi(14.08.2014 16:34)
- К себе не хочется ;) - Codavr(14.08.2014 16:31)
- Универсальный, если данные разных типов, косяков отгребешь на порядок больше, чем отдельный указатель на структуру с модификатором const. Можешь этот указатель получать из функции. - Скрипач(14.08.2014 21:08)
- От себя родного. От своих же косяков. Эстетствую. Некий универсальный интерфейс к данным :) - Codavr(14.08.2014 16:23)
- #define не подойдет? Структура правда будет глобальной. vmp(93 знак., 14.08.2014 16:18)
- Вот как раз от глобальности и хочу избавиться. Твой offset_of был бы очень кстати, но у меня структуры вложенные и вместо красоты получится дикое нагромождение :( - Codavr(14.08.2014 16:23)
- Ну так заменить в дефайне имя структуры на вызов функции, возвращающей указатель на структуру. - vmp(14.08.2014 16:28)
- Не понял Codavr(378 знак., 14.08.2014 16:32 - 16:42)
- В моем варианте нет прямого доступа к структуре (она статик "внутри") и сохранен контроль типов. - Скрипач(15.08.2014 21:38)
- Как вложенную структуру прочитать/записать? - Codavr(15.08.2014 21:40)
- Передаёшь полностью вычисленный адрес поля, по отношению к базовому адресу, равному нолю. Его можно прибавить к "спрятанному" базовому адресу и ву-а-ля :) - Скрипач(15.08.2014 21:45)
- Вы чо седни сговорились меня в глупости уличать? Покаж как это :) - Codavr(15.08.2014 21:49)
- Передаёшь полностью вычисленный адрес поля, по отношению к базовому адресу, равному нолю. Его можно прибавить к "спрятанному" базовому адресу и ву-а-ля :) - Скрипач(15.08.2014 21:45)
- Как вложенную структуру прочитать/записать? - Codavr(15.08.2014 21:40)
- В моем варианте нет прямого доступа к структуре (она статик "внутри") и сохранен контроль типов. - Скрипач(15.08.2014 21:38)
- Не понял Codavr(378 знак., 14.08.2014 16:32 - 16:42)
- Ну так заменить в дефайне имя структуры на вызов функции, возвращающей указатель на структуру. - vmp(14.08.2014 16:28)
- Вот как раз от глобальности и хочу избавиться. Твой offset_of был бы очень кстати, но у меня структуры вложенные и вместо красоты получится дикое нагромождение :( - Codavr(14.08.2014 16:23)
- а объявить указатель на структуру константного типа? и лазить на чтение через него? - Mahagam(14.08.2014 20:57)
- Хочется локально в функции хранить статический экземпляр структуры, чтобы никто минуя функцию не залез в нее, все остальные имеют описание структуры и по этому описанию читают или пишут данные в эту структуру. - Codavr(14.08.2014 16:13)
- Я тоже не соображу, потому что непонятно, что надо :-) - SciFi(14.08.2014 16:08)
- Спасибо. Интересная фишка. Но как она может мне помочь что-то не соображу. - Codavr(14.08.2014 16:05)
- Ну тогда X macro. Обсасывалось уже -> - SciFi(14.08.2014 16:00, ссылка)
- select не нравится. Хочется имя элемента в параметре использовать, ибо структура будет в процессе разработки приблуды меняться, а хочется универсальности чтобы не лопатить каждый раз функцию. Поправил описание структуры и погнал дальше. - Codavr(14.08.2014 15:56 - 15:59)