Изведете масив от числа в Memo по най-бързия начин
Има масив от числа - a: array[1..size] of integer; Трябва да го покажете в Memo.
Правя следното: за i:=1 за размер направете Memo1.text:=memo1.text+IntToStr(a[i]);
Струва ми се, че това е твърде бавно, тъй като трябва да промените размера, умножен по дължината на текста в бележката. Моля, предложете по-ефективна опция. Благодаря предварително!
Това е изключително неефективно. Първо, желателно е да влезете в TStringList и след това в Memo и да влезете в StringList чрез Add (). Но това също не е много ефективен начин, ако имате нужда от допълнително увеличение на производителността, тогава трябва да погледнете към StringBuilder "s.
Бих написал така Memo1.Lines.Add(a[i])
> трябва да промените размера, умножен по дължината на текста текстът не е низова променлива, а свойство. Ето защо е доста смело да се говори за промяна на дължината му. За да разберете какво всъщност ще се случи, е по-добре да прочетете изходния код.
Разпределете памет за резултантния низ наведнъж, добавяйки на части, ако е необходимо. И едва тогава го присвоете на Memo1.text.
Не само бавно, но практически неприложимо, тъй като никаква интелигентност не е достатъчна за разделяне на числа, при условие че числата са с различна дължина в текстовото представяне
> Разпределете памет за получения низ веднагаЗащо да разпределяте, когато низът разпределя памет за себе си автоматично
> Защо да разпределяте, когато низът заделя памет за себе си автоматичноSubzh read? Всички думи или чрез една?