- 1
- 2
- 3
- 4
- 5
- 6
- 7
extern QString code2text(unsigned long code)
{
if (code == 0) return QString::fromUtf8("Операция успешно завершена");
if (code == 1) return QString::fromUtf8("Неверная функция");
//over 3400 строк
return QString("%1").arg(code);
}
Dummy00001 07.01.2015 21:52 # 0
и еще один массив для кэширования QString'ов?
kin63camapa 07.01.2015 21:59 # 0
Xom94ok 07.01.2015 22:05 # +3
Dummy00001 07.01.2015 22:20 # +3
и массивов не знают, и доку найти не могут.
http://imgur.com/gallery/NRgQUrx
kin63camapa 07.01.2015 22:44 # 0
зы массивы знаю, притом считаю что хорошо.
Xom94ok 07.01.2015 23:50 # 0
hack2root 09.01.2015 23:58 # 0
Dummy00001 07.01.2015 22:16 # 0
детский сад, какой-то.
пихаешь все литералы в массив. массив индексируется уже существующим кодом.
берешь по коду нужную строку из массива и передаешь ее параметром QString::fromUtf8().
что бы зазря постоянно не конвертить литералы в QString'и, заводишь еще один массив указателей на QString'и и пользуешься им как кэшем: если указатель не нул, то возвращаешь копию уже существующего QString'а. иначе создаешь новый QString сохраняешь, его в кэше.
kin63camapa 07.01.2015 22:37 # −4
Xom94ok 08.01.2015 00:10 # +1
Ну, предположим, что кодов ошибок не 3500, а около 16000. Пусть описание каждой занимает 500 байт, это около 8 мегабайт дискового пространства, которые могут даже не быть загружены в оперативную память при запуске приложения. 8 мегабайт - это много или мало? Учитывая то, что ты уже пользуешься Qt, это - пшик, просто посмотри, сколько весят QtCore + QtGui + QtWidgets и не забудь к этому прибавить двойную буферизацию окошек.
kin63camapa 08.01.2015 13:39 # −1
bormand 08.01.2015 08:23 # +1
А твой свич где хранит строки? :) В той самой оперативе.
kin63camapa 08.01.2015 13:31 # −1
bormand 08.01.2015 15:35 # 0
Dummy00001 08.01.2015 11:30 # +1
но жесткие диски - да.
уже как 3 десятилетия, на всех системах с виртуальной памятью, экзешники никогда полностью в память не грузятся. грузятся постранично, по первому обращению.
kin63camapa 07.01.2015 22:08 # 0
kin63camapa 07.01.2015 22:53 # 0
kin63camapa 07.01.2015 23:15 # 0
Xom94ok 08.01.2015 00:12 # 0
Dummy00001 08.01.2015 11:37 # 0
http://stackoverflow.com/questions/12715646/how-to-use-formatmessage-c-for-getting-english-only-messages
guest 09.01.2015 00:05 # 0
gost 09.01.2015 00:22 # 0
bormand 09.01.2015 08:35 # 0
guest 09.01.2015 10:07 # +1
bormand 09.01.2015 10:40 # 0
guest 09.01.2015 10:41 # 0
sysctl 09.01.2015 19:08 # 0
guest 09.01.2015 22:51 # +3
Видимо автора таки настигла рука возмездия
guest 09.01.2015 22:52 # 0
bormand 09.01.2015 23:04 # +1
kin63camapa 03.02.2015 19:33 # 0