| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > AnsiString, "+=" и Memo... тормоза! |
| Автор: BreakPointMAN 11.9.2005, 19:31 | ||
Трабла такая... программно нужно сформировать текст и поместить его в Memo... как сие организовать с наименьшими тормозами? Код представляет собой грубо упрощенно такой цикл:
с каждой итерацией тормозит все сильнее и сильнее... |
| Автор: BreakPointMAN 11.9.2005, 19:45 | ||
ну ясен хрен... а что же я хотел... итак накладных расходов на постоянное увелечени строки, так еще... мдя...
|
| Автор: JackYF 12.9.2005, 23:28 |
| лучше сформируй char* массив: запомни начальную позицию, а потом с каждой итерацией указатель инкрементируй на какое-то число (какое-решай сам). Добавление организуй строковыми функциями, а затем восстанови указатель и переведи потом в AnsiString. Если не очень понятно, могу (потом) написать поподробнее... |
| Автор: JackYF 12.9.2005, 23:55 | ||
Все, дошел до решения:
Вроде все работает. У меня (Athlon 2500+) -- около секунды. Устраивает? Добавлено @ 00:04 Пардон, у тебя второй текст программы - то же самое... Извиняюсь... Только никак не могу понять - чем же принципиально отличаются твои 2 варианта? |
| Автор: Mayk 13.9.2005, 06:24 | ||||
Я б sprintf использовал. Чтоб сразу в t строку писать числа:
Кстати, в примере JackYF вместо strcat'а надо использовать strcpy. Иначе ой - массив то не занулен, и в любой момент времени в t содержится любой содержимое. К которому strcat и будет прибавлять. |