|
|
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Bellic, Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 16:35 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Чёрт, совсем забыл :) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 16:44 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, спасибо большое!!! Догадывался, что мою мазню "перекодировки" с двумя байтами можно как то более элегантней реализовать!))) Возможно это даже не единственный вариант.. Надеюсь нули не отбрасывает, ибо они есть немаловажная часть получаемых строк!? Вечером попробую на ХЕ и подопытных кроликах!))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 16:46 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Только как это поможет искать в другом массиве ??? Если другой массив имеет мб другую последовательность байт, а не ту - которую уже тут навыдумывали. ТС кстати похоже и сам не знает что там за последовательность байт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 19:23 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
НяшикТС кстати похоже и сам не знает что там за последовательность байтИ это основная проблема Bellic в данном топике. Все эти копания в сорцах - бессмысленны, пока ТС не поймет что ему нужно сделать. В деталях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 19:36 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
НяшикТолько как это поможет искать в другом массиве ??? Если другой массив имеет мб другую последовательность байт, а не ту - которую уже тут навыдумывали. ТС кстати похоже и сам не знает что там за последовательность байт rgreatИ это основная проблема Bellic в данном топике. Все эти копания в сорцах - бессмысленны, пока ТС не поймет что ему нужно сделать. В деталях. Зачем же так? Программа собственно уже была написана мной и выполняла свою функцию, просто несколько неторопливо... начал с простого распарсивания нужных данных, позже заострил внимание на сравнениях (ссылку не буду давать - помните несколько вариантов - на FileStream, TBufferedFileStream, TMemoryStream, TBytes...). А вот в этой теме, по вашему же совету, в участке кода, отвечающем за Поиск и Замену, воспользовался RawByteString-ом вместо работы с Memory и TByte. Так что "дом уже давно построен"! Или вы думаете, что я щупаю сорцы, намереваясь позже из них строить еще не существующий код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 20:32 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Большущее всем Вам Спасибо от чистого сердца, что помогали и возможно терпели мое непонимание в некоторых моментах!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 20:35 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Как я уже упоминал ранее - очень заинтересовал Алгоритм Ахо-Корасика в плане применения в программе... Но что-бы его реально пощупать и сравнить - мне придется очень много переделывать в уже достаточно разросшемся коде (на самом деле - ту несколько отдельных утилит), а все из-за того, что для Алго Ахо-Корасика нужно сразу иметь "массив" того, что нужно искать! У меня же пока реализован последовательный тип - распарсиваем одну пару Поиск-Замена, ищем и меняем в бинарнике, затем распарсиваем вторую пару и т.д. А надо бы одним проходом распарсить все-привсе, а потом уже браться за поиск-замену, ну естественно прикрутив Карасика..))) Наверняка там тоже появятся какие-то вопросы..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 20:45 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Bellic, Мне непонятно, как ты открыл старый замок - новым ключом.. Да так, что бы он отлично работал... Хотяя, мне кажется что это не последняя твоя тема мольбы о помощи, в том что ты не понимаешь По мне так, string или же RawByteString или же даже AnsiString никакого значения не имеет - совсем. Так как идёт всё тоже самое присвоение по индексу, за счёт одного - раза, выделения памяти под данные. И что бы не быть многословным, приведу примеры, из твоего же кода Код: pascal 1. 2. 3. Присвою им значение, и открою в отладчике. И гляну как ASM код отличается во всех случаях Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Можем заметить, что при присвоении по индексу, в случае RawByte был использован byte прессование, а там word И использованы функции Код: pascal 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. Но как видим, всё это ягоды одного поля, и разница если будет, то очень не большая. Так что, нужно написать тестер - который покажет, есть ли она разница и на сколько Код: pascal 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. Тесты такие String Set Index: 0,294398 RawByteString Set Index: 0,291288 ---------- String Set global: 0,584003 RawByteString Set global: 0,599694 Ураа!!! В случае установки по индексу, ты выиграл целых 0.00311!!!!! Поздравляю!!!! Но в случае с установкой, + дописыванию, ты потеря целых 0.015691 Тестировал с включённой оптимизацией. Без неё String Set Index: 0,288884 RawByteString Set Index: 0,294933 ---------- String Set global: 0,570846 RawByteString Set global: 0,606367 Вообще !!! RawByteString проигрывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 21:08 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Няшик, попрошу поосторожней быть в своих выражениях и прочитать еще раз на всякий случай "Правила" данного форума!!! (Цитата из правил: Форум предназначен для обсуждения вопросов, связанных с СУБД и родственными темами. Возможно обсуждение других вопросов согласно наименованию разделов форума.) Я по сути - спрашивал совета знающих и более опытных людей, и получал на них ответы - кому было не лень читать и отвечать - помогали мне в решении вопросов! Никого насильно в Тему я не затаскивал и уж тем более - на коленях с мольбой не стоял! Кстати - еще раз отдельное спасибо SOFT FOR YOU за его терпимость к моему упрощению вызова Диалогового окна: Код: pascal 1. 2. - Человек и так понял суть, и не стал читать морали и уводить в сторону обсуждение! Что касается АСМа, то до таких внутренностей Дэлфи я еще не спустился (или не поднялся), хотя в свое время изучал и EC ЭВМ с его Асмом, а позже - Асм СPU 580, Z80, 1801-1803... Няшик, спасибо и Вам за подсказки и участие в обсуждении! Будут вопросы - конечно же обращусь сюда еще и возможно не раз! Да, пинали, но не до смерти же?!..)) Или Вы против?..))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 22:08 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Жаль правда, код от SOFT FOR YOU не дал ожидаемого результата, ни с функцией, ни без нее! Вкурю покамесь и пошагово побегаю по нему - может и заработает правильно!..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 22:39 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Няшик, Не понял, что ты тестировал Но RawByteString может проигрывать на операции присвоения символа, т.к. при каждом присвоении вызывается UniqueString Bellic, Ну так я тебе тысячу раз говорил, мол выкладывай свой тест. В итоге оказалось, у тебя вообще ничего нет. Мы не сможем показать тебе Ахо-Корасика и быстрый Replace - если ты сам не открываешь код. А что до диалога... ну я согласен, ты просто не знаешь как принято работать с диалогом и ребята тебе на это указали. Я показал try/finally - это тоже стандартный способ создания/удаления объектов. А так дерзай. Здорово, что человек не связанный профессией с программированием, делает такие успехи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 22:40 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU А что до диалога... ну я согласен, ты просто не знаешь как принято работать с диалогом и ребята тебе на это указали. Я показал try/finally - это тоже стандартный способ создания/удаления объектов. Не поверишь - знаю прекрасно и как Диалогами пользоваться и try/finally - просто для теста упростил код, на скорую руку, чтоб он работал, и не думая что найдутся "умники", желающие щелкнуть на Крестик, открыть файл нулевой длины или вообще отказаться от загрузки файла в открытом диалоге!!! Код для Вас был - в надежде, что сокращение поймете молча! Ну что тут было не понятно??? Сколько можно уже мусолить??? P.S. В своих реальных программах стараюсь ничем не пренебрегать, не упрощать и предусматривать все возможные варианты (возможно даже уж черезчур строго), особенно что касается выбора файлов или же некорректные действия пользователя (например выбор файла - только через диалоговое окно с последующей кучей проверок, ТEdit-ы индикации выбранных файлов при этом делаю ReadOnly и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 23:04 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU Ну так я тебе тысячу раз говорил, мол выкладывай свой тест. В итоге оказалось, у тебя вообще ничего нет. Мы не сможем показать тебе Ахо-Корасика и быстрый Replace - если ты сам не открываешь код. Чего это у меня нет? Выкладывать сюда код реального набора утилит?..)) Извините - такого в мои планы не входило! (Три юнита и более 3000 строк включая комменты!) Это породило бы еще больше вопросов и мнений - как бы кто реализовал то или иное место! А еще пришлось бы рассказывать ТехЗадание и форматы файлов - еще неделя пустых разговоров и придирок... Оно Вам надо??? P.S. а Ахо-Красика, будет время, я после и сам думаю сумею освоить! Что касается Replace, то он мне не подходит, потому что: 1. Необходим подсчет произведенных замен 2. Кроме автоматического режима будет еще и полу-автомат с подтверждением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 23:17 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
BellicНяшик, попрошу поосторожней быть в своих выражениях и прочитать еще раз на всякий случай "Правила" данного форума!!! А что я написал не так ??? Скорее, ты прочитал что - то не так.. Bellicк моему упрощению вызова Диалогового окна: Да ты мог бы написать так Код: pascal 1. 2. Было бы тоже самое. SOFT FOR YOUНяшик, Не понял, что ты тестировал Но RawByteString может проигрывать на операции присвоения символа, т.к. при каждом присвоении вызывается UniqueString Производительность типов. Но, при установки в индексы - слишком маленький выигрыш, у меня на компьютера составляет от 0.00600 до 0.00100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 00:53 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Bellic, Тебя просили выложить маленький - реальный пример, подобного - имитирующего то, что тебе надо было реализовать. Чтоб, не гадать алгоритмы какие - то, исходя из твоих надуманных годов, и мол - так может быть, но я и сам не знаю. По этому, подскажите мне, гадая на своих шарах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 00:55 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
НяшикЧтоб, не гадать алгоритмы какие - то, исходя из твоих надуманных годов, и мол - так может быть, но я и сам не знаю. По этому, подскажите мне, гадая на своих шарахЭто уже не первая его тема такая) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 00:58 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Няшик, лично для Вас - дополнил инфу в своем профиле!..))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 08:36 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Bellicдополнил инфу в своем профиле!..))) да ты - романтик ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 09:33 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Докда ты - романтик ;) Спасибо за комплемент, Док !..)) Разобрался где ошибка в коде SOFT FOR YOU : Код: pascal 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. 45. PSimvol= $31 получалось $13 , ну и в RawString - полная каша! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 13:23 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Bellic, Разве в твоём файле нет бинарных данных ? Юникод там ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 13:37 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
НяшикРазве в твоём файле нет бинарных данных ? Юникод там Доброе утро! Только проснулся?...)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 13:43 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Bellic, Дай - ка вспомнить, хм... Я пошёл спать в 8 и проснулся в 13:30... Хм.. Сейчас 16:03 и делаем сложный расчёт 16-13 : 30 - 03 получается 3:10 уже кааак А сиго? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 14:04 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Няшик, хочешь разминку для мозгов?..)) Мой вариант кода в цикле на 1000 итераций выполнился за 0,85 а быстродействующий SOFT FOR YOU - за 0,92 секунды!..)) Исходники выложить или сам хрустальными шарами сообразишь?..)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 14:16 |
|
||
|
Поиск последовательности в бинарном массиве
|
|||
|---|---|---|---|
|
#18+
Bellic, Вот блин, к чему это??? Конечно же его код, может работать медленнее - при неправильном использование... Кстати, я нАрочно кое где сделал ошибку, а ты и не заметил? ... Меня до сих пор волнует, каким образом - ты его структуру, в свой код применил. И кстати - да, ты правильно заметил что у него в алгоритме ошибка. В SysUtils есть такая функция Код: pascal 1. 2. 3. 4. Которая выполняет ту же логику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 14:24 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39589081&tid=2041298]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 545ms |

| 0 / 0 |
