Кресты / Говнокод #15885 0 12345678910111213141516171819 cKeyCfg::types_t cConfiguration::SearchInType(string type) { CTint i = 0; const CTbyte * types[] = { "S", "D" }; for(i = 0; i < sizeof(types)/sizeof(types[0]); i++) { if ( strcmp(type.c_str(),types[i]) == 0) { switch (i) { case 0: // Is string return cKeyCfg::stringa; case 1: // Is decimal return cKeyCfg::decimale; default: //Default value VT_BSTR return cKeyCfg::unknow; } } } return cKeyCfg::unknow; } сделано на родине Fiat'а. Запостил: Dummy00001, 02.05.2014 (Updated 27.03.2018) Комментарии (6) RSS tirinox 12 лет ago # 0 М? Че не так? Расширяемо. Ответить Dummy00001 12 лет ago # 0 ⇈ намек: const struct { char *name; cKeyCfg::types_t type; } types[] = { { "S", cKeyCfg::stringa }, { "D", cKeyCfg::decimale }, }; а если еще и отсортировать, то еще можно и bsearch использовать, для случая если типов и на самом деле будет много. Ответить tirinox 12 лет ago # 0 ⇈ Да ладно перфекционировать. Меня вот только 0, 1, ... напрягли. Ответить WGH 12 лет ago # 0 ⇈ Перфекционизм - не перфекционизм, но отделение данных от логики всегда хорошо, даже если их будут отделять несколько строчек в пределах одной функции. Ответить Dummy00001 12 лет ago # 0 ⇈ подтормаживаете батенька. ыы еще раз гляньте на код: в теле цикла switch/case по индексу цикла. если бы писал не тормоз, даже по быстрой быструхе это было бы: if ("D") then decimal; else if ("S") then string; else unknown. Ответить tirinox 12 лет ago # 0 ⇈ Ок, уговорил. Ответить Добавить комментарий Отменить ответ Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю: А не использовать ли нам bbcode? [b]жирный[/b] — жирный [i]курсив[/i] — курсив [u]подчеркнутый[/u] — подчеркнутый [s]перечеркнутый[/s] — перечеркнутый [blink]мигающий[/blink] — мигающий [color=red]цвет[/color] — цвет (подробнее) [size=20]размер[/size] — размер (подробнее) [code=<language>]some code[/code] (подробнее)
Dummy00001 12 лет ago # 0 ⇈ намек: const struct { char *name; cKeyCfg::types_t type; } types[] = { { "S", cKeyCfg::stringa }, { "D", cKeyCfg::decimale }, }; а если еще и отсортировать, то еще можно и bsearch использовать, для случая если типов и на самом деле будет много. Ответить
WGH 12 лет ago # 0 ⇈ Перфекционизм - не перфекционизм, но отделение данных от логики всегда хорошо, даже если их будут отделять несколько строчек в пределах одной функции. Ответить
Dummy00001 12 лет ago # 0 ⇈ подтормаживаете батенька. ыы еще раз гляньте на код: в теле цикла switch/case по индексу цикла. если бы писал не тормоз, даже по быстрой быструхе это было бы: if ("D") then decimal; else if ("S") then string; else unknown. Ответить
а если еще и отсортировать, то еще можно и bsearch использовать, для случая если типов и на самом деле будет много.
если бы писал не тормоз, даже по быстрой быструхе это было бы: if ("D") then decimal; else if ("S") then string; else unknown.