forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_array2d - Динамический двухмерный массив (http://forum.boolean.name/showthread.php?t=6296)

odd 09.11.2013 19:15

Ответ: Lib_array2d - Динамический двухмерный массив
 
Вложений: 1
По просьбе пользователя RblSb библиотека была немного улучшена.
Добавлена возможность создания неограниченного числа массивов, а не только одного.

Добавлены 2 новые функции:
Arrays(i: integer) - Зарезервировать место под i массивов
SetArr(i: integer) - Выбрать массив номер i из массива массивов

Код примера, на котором проводилось тестирование:
Код:

Program array2d2test;
Uses array2d;
Var
s: String;
r: integer;
Begin
    arrays(3); // Резервируем место под 3 архива
    setarr(0); // Выбираем массив номер 0
    r:=dim(3, 3); // Создаем массив 3*3
    putint(2, 2, 1111); // Записываем число 1111 в массив
    setarr(1); // Выбираем массив номер 1
    r:=dim(5, 5); // Создаем массив 5*5
    putint(4, 4, 2222); // Записываем число 2222 в массив
    setarr(2); // Выбираем массив номер 3
    r:=dim(7, 7); // Создаем массив 7*7
    putint(6, 6, 3333); // Записываем число 3333 в массив
    setarr(0); // выбираем массив 0
    s:= '' + getint(2, 2); // считываем число
    setarr(1); // выбираем массив 1
    s:= s + ' ' + getint(4, 4); // считываем число
    setarr(2); // выбираем массив 2
    s:= s + ' ' + getint(6, 6); // считываем число
   
    DrawText(s, 0, 0); // выводим числа на дисплей
    Repaint;   
    Delay(5000);
End.


RblSb 14.11.2013 22:51

Ответ: Lib_array2d - Динамический двухмерный массив
 
odd, спасибо, теперь не нужно ломать голову как хранить координаты объектов на карте, ее слои и многое другое, как раз начал писать редактор карт :)
поддержка только числовых массивов? хотя мне другие и не нужны

RblSb 22.11.2013 20:56

Ответ: Lib_array2d - Динамический двухмерный массив
 
Вложений: 1
Если у вас не работает новая либа (на мобильниках), вот версия с ограничением в 10 массивов. Использовать также, только вызывать метод Arrays без аргументов

Igor 23.11.2013 01:31

Ответ: Lib_array2d - Динамический двухмерный массив
 
А я в паскале создавал модуль с большим одномерным массивом, а в местах, где использовал "массивы своего типа", хранил смещение относительно начала большого - его возвращала специальная функция. Основная проблема была в фрагментации после многократных созданий и удалений, но мне вроде не мешало.


Часовой пояс GMT +4, время: 10:14.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot