Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

какой код будет меньше нагружать систему   Найти похожие ветки 

 
redlord   (2006-03-06 21:52) [0]

всем привет
народ подскажите какой код будет меньше нагружать систему в цикличесском вызове

if copy(s,10,3) = "123"
или
if pos(s,"123") > 0


 
antonn ©   (2006-03-06 21:55) [1]

второй


 
Anatoly Podgoretsky ©   (2006-03-06 22:24) [2]

Результаты этих двух строчек могут серьезно различаться


 
redlord   (2006-03-07 11:47) [3]

to anatoly
а можно по подробнее в каких случаях ипри каких условиях ?


 
sniknik ©   (2006-03-07 11:57) [4]

s:= "if copy(s,10,3) = ""123""";

if copy(s,10,3) = "123" then ShowMessage("copy");

if pos(s,"123") > 0 then ShowMessage("pos");

проверь.


 
redlord   (2006-03-08 00:48) [5]

to sniknik
то что первое условие никогда не выполнится я знаю
но в моем случае "123"  всегда в позиции 10 или этого сочетания нет вообще


 
Германн ©   (2006-03-08 03:13) [6]

sniknik ©   (07.03.06 11:57) [4]
Коля тут несколько пролетел. :))) Имхо.

А по сабжу, вариант "if copy(s,10,3) = "123"" имеет конкретные параметры и считывает и сравнивает считанное.
А вариант "if pos(s,"123") > 0" сначала будет искать. А как долго - неизвестно!


 
sniknik ©   (2006-03-08 11:26) [7]

> Коля тут несколько пролетел. :))) Имхо.
с чего это? разница налицо, и это явно показано этим кодом.

> но в моем случае "123"  всегда в позиции 10 или этого сочетания нет вообще
если строка строгого формата то быстрее, имхо, (без выделений памяти под копию, копирований, поисков) будет просто сравнить
if (s[10]= "1") and (s[11]= "2") and (s[12]= "3") then ...
(без "имхо" это надо проверять, тестить на большом цикле)


 
sniknik ©   (2006-03-08 11:32) [8]

и кстати если позиция известно то pos можно заменить на posex и сравнение делать на = 10 (будет по смыслу одинаково с copy работать, и чуть быстрее чем с pos)


 
redlord   (2006-03-08 23:49) [9]

на скоко мне помнится для posex надо дополнительный модуль цеплять
а это уже минус
а следователно if s[10]= "1" наверно будет оптимальным решением  

завтра протестирую все три варианта и отпишус о резултатах



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
15-1141399738
kaif
2006-03-03 18:28
2006.03.26
Прочее или Иное ?


2-1142102496
Kolan
2006-03-11 21:41
2006.03.26
Как переименовать проект?


3-1138718238
Mac_
2006-01-31 17:37
2006.03.26
Как сохранить результат запроса в dbf формате ?


2-1141985633
Gleb
2006-03-10 13:13
2006.03.26
Как с помощью Delphi перемножить две матрицы?


15-1141210404
Knight
2006-03-01 13:53
2006.03.26
Property как массив по default





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский