Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Вывести массив чисел в Memo самым быстрым способом.   Найти похожие ветки 

 
Dwed   (2007-05-11 22:25) [0]

Есть массив чисел - a: array[1..size] of integer; Нужно вывести его в Memo.

Я делаю так:
for i:=1 to size do Memo1.text:=memo1.text+IntToStr(a[i]);

Мне кажется, что это слишком медленно, так как приходится изменять size раз длину текста в Memo.
Предложите, пожалуйста, более эффективный вариант.
Заранее благодарен!


 
ferr ©   (2007-05-11 22:30) [1]

Это крайне неэффективно. Сначала желательно загнать в TStringList а потом уже в Memo, причём в StringList гнать через Add(). Но это тоже не очень эффективный способ если нужно дальнейшее повышение производительности то надо смотерть в сторону StringBuilder"ов.


 
palva ©   (2007-05-11 22:31) [2]

Я бы написал так
Memo1.Lines.Add(a[i])

> приходится изменять size раз длину текста
text это не переменная типа строка а свойство. Поэтому говорить об изменении ее длины довольно смело. Чтобы понять, что произойдет на самом деле лучше почитать исходники.


 
homm ©   (2007-05-11 22:32) [3]

Выделяй память под результирующую строку сразу, добавляя порциями по мере необходимости. И только потом ее присваивай Memo1.text.


 
Anatoly Podgoretsky ©   (2007-05-12 15:44) [4]

> Dwed  (11.05.2007 22:25:00)  [0]

Не только медленно, но и практически не применимо, поскольку для разделения на числа никакого интеллекта не хватит, при условии что числа разной длины в текстовом представлении


 
Real ©   (2007-05-13 02:22) [5]


> Выделяй память под результирующую строку сразу

Зачем выделять, когда string выделяет под себя память автоматом


 
homm ©   (2007-05-13 13:28) [6]

> Зачем выделять, когда string выделяет под себя память автоматом

Сабж читал? Все слова или через одно?



Страницы: 1 вся ветка

Текущий архив: 2007.06.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1179738965
Loonar
2007-05-21 13:16
2007.06.10
Как сгенерировать случайнй знак (*,/,+,-)


2-1179768573
NewZ
2007-05-21 21:29
2007.06.10
Эквалайзер!!!


3-1174464801
nick_van_rijn
2007-03-21 11:13
2007.06.10
тормоза при исполнении множественных запросов


2-1179568130
masha1
2007-05-19 13:48
2007.06.10
perenos proqrammi na druqoy kompyuter


2-1179799348
unnamed777
2007-05-22 06:02
2007.06.10
как убить процесс??