Вверх ↑
Этот топик читают: Гость
Ответов: 3889
Рейтинг: 362
#46: 2011-10-07 14:54:33 ЛС | профиль | цитата
login писал(а):
ar2[0] := array1;
ar2[1] := array2;
ar2[2] := array3;

Если array1-3 одномерные: ar2[0]:=Copy(array1,индекс_начала,индекс_конца)
------------ Дoбавленo в 14.54:
nesco писал(а):
Что-то нелады у FPC с выделением памяти

Я сперва думал, что от того, что кое-кто объявляет массив размерностью по каждому измерению 4, а индексы указывает с 0 по 4 , то есть 5 элементов вместо 4-х.
карма: 1

1
Голосовали:login
Ответов: 1429
Рейтинг: 50
#47: 2011-10-07 14:56:52 ЛС | профиль | цитата
1nd1g, отлично!

А если:

login писал(а):
ar2[0,0] := array1;
ar2[0,1] := array2;
ar2[0,2] := array3;

То ar2[0,1]:=Copy(array1,индекс_начала,индекс_конца)?

И соответственно, вопрос, а если array1-3 многомерные?
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#48: 2011-10-07 14:57:53 ЛС | профиль | цитата
compfpc1.png
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1compfpc1.png [35.5KB] [283]
Ответов: 3889
Рейтинг: 362
#49: 2011-10-07 15:02:30 ЛС | профиль | цитата
login писал(а):
ar2[0,0] := array1;
ar2[0,1] := array2;
ar2[0,2] := array3;

Это вы описываете случай type arr = Array of Array of Array
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#50: 2011-10-07 15:06:37 ЛС | профиль | цитата
Tad, я же ясно написал
nesco писал(а):
Пример работает под FPC, но... через раз -- то слетает, то нормально показывает

карма: 22

0
Ответов: 1429
Рейтинг: 50
#51: 2011-10-07 15:07:22 ЛС | профиль | цитата
1nd1g0, а я могу менять тип массива на ходу?
Был Array of Array а стал Array of Array of Array of Array ..., или надо создавать отдельный массив, и потом в него заливать из прежнего масива?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#52: 2011-10-07 15:11:20 ЛС | профиль | цитата
login писал(а):
менять тп массива на ходу

А конвертировать он бы стал по каким законам?
login писал(а):
надо создавать отдельный массив
Отрезание (Slice) в расчёт сейчас брать не будем, оно имеет специфичное применение.
карма: 1

0
Ответов: 1429
Рейтинг: 50
#53: 2011-10-07 15:18:02 ЛС | профиль | цитата
ОО!! а Slice интересная функция, судя по кривому переводу гугла, она "создает суб-массив из первых элементов массва, SourceArray". Это может упростить вышеописанное "перепаковывание" массивов.
карма: 0

0
Ответов: 3889
Рейтинг: 362
#54: 2011-10-07 15:27:34 ЛС | профиль | цитата
login писал(а):
Slice интересная функция

Грубо говоря, это не самостоятельная функция, а модификатор аргумента, используется только при вызове функций и процедур, в качестве их аргумента вида вызываемая_процедура(Slice(исходный_массив,число_элементов_с_начального_которые_передаём_как_параметр_в_нашу_процедуру)).

Пользуйтесь Copy и не отвлекайтесь
карма: 1

0
Ответов: 1429
Рейтинг: 50
#55: 2011-10-08 05:29:32 ЛС | профиль | цитата
1nd1g0, да, вроде бы, понял. Спасибо.
------------ Дoбавленo в 05.29:
Блин, я понял почему так долго не мог врубиться.
Оказалось, что в делфи нет ассоциативных массивов

#pas
ar2['фрукт']['апельсин'] := 0;
ar2['фрукт']['мандарин'] := 1;
ar2['овощ']['капуста'] := 3;
карма: 0

0
Ответов: 3889
Рейтинг: 362
#56: 2011-10-08 10:12:06 ЛС | профиль | цитата
login писал(а):
в делфи нет ассоциативных массивов

Во-первых, зависит от версии, в последних есть тот же [burl=http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Contnrs.html]TBucketList[/burl]. Во-вторых, сторонних реализаций масса:
[burl=http://fundementals.sourceforge.net/cDictionaries.html]Одна из самых быстрых[/burl]
[burl=http://gurin.tomsknet.ru/delphidecal.html]Одна из самых документированных[/burl]
карма: 1

0
Ответов: 3349
Рейтинг: 233
#57: 2011-10-08 10:34:37 ЛС | профиль | цитата
login писал(а):
Оказалось, что в делфи нет ассоциативных массивов

Интересно, но мне не разу они не понадобились.
1nd1g0 писал(а):
Во-вторых, сторонних реализаций масса:

Компоненты на вкладке "Типы" чем то напоминают ассоциативные массивы
------------ Дoбавленo в 10.34:
login писал(а):
Оказалось, что в делфи нет ассоциативных массивов

Интересно, но мне не разу они не понадобились.
1nd1g0 писал(а):
Во-вторых, сторонних реализаций масса:

Компоненты на вкладке "Типы" чем то напоминают ассоциативные массивы
карма: 1

0
Ответов: 1429
Рейтинг: 50
#58: 2011-10-08 11:12:00 ЛС | профиль | цитата
А, понял. "Ни разу не понадобились".

Ivann, А я вот кроме них ничего более подходящего по скорости придумать не могу. Если даже читать нотки из массивов StrList без обработки, и заталкивать в контейнер FTCG без преобразования типов, то только на это будет уходить 240 мкс. А у меня всего 500 мкс. На обработку времени и не остается. Зато я сделал тест с новым FTCG массивом, тот же обьем копируется 2-3 мкс.

1nd1g0, это слишком сложно для меня, я могу только на уровне "фруктов и апельсинов", не сложнее.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#59: 2011-10-08 12:05:46 ЛС | профиль | цитата
login писал(а):
Оказалось, что в делфи нет ассоциативных массивов

Википедия писал(а):
Ассоциативный массив — абстрактный тип данных (интерфейс к хранилищу данных), позволяющий хранить пары вида «(ключ, значение)» и поддерживающий операции добавления пары, а также поиска и удаления пары по ключу:
INSERT(ключ, значение)
FIND(ключ)
REMOVE(ключ)
Предполагается, что ассоциативный массив не может хранить две пары с одинаковыми ключами

HiAsm -> StrList, ListBox, StringTable, любая БД
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1429
Рейтинг: 50
#60: 2011-10-08 13:33:19 ЛС | профиль | цитата
Tad, StrList, ListBox, StringTable, любая БД, я проверил их все.

Буфер 500 мкс:
StrList, ListBox, StringTable, = 240 мкс. Много, это аж половина времни.
SqLite = счет идет в миллисекундах..
FTCG array of array of array = 2-3 мкс. Остановился на них.


------------ Дoбавленo в 13.33:
Помогите, не могу побороть:

Пишу функцию чтения:

#hws
func doRead()
println(a, ' := ',Array,'[0,0];')
event(onRead, a)
end

А в код выводит _hi_onEvent без переменной "a", хотя он ее видит, и печатает в первую строку:

#pas
a2 := arr3[0,0];
_hi_onEvent(THIFTCG_Tools(FParent).Events[0]);
end;
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)