![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Функция нужна для сортировки строк со смешанными данными (символы и числа).
(вся информация здесь) Код делает следующее: встречающиеся в строке числа добивает нулями слева, чтобы они были одной разрядности, например: fcGetFormattedString('Строка12Строка5', 5) возвращает строку: Строка00012Строка00005
Вопрос вот в чем: можно ли как-то оптимизировать код, мне он представляется немного корявым и медленным. Это сообщение отредактировал(а) ДЫМ - 28.6.2006, 22:39 |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
Да нет, вроде всё нормально
-------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
ДЫМ
Голова уже не варит. Завтра гляну.... Но код имхо не идеальный.
|
|||
|
||||
| Bose |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
разве что заменить
на
и вместо:
писать
и ещё, как вариант, добавить var ch:byte; ch:=sStr[i]; и заменить все обращения к sStr[i] на обращения к ch Время исполнения 1 000 000 итераций из 3х строк у меня было такое: Original 1000 000 iter 0:00:19:547 My 100 0000 iter 0:00:19:422 Тестовые цикл был такой:
процедура MeasureTime моя, она запоминает текущий GetTickCount и возвращает разницу между предыдушим запомненным значением и текущим. |
||||||||||
|
|||||||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Быстрее я не смог придумать
Добавлено @ 15:38 Мининимальное количество операций выделения памяти 2 прохода по строке "делфийских" и 2 "ассемблерных" -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
alexeis1, выигрыш в 17 секунд по сравнению с моим вариантом. держи + за мастер-класс |
|||
|
||||
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Всем спасибо, alexeis1 особенно.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |