|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.10.2014, 14:11 | #1 |
Пользователь
Регистрация: 31.07.2010
Сообщений: 52
|
Проверить, что строка не пустая - как быстрее
1. if S <> '' then
2. if Length(S) > 0 then Как будет быстрее в принципе? Или может можно ещё быстрее проверить неким ассемблером? |
23.10.2014, 14:16 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Шо то шо то должно сводиться к одному - сравнивание первого байта (слова, дв.слова) где хранится длина строки.
Забацай оба в одну прогу и посмотри как ассемблер отладчика покажет.
I'm learning to live...
|
23.10.2014, 14:19 | #3 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
Там всегда идет test регистров сначала, проверка переменной на nil. Ведь в случае строки длиной 0 и смысла нет держать такую строку, уничтожается и обнуляется.
Хотя вот с WideString он идет сравнивать...(в случае S<>''') Последний раз редактировалось WhiskasTM; 23.10.2014 в 14:23. |
23.10.2014, 15:23 | #4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Не имеет значения... Всегда сравниваю с EmptyStr.
По факту строку триммировать надо перед сравнением. в древних IDE: Код:
Код:
P.S. А в лазаре есть поддержка class-helper'ов? Цитата:
Думается это справедливо только для Ansi-строк. Unicode и Wide по другому хранятся, там символ уже 2 байта занимает. Мб чего-то напутал... Последний раз редактировалось Человек_Борща; 23.10.2014 в 15:26. |
|
23.10.2014, 15:25 | #5 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,778
|
|
23.10.2014, 15:41 | #6 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
23.10.2014, 16:06 | #7 | |
ios developer
Старожил
Регистрация: 16.11.2007
Сообщений: 2,885
|
Научитесь вы уже раз и навсегда проверять, как быстрее. Загоняете в цикл то и другое и сравниваете дельту времени. Телодвижений меньше, чем на форум сообщение писать.
Цитата:
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
Последний раз редактировалось crazy horse; 23.10.2014 в 17:01. |
|
23.10.2014, 16:54 | #8 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,778
|
|
23.10.2014, 18:59 | #9 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Потому из строки убираются все пробелы с обеих сторон, для сравнения с ''. |
|
23.10.2014, 19:01 | #10 |
Пользователь
Регистрация: 31.07.2010
Сообщений: 52
|
Ага, значит,
Код:
А что такое "ассемблерный подстрочник"? Всем спасибо! Попробую ещё посмотреть гдето в сторону дебиггера. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
StringGrid - проверить, что строка не выбрана | sasha_14-88 | Общие вопросы Delphi | 6 | 23.05.2014 12:23 |
Пустая строка си | Praud | Помощь студентам | 3 | 21.12.2013 18:08 |
Пустая строка в Си | приправыч | Помощь студентам | 1 | 08.12.2012 15:13 |
как сделать что бы работала быстрее | luffi | Помощь студентам | 3 | 10.04.2012 23:53 |
Пустая строка | ForzaJuve | Общие вопросы C/C++ | 3 | 13.10.2010 15:41 |