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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2013, 20:25   #11
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Интересно, а что наш боец из игры Crossfire делает? Брут или чекер? Просто уверен, что второе.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 19.07.2013, 20:41   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Tip.the.besT Посмотреть сообщение
Не могли бы вы объяснить в чём преимущества PosEx над pos, delete, copy?
тут скорее идет или PosEx или пара Pos/Delete.
первая может искать не сначала строки(собственно почему нам и нужен delete), итого мы избегаем манипуляций с менагером памяти.
особенно актуально когда и оригинальная строка тоже нужна.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.07.2013, 20:57   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Tip.the.besT, посмотри разницу во времени двух алгоритмов, сам поймешь
Код:
procedure TForm1.Button1Click(Sender: TObject);
var s: String;
    i,j: Integer;
    List: TStringList;
begin
  List:=TStringList.Create;
  s:=DupeString('1234hhh',100000);
  j:=GetTickCount;
  i:=Pos('hhh',s);
  while i>0 do begin
    List.Add(Copy(s,i,3));
    Delete(s,1,i+2);
    i:=Pos('hhh',s);
  end;
  Memo1.Lines.Add(Format('Button1Click: найдено - %d, тиков - %d',[List.Count,GetTickCount-j]));
  List.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var s: String;
    i,j,k: Integer;
    List: TStringList;
begin
  List:=TStringList.Create;
  s:=DupeString('1234hhh',100000);
  j:=GetTickCount;
  i:=PosEx('hhh',s,1);
  while i>0 do begin
    List.Add(Copy(s,i,3));
    k:=i+3;
    i:=PosEx('hhh',s,k);
  end;
  Memo1.Lines.Add(Format('Button2Click: найдено - %d, тиков - %d',[List.Count,GetTickCount-j]));
  List.Free;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.07.2013, 21:03   #14
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Tip.the.besT Посмотреть сообщение
Не могли бы вы объяснить в чём преимущества PosEx над pos, delete, copy?
PosEx- это метод(функция) из модуля StrUtils. Оно позволяет искать какой-то текст в другом тексте с отступом от начала(третий параметр). По результату она аналогична pos.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 19.07.2013, 21:22   #15
Stertor
Заблокирован
 
Регистрация: 17.07.2013
Сообщений: 104
По умолчанию

Цитата:
Не могли бы вы объяснить в чём преимущества PosEx над pos, delete, copy?
В том, что эта функция позволяет указывать индекс offset, с которого следует начать поиск вхождений:

function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;

Если его не указывать, она будет работать как Pos.

Последний раз редактировалось Stertor; 19.07.2013 в 21:24.
Stertor вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Облако тегов Abuhamed PHP 2 30.03.2012 13:00
Дан целочисленный массив размера N, содержащий ровно два одинаковых элемента. Найти номера одинаковых элементов и вывести эти номе Alexar Makken Паскаль, Turbo Pascal, PascalABC.NET 1 23.12.2011 22:07
Колличество тегов Furyon PHP 1 20.04.2011 17:30
Нужно зайти в узлы хмл-файла в делфи Driver_09 Помощь студентам 0 16.06.2010 14:08
TXMLTransformProvider выгрузка данных в хмл MAcK Общие вопросы Delphi 1 15.04.2009 22:00