|
|
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
есть строка A=".-abcde ..." для сверки есть входная строка B="home" как без цикла проверить что каждый символ из входной строки присутствует в строке для сверки Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2008, 18:51 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2008, 22:59 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
нет не так во первых конструкция if m(0).submutches(0) = B then ошибочка во вторых даже если через перебор коллекции то ничего нет A = "abcdefghmopuyt" B = "home" должно сработать A = "abcdefg" B = "home?" не должно сработать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 11:56 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Нужно именно без циклов или просто быстро? Подобная сверка двух строк в 10 миллионов символов каждая с циклами выполняется из IDE за ~6 секунд: Код: 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. Устраивает или надо быстрей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 12:31 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
нет не то у меня не две строчки на миллион символов а одна строчка для сверки проверяет миллион входимых строк и для каждой нужно проверить что в каждой входимой строчке все символы попадают из строчки для сверки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 12:40 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
michael Rнет не то у меня не две строчки на миллион символов а одна строчка для сверки проверяет миллион входимых строк и для каждой нужно проверить что в каждой входимой строчке все символы попадают из строчки для сверки Я сравнивал две строки во 10 млн сиволов просто для того чтобы показать что функция работает быстро. Сверка 1 миллиона коротких строк навроде Код: plaintext 1. 2. 3. Выполняется менее чем за 0,3 секунды (на моем компьютере). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 12:52 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Точнее наврал ~0,1 секунды. Кроме того можно еще быстрей легко сделать, если соптимизировать под конкретные условия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 12:55 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
но цикл 255 раз иногда бежит зазря и во вторых могуг быть и UNICODE символы у меня было немного подругому каждый символ из входящей строчки сверялся через Instr в цикле со строчкой для сверки но мое впечатление что это долго ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 13:03 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
3 цикла как то не оптимально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 13:04 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
michael Rно цикл 255 раз иногда бежит зазря и во вторых могуг быть и UNICODE символы Зазря цикл не бегает. Из 3-го цикла при несовпадении вылетает сразу. Под UNICODE - надо несколько изменить код. Я же не знаю постановки твоей задачи... michael R у меня было немного подругому каждый символ из входящей строчки сверялся через Instr в цикле со строчкой для сверки но мое впечатление что это долго Конечно, это дольше. Так как неоптимально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 13:11 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
AndrF всё таки думаешь что 3 цикла быстрее чем один хотя уже 2 цикла строчка для сверки задаётся один раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 13:33 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
michael R всё таки думаешь что 3 цикла быстрее чем один хотя уже 2 цикла строчка для сверки задаётся один раз Да, для строки сверки его можно выполнить один раз. Делай код для своей конкретной задачи - я ведь просто набросал пример одного из решений, не учитывающий твои условности о которых не знал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 13:37 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Ладно спасибо попробую может действительно будет быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 13:44 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
michael Rнет не так во первых конструкция if m(0).submutches(0) = B then ошибочкаНет. Так. Исправить опечатку религия не позволяет? Ну а вообще-то, на второй взгляд можно сократить до вот этого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 17:37 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
White Owl я просил это как без цикла проверить что каждый символ из входной строки присутствует в строке для сверки а не вся фраза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2008, 10:35 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Возможно-возможно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 11:49 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Application.ReptЭто что за зверь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 14:21 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Antonariy Application.ReptЭто что за зверь? Функция абочего листа Повтор() К сожалению функция String в VBA только один символ повторяет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 14:45 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Deggasad действительно интересно придуманно а как в VB6 (без Excel) размножить строчку без цикла (не один символ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 16:06 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
michael R как в VB6 (без Excel) размножить строчку без цикла (не один символ) Вопрос ко всем у меня есть строка "DeggaSad" Как получить строку содержащую эту строку 20 раз например. Аналогично функции Повтор() в Exel, только в VB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 16:24 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
вот такое нашёл Function ReplicateString(Source As String, Len As Long) As String ' build a string of spaces whose length is equal to the number of ' repetitions, then replace each space with the string to be repeated ReplicateString = Replace$(Space$(Len), " ", Source) End Function есть вариант через API - Copy Memory ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 16:27 |
|
||
|
Ускорить алгоритм ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2008, 16:38 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35139625&tid=2162689]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 372ms |

| 0 / 0 |
