Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2009, 13:22   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Можно, предложите алгоритм. Его описание имеется в посте #1. В любом случае, функция должна вернуть фрагмент строки, размер которого заранее не известен и в худшем случае будет представлять первоначальную строку.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.07.2009, 13:34   #12
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
А почему нельзя использовать передачу не всей строки в функцию, а ее адреса?
Если речь идет об обычном string, то так и происходит. Передается ссылка, как при передаче в параметре, так и при копировании, новый объект создается только при изменении.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 07.07.2009, 13:37   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
По крайней мере это работает быстрее первоначального варианта
Ну я надеюсь ты не думаешь что только это нужно оптимизировать уж если сомневаешся в скоростях ассемблерных функций типа val?

Насколько крутая скорость нужна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.07.2009, 13:45   #14
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Нет, Вы не поняли . Val по справке принимает в качестве параметра Integer. Я подсовываю Cardinal. Вроде функция работает так как должна. Но не возникнет ли случая когда Val возвратит неверное значение и я получу неправильный результат для своей функции?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.07.2009, 13:48   #15
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Val по справке принимает в качестве параметра Integer. Я подсовываю Cardinal
Ну так я ж говорил, я Int64 числа получал, а Cardinal тем более без проблем. Просто может быть переполнение, если в строке число большее чем кардинал, вот и все.

Кстати cardinal это беззнаковый integer, вы уверены что он вам подходит? (я не вникал особо в алгоритм, просто как совет)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 07.07.2009 в 13:53.
mutabor вне форума Ответить с цитированием
Старый 07.07.2009, 13:49   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Но не возникнет ли случая когда Val возвратит неверное значение и я получу неправильный результат для своей функции?
Врядли. Это насколько я знаю самая оптимальная функция рассчитанная как раз на Cardinal ибо integer в делфи "подстраивается" под значение.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.07.2009, 13:50   #17
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Если речь идет об обычном string, то так и происходит. Передается ссылка, как при передаче в параметре, так и при копировании, новый объект создается только при изменении.
Ммм... Не знал.
psycho-coder вне форума Ответить с цитированием
Старый 07.07.2009, 13:51   #18
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

ОК. Всем спасибо за оптимизацию.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.07.2009, 14:00   #19
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Это насколько я знаю самая оптимальная функция рассчитанная как раз на Cardinal ибо integer в делфи "подстраивается" под значение.
Чегото я не понял о чем тут речь ) В смысле подстраивается?

Когда мне нужно было из строки получать большие числа (размеры файлов в NTFS), то я заценил функцию Val, она с этим хорошо справляется, в параметр я ей давал Int64.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 07.07.2009, 14:13   #20
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну Integer и Cardinal по 4-ре байта, если правильно организовать построение отрицательных чисел, то проблем может и не возникнуть... Насчет Int64 ничего сказать не могу, как вариант, может использоваться специальная версия Val.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите оптимизировать! kievlyanin Microsoft Office Excel 11 28.04.2009 14:19
Оптимизировать код. Манжосов Денис :) Общие вопросы Delphi 1 20.10.2008 19:06
Можно ли оптимизировать формулу? дмидми Microsoft Office Excel 3 12.08.2008 11:28
Помогите оптимизировать! Altera Общие вопросы Delphi 6 25.03.2008 20:09
Оптимизировать код NeiL Помощь студентам 2 21.02.2008 08:57