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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2013, 11:37   #11
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

Ну так в итоге что будет быстрее if Lenght или Copy?
FaTaL вне форума Ответить с цитированием
Старый 15.02.2013, 12:47   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

FaTaL, во-первых речь изначально шла о надежности. Во-вторых вот небольшой код, посмотрите чем быстродействие отличается. Что-то разницы нет
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
    s,s1: String;
begin
  Label1.Caption:='Старт '+FormatDateTime('hh:nn:ss.zzz',Now);
  for i:=1 to 1000000 do begin
    s:=IntToStr(i);
    if Length(s)=0 then s1:='' else s1:=s[1];
  end;
  Label2.Caption:='Финиш '+FormatDateTime('hh:nn:ss.zzz',Now);

  Label3.Caption:='Старт '+FormatDateTime('hh:nn:ss.zzz',Now);
  for i:=1 to 1000000 do begin
    s:=IntToStr(i);
    s1:=Copy(s,1,1);
  end;
  Label4.Caption:='Финиш '+FormatDateTime('hh:nn:ss.zzz',Now);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.02.2013, 13:37   #13
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

Аватар, я сразу начал разговор про оптимизацию, а не надёжность. А вот сейчас замерил и разница есть, да причём разница приличная. Если конечно делать больше итераций. Короче через IF получается быстрее.
FaTaL вне форума Ответить с цитированием
Старый 15.02.2013, 22:32   #14
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

Давайте проще
Цитата:
var
Count: integer; // Кол.во символов
s: String; // Переменная для хранения текстов
begin
s:=ComboBox1.Text; // Для удобства, запишем в переменную.
Count:=Length(ComboBox1.Text); // Узнаем число символов
Delete(S,2,Count); // Удаляем не нужное, начиная от 2рого символа, заканчивая последним
Combobox1.Text:=s; // Выводим результат
end;
stalker1995s вне форума Ответить с цитированием
Старый 15.02.2013, 22:52   #15
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Весело тут))
Мне кстати нужна надёжность )
Всем спасибо очень большой выбор решения!
Надо научится интриговать и потом выбирать наилучший Вариант
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 15.02.2013, 23:00   #16
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

stalker1995s, delete вряд ли будет быстрее copy.

Для сравнения производительности смотрите уж сразу количество ассемблерных команд (правда, скорость выполнения у них тоже может отличаться).

Volkogriz, без интриги никак
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 15.02.2013, 23:15   #17
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
По умолчанию

stalker1995s, delete вряд ли будет быстрее copy.

Для сравнения производительности смотрите уж сразу количество ассемблерных команд (правда, скорость выполнения у них тоже может отличаться).


Спасибо, согласен, я просто не понял, что требуется скорость
stalker1995s вне форума Ответить с цитированием
Старый 15.02.2013, 23:39   #18
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Если сделать так, то ещё быстрее получится:
if s='' then s1:='' else s1:=s[1];
ReportCube вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получаю первую букву итема из комбобокса Synapse Win Api 2 10.11.2012 15:44
Автоматически изменять первую букву в слове на заглавную для Microsoft Office Excel. agregator Microsoft Office Excel 17 24.02.2012 10:56
если слово нечетной длины,то удалить его первую букву!!! locdoc Помощь студентам 2 06.12.2010 16:35
Первую букву записать в конец по алгоритму на паскале Kati Помощь студентам 2 02.03.2010 16:33
Заменить автоматически первую букву в ячейке на заглавную. agregator Microsoft Office Excel 2 02.07.2009 18:22