![]() |
eXeL@B —› Программирование —› Реализация коллекции на асме |
Посл.ответ | Сообщение |
|
Создано: 21 июня 2007 17:54 · Поправил: LKS128 · Личное сообщение · #1 При написании проги появилась нодобность реализации коллекции(из-за активного контента) типа словарь. Вся проблема в том, что значение ключа может быть одним из 4 типов: строка, число, список и словарь(в который вложен ещё один). Как же мне это реализовать? Не так-же, ведь: sLen equ 254 lLen equ 15 dLen equ 15 str db sLen dup(' '), 0 int dd 0 list db lLen dup(sLen dup(' '), 0) dict db dLen dup(sLen dup(' '),0, 0, 0,0,0,0,0,0,0,0, lLen dup(sLen dup(' '), 0),... ;а как быть со вложенным словарём? ;1) [str] ... value ;2) [int] ... value ;3) [list+(sLen+1)*index] ... value of index ;4) [dict+(sLen+1)*index+(sLen+1)*(2+lLen)*index] ... key name ;5) [dict+(sLen+1)*index+(sLen+1)*(2+lLen)*index+sLen+1] ... type index ;6) [dict+(sLen+1)*index+(sLen+1)*(2+lLen)*index+sLen+1+1] ... str value ;7) [dict+(sLen+1)*index+(sLen+1)*(2+lLen)*index+(sLen+1)*2] ... int value ;8) [dict+(sLen+1)*index+(sLen+1)*(2+lLen)*index+(sLen+1)*2+8] ... list start (see #3) ;9) [dict+(sLen+1)*index+(sLen+1)*(2+lLen)*index+(sLen+1)*(2+lLen)] ... dictionary start ![]() |
|
Создано: 21 июня 2007 18:22 · Личное сообщение · #2 не например ничего не понятно ) LKS128 пишет: реализации коллекции(из-за активного контента) типа словарь подробнее опиши структуру, форматы, как храниться будет, что за контент, что это за тип "словарь")) и т.д. LKS128 пишет: значение ключа может быть одним из 4 типов какого ключа? LKS128 пишет: список что за список? массив т.е.? LKS128 пишет: словарь я правильно понял - это должен быть указатель на словарь? да и последнее.... я ниразу не встречал прогу, которая работала бы с большими объемами данных, обрабатывали бы их в красивом, удобном интерфейсе и всё такое.. но при этом была написана на ассемблере..... не проще построить базу данных? ----- radio uno in ibisa ... ![]() |
|
Создано: 21 июня 2007 18:50 · Поправил: LKS128 · Личное сообщение · #3 > какого ключа? Словарь - это своего рода таблица состоящая из ключа и значения(key/value). Я имел ввиду значение value. > что за список? массив т.е.? да, получается так > подробнее опиши структуру, форматы выходит так: values db 15 dup(value) vlaue struct ;'kv' - Key/Value pair key db sLen, 0 ; типа ключ(уникалюное имя группы) valuetype db 0; тип хранимого значения 0 - число, 1 - строка, 2 - список(массив), 3 - словарь ival dd 0 sval db sLen dup(' '), 0 lval db lLen dup(sLen dup(' '), 0) dval dd 0 ; ... value ends ;;;; в данный момент это модуль декодера строки с данными(что-то очень похожее на .торрент) во время декодеровки в values будут добавлятсч значения, а потом использоваться прогой возможно стоит потом написать специальные процедуры извлечения значений ![]() |
|
Создано: 21 июня 2007 19:15 · Личное сообщение · #4 |
|
Создано: 21 июня 2007 19:48 · Поправил: LKS128 · Личное сообщение · #5 |
|
Создано: 22 июня 2007 02:42 · Личное сообщение · #6 |
|
Создано: 22 июня 2007 18:14 · Личное сообщение · #7 |
![]() |
eXeL@B —› Программирование —› Реализация коллекции на асме |