|
|
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Нужно заменить в строковой переменной один символ на другой. Я здесь маленько написал. Вроде работает. Но когда доходит до 5000 замен, уж очень медленно все делается. Большие задержки по времени: 5000 замен - около 3-х секунд. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. То, что можно сделать быстрее на VB это точно. У меня есть готовое приложение, где такие замены деляются менее одной секунды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 22:35 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Не знаю, подойдет ли тебе. Попробуй использовать функцию Replace. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 02:23 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Ok. Не по глазам. Делаю то, что уже в VB есть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 08:19 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
МаксимВOk. Не по глазам. Делаю то, что уже в VB есть! а replace в vb нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 09:39 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Здесь есть вариант самодельной функции Replace, работающей в ~12 раз быстрее стандартной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 10:55 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Ошибка вот где: Код: plaintext 1. 2. 3. Смотри, у тебя всегда поиск начинается с еденицы! А должен не начинатся с 1, а продолжатся с позиции в которой ты заменил последний символ. Потому и замедляется, что строку он у тебя будет просматривать от начала до найденного символа немеренное количество раз! А должен только один проход от начала до конца делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 12:07 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
MegaDimonОшибка вот где: Смотри, у тебя всегда поиск начинается с еденицы! А должен не начинатся с 1, а продолжатся с позиции в которой ты заменил последний символ. посмотри внимательней на код. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 16:50 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Вопрос в дополнение! А как заменить символ не на один символ, а на строку? типа @ на ret_rus? ___________________________________________________ Система, не рассчитанная на идиота - идиотская система. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:09 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Ответ в дополнение! marvan Здесь есть вариант самодельной функции Replace, работающей в ~12 раз быстрее стандартной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:35 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
marvanОтвет в дополнение! marvan Здесь есть вариант самодельной функции Replace, работающей в ~12 раз быстрее стандартной. marvan Вы бы не могли ткнуть меня носов именно в то, что мне нужно по этой ссылке?) У меня с англицким пока проблемы (( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 12:00 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
например Добавить в проект класс clsReplace, добавить в него вышеуказанный код и далее в нужном месте программы вызываем: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 14:03 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
marvan Здесь есть вариант самодельной функции Replace, работающей в ~12 раз быстрее стандартной.Я проверял эту функцию. Сандартная быстрее. Правда проверял только в ide, может скомпилированная быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:01 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Проверил еще раз. Скорость зависит от того что на что заменяешь. Вот тест: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Если пробел заменять на "xx", то 1,171875 против 1,265625 соответственно. "ххх" дает 1,171875 (опять таки!) и 1,421875 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:18 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
Резолюция такая: если длина результирующей строки после замены будет отличаться от исходной или заменяются длинные подстроки - используй стандартный Replace. Фактически альтернативный выйграл только в первом тесте - замена одного символа на один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:30 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#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. IDE - ради спортивного интереса 11,4696 - Replace10 2,2387 - ReplaceVB EXE - выигрыш альтернативной функции 0,7092 - Replace10 2,2815 - ReplaceVB 2 Antonariy ради чего проверки затевать? там ведь таблица есть, где приводятся результаты множества тестов. и ни где стандартный Replace не выиграл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:40 |
|
||
|
Скорость замены символа в строке.
|
|||
|---|---|---|---|
|
#18+
На заборах тоже таблицы бывают. Лишняя проверка никода не помешает. Действительно, альтернативный Replace в скомпилированном виде рулит.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 16:57 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33833500&tid=2163129]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 364ms |

| 0 / 0 |
