antarey Опубликовано 30 июля, 2014 Поделиться Опубликовано 30 июля, 2014 Возможно ли вообще такое: создать условие динамически и как ? знак условия && или || подставить как переменную? Задача какая - выполнить определенное действие - берется из базы, к примеру запустить программу, в зависимости от определенных условий - тоже из базы, к примеру надо проверить значение ветки реестра и наличие файла/каталога , - то есть надо в динамике создать условие типа такого if (reg->ValueExists("......") переменная условия FileExists(".......") переменная условия ...... ) ну и желательно выполнить . Или может есть какой то другой вариант выполнения задачи Заранее благодарен Цитата Ссылка на комментарий
Tarik02 Опубликовано 20 декабря, 2014 Поделиться Опубликовано 20 декабря, 2014 Условие хранить в переменной НЕВОЗМОЖНО я бы рекомендовал: 1. Формировать строку с условиями, например такую: "1||0&&0". 2. Использовать конечный автомат, который будет анализировать эту строку и возвращать результат в виде 1 или 0. Я могу сделать этот конечный автомат бесплатно. Делать? И язык какой? C++? Brovin Yaroslav 1 Цитата Ссылка на комментарий
antarey Опубликовано 23 декабря, 2014 Автор Поделиться Опубликовано 23 декабря, 2014 Да конечно, думаю полезно будет не только мне. Заранее спасибо. ПС - язык С++ Цитата Ссылка на комментарий
Tarik02 Опубликовано 23 декабря, 2014 Поделиться Опубликовано 23 декабря, 2014 Функция: bool BigIf(String Str) { while (Str.Length() > 2) { if (((Str[1] == '0') || (Str[1] == '1')) && ((Str[3] == '0') || (Str[3] == '1'))) { if (Str[2] == '|') { Str.Insert(((Str[1] == '1') || (Str[3] == '1')) ? 1 : 0,1); Str.Delete(2,3); } else if (Str[2] == '&') { Str.Insert(((Str[1] == '1') && (Str[3] == '1')) ? 1 : 0,1); Str.Delete(2,3); }; ShowMessage(Str); } else { // Здесь ошибка, неправильный формат условия }; }; return Str[1] == '1'; }; И примеры использования: bool Result; Result = BigIf("1&0"); // true && false Result = BigIf("1|0"); // true || false Result = BigIf("1&0|1"); // true && false || true Result = BigIf("1&0|0"); // true && false || false Цитата Ссылка на комментарий
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.