Главная страница
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.021 c
1-1176236761
Gringoire
2007-04-11 00:26
2007.06.10
Как через программу созданую в Delphi запустить другую программу?


1-1174323541
_artur
2007-03-19 19:59
2007.06.10
Сохранить TPersistent который часть TComponent


15-1179225601
7555545
2007-05-15 14:40
2007.06.10
Комп не включаеться!


2-1179418874
Skynet_
2007-05-17 20:21
2007.06.10
Двойной щелчек по выделенной строке в DBGride


15-1178961202
Пол
2007-05-12 13:13
2007.06.10
распределение нагрузки.