Динамический string/integer массив для FTCG:
ft_array.rar
Снято ограничение на размер массива.
Добавлены точки doAdd(добавить запись в конец массива), и doSetLength(установить размер массива)
В архиве массив, и элемент записи к нему.
Для чтения используйте стандартный ArrayRead.
Благодарность: 1nd1g0
---------------------------------------------------------------------------------------------------
Новая версия:
Добавлена точка doClear.
ft_array_2.rar
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
|
|||
карма: 0 |
| ||
файлы: 2 | ft_array.rar [3KB] [251], ft_array_2.rar [2.7KB] [275] |
Ответов: 3889
Рейтинг: 362
|
|||
login,
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
1nd1g0, High(',Array,') это функция, она работает медленнее чем разность, я ее специально не взял, потому, что у меня уже есть ее значение.
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): она работает медленнее чем разность
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Прикольно
со скобками работает:
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): со скобками работаетДа, пардон, забыл, что это не ассемблер, тут это как процедура оформлено, но, если не ошибаюсь, компилируется в прямой код, без ветвлений. |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Я уже мечтаю сделать array of array, там в FTCG с ним есть сложности.
И тогда добавлю сюда. ------------ Дoбавленo в 10.24: 1nd1g0, если я очищаю массив как "SetLength = 0", физическая память освобождается? Или надо как-то иначе очищать массив? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): если я очищаю массив как "SetLength = 0", физическая память освобождается? Или надо как-то иначе очищать массив?Если Вы говорите о менеджере памяти самого приложения, то - да, AFAIK, он сможет выделить память из-под освободившегося ("хвоста") массива под другие нужды, когда её будет не хватать в других местах. Если же речь о операционной системе, то на массив остаётся ссылка, скорее всего, сегмент будет закреплён за приложением и, максимум, будет выгружен в файл подкачки при распределении памяти на уровне ОС. Полное уничтожение массива и памяти из-под него, полагаю, произойдёт только если на него далее не будет ссылок и ему присвоят nil, или применят Finalize(массив). Проверить пока не могу. |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
ок, значит пока сделаю точку "doNill"
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): сделаю точку "doNill"Проверьте, а не начнёт ли вылетать программа при попытке обратиться к аннигилированному массиву. ------------ Дoбавленo в 12.40: Сам проверил - начнёт. Так что либо проверки, замедляющие операции с массивом, либо очередной потенциально не "защищённый от дурака" элемент. |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Попробовал. Nill - невозможно присвоить массиву Integer.
Но когда массиву integer присваиваю 0, и пытаюсь прочитать, прога слетает. |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): Nill - невозможно присвоить массиву IntegerNill может и нельзя, а nil у меня присваивается точно, массив удаляется полностью, указатель становится недействительным. ------------ Дoбавленo в 17.45: 1nd1g0 писал(а): Finalize(массив). Проверить пока не могуПроверил, Finalize бесполезно ибо не компилируется для массивов, то есть является пустышкой. |
|||
карма: 1 |
|
12