Главная страница
    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.04 c
15-1141040158
DesertAlex
2006-02-27 14:35
2006.03.26
Важно! Вопрос не по программированию. Delphi или VB?


11-1123192059
Thaddy
2005-08-05 01:47
2006.03.26
Propose small change to _Tobj to the Dacha man ;)


8-1129663830
Tasha
2005-10-18 23:30
2006.03.26
Преобразование изображения


2-1142168978
Golik
2006-03-12 16:09
2006.03.26
Как указать путь к БД ????


15-1141591611
JUS
2006-03-05 23:46
2006.03.26
IP?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский