|
|
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 06:43:08 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
ну примерно так хотя и не буду утверждать ;-) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 10:43:59 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
создать вспомогательный (индексный) массив номеров строк, отсортированный по ID aInd(). Назовём исходный массив aVal(). результат = Сборка_строки(Num) Sub Сборка_строки(Num) as String ID = aVal(Num).ID n = двоичным поиском в индексном массиве находим первый ID Сборка_строки = Сборка_строки & aVal(Num).Str Do While aInd(n).ID = ID 'перечисляем все позиции с тем же ID и рекурсивно собираем подстроки Сборка_строки = Сборка_строки & Сборка_строки(aInd(n).Num) n = n+1 Loop End Sub В общем как то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 10:49:14 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
To marvan Не совсем разобрался в предложенном решении, но в нем нет привязки подстроки к "родителю". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 12:45:18 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
нет привязки подстроки к "родителю". предложенный мой способ собирает строку начиная с указанного номера. этот номер по сути и является предком. Вполне может быть, что что то упущено, но суть неизменна - лучше использовать рекурсивный алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 15:12:40 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
То marvan В подстроке может быть несколько вложенных предков. В первом посте они показаны. Как их определить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 15:58:25 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Может закрыть топик, чтобы в почту всякая пакость не падала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 16:47:28 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Вру, это уже не у нас на форуме. Придется Магнуса просить :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 16:49:49 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
for i=1 to ubound(arr) if i=1 then arr(i).level=0 else arr(i).level=arr(arr(i).ID).level+1 endif next где arr(i).level - еще одно поле структуры, из объектов которой состоит массив. И потом: for i=1 to ubound(arr) print string(arr(i).level, chr(9)) & ... next ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 16:52:26 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
GeoМожет закрыть топик, чтобы в почту всякая пакость не падала? Закрытие топика не спасает от сообщений модератору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 16:53:20 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч, спасибо! Буду пробовать. То Geo, гео: Злые вы, уйду я от вас! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 18:03:48 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
От меня можешь не уходить, я уже фильтр настроил Так что продолжай стучать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 19:13:18 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Похоже у вас древовидная структура. И поле ID выполняет функцию Prent_ID. Если так, то работают с такими данными используя рекурсивные алгоритмы. Уточняющий вопрос: Как надо представить полученные (в случае успешного ответа на вопрос) данные? В виде массива - "веточки"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 21:30:48 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
То Worobjoff Вы правильно предположили про Parent_ID. И данные нужно получить в виде вложенных массивов. То Владимир Саныч Мне кажется, что предложенное решение не учитывает уменьшение ID (строка 7 примера). То Лох Позорный Чем не угодил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 22:22:32 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Реализовал вашу задачу с помощью синтетического рекордсета (может подойдет) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. Хотя доработать придется. Например надо "сбрасывать" rs2 перед вызвом и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 22:52:51 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Sergey_NewТо Владимир Саныч Мне кажется, что предложенное решение не учитывает уменьшение ID (строка 7 примера). Не могу сообразить, надо попробовать. Sergey_NewТо Лох Позорный Чем не угодил? Рассылкой спама. Кстати, и мне тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2005, 23:56:11 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч: авторРассылкой спама. Кстати, и мне тоже. А как попал спам? Я только прибег к помощи "Сообщить модератору" на форуме. Это что, запрещено? В любом случае, прошу прощения за доставленное неудобство! То Worobjoff Спасибо! Буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 07:12:06 |
|
||
|
Пркобразование массива
|
|||
|---|---|---|---|
|
#18+
Sergey_NewА как попал спам? Я только прибег к помощи "Сообщить модератору" на форуме. Это что, запрещено? Это сообщение модератору разослало всем модераторам Аксесса жалобу на меня. Оно для этого предназначено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 11:24:37 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32915296&tid=2168221]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
21ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 275ms |

| 0 / 0 |
