Подскажите, пожалуйста, как в HiAsm, лучше всего, реализовать программу, в которой нужно работать массивами-массивов строк?
Вроде это называется "многомерные массивы".
Базы данных не подойдут.
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): нужно работать массивами-массивов строкlogin писал(а): Базы данных не подойдут.Не пойдут потому, что Вы не умеете с ними работать, или есть другие объективные причины? И как Вы это себе представляете, папка текстовых файлов или динамический контейнер со списком строк внутри? Кстати, динамические контейнеры можно вкладывать друг в друга. login писал(а): Вроде это называется "многомерные массивы".Многомерные массивы тут называются матрицами. Строки там тоже поддерживаются. К некоторым визуальным элементам типа StringTable тоже можно обращаться как к матрице. |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Процесс такой.
В музыкальной программе есть массив треков, в каждом треке есть массив секвенций, в каждой секвенции есть массив нот. Надо иметь возможность работать с массивом нот определенной секвенции (менять размер массива, выборочно ноты) при этом скорость работы нужна где-то на уровне стантартной работы с элементом StrList + ArrayRw. Вот пока не могу понять на чем это построить. ------------ Дoбавленo в 20.19: 1nd1g0, пока не могу понять, как сделать такую вложенность массивов при помощи матрицы. |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Ясно, что-то подобное паттерновому трекеру. У Вас древовидная структура, многомерным массивом называть несколько не корректно. Базы данных в ОЗУ дадут вполне приемлимую скорость ибо в ряд ли у Вас секвенции (а именно на их уровне можно обращаться к БД, храня либо многострочные записи, либо строки с разделителем - их содержимое) чаще 14 такта считываются.
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
1nd1g0, да не чаще. Ок, а какую базу данных взять?
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): а какую базу данных взять?Да у Вас выбор-то не велик, либо SQLite, либо что-то изображать самостоятельно (не поднимать же сервера БД ради трекера). Для Ваших задач даже скорости файловой системы может хватить, папки и файлы использовать. Про скорость со вложенными динамическими контейнерами не скажу, до этого момента ни разу не доводилось проверять. Равно как MT-массивы не были пока нужны. |
|||
карма: 1 |
| ||
Голосовали: | login |
Ответов: 1429
Рейтинг: 50
|
|||
Буду пробовать. Спасибо!
|
|||
карма: 0 |
|
Ответов: 4641
Рейтинг: 334
|
|||
login писал(а): массивами-массивов строк?а если представить вот так.... то получится массив в массиве?? code_25223.txt |
|||
карма: 1 |
| ||
файлы: 1 | code_25223.txt [893B] [153] |
Ответов: 1429
Рейтинг: 50
|
|||
Ravilr, да, так тоже, вроде, будет работать, но только наверное не получится динамически расширять эту структуру. Она будет фиксированной.
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Своего рода "массив в массиве" - массивы MT-потоков(MT_MTArray). Но с этим на практике пока не приходилось работать, тут вне конкуренции nesco, полагаю.
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
login, крамольная мысль - IC
А из БД- вроде SQLite по быстродействию одна из первых. |
|||
карма: 25 |
|
Ответов: 1429
Рейтинг: 50
|
|||
1nd1g0, я попробовал MT, но насколько я понял, там один уровень влоденности, а мне надо, минимум, два.
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): там один уровень влоденности, а мне надо, минимум, два.Динамический контейнер, в который вложен массив MT-потоков? |
|||
карма: 1 |
|
Ответов: 8961
Рейтинг: 824
|
|||
1nd1g0, заранее приготовте с Tad-ом некоторое количество ответов по SQLite
![]() login, а какова максимальная размерность Ваших массивов треков, секвенций, нот ![]() ![]() |
|||
карма: 19 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 3 раз(а), последний 2025-02-25 18:48:33 |
|||
карма: 0 |
|