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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2008, 13:55   #1
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию овпадают ли первые символы строки

Задача: Сравнить совпадают ли первые символы строки "Item" с введенными пользователем символами строки "S".
Т.е.:

Строка adhftl. Пользователь вводит adh - > : совпадает
Строка adhftl. Пользователь вводит adz - > :не совпадает

Вот код моей функции


Код:
  function CompareItems(S, Item: string): Boolean;
  var
    i, L: Integer;
  begin
    Result := True;
    L := Length(S);
    for i := 1 to L do
      if Item[i] <> S[i] then
        Result := False;
  end;

Придется обрабатывать с помощью данной функции пордка 900 000 записей в TStringList, поэтому нуждаюсь в наиболее быстрой функции проверки. Какие есть варианты.
NieL вне форума Ответить с цитированием
Старый 25.11.2008, 14:58   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Кажись будет проще:
Код:
function CompareItems(S, Item: string): Boolean;
begin
  if pos(s,item)=1 then result:=true else result:=false;
end;
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 25.11.2008, 15:11   #3
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

to Niel:

Можно упростить и Вашу процедуру
Во-первых нет смысла цикл устраивать по более длинному слову, во вторых, если есть Result = false, тогда нафиг дальше проверять?
Короче, приблизительно так должна выглядеть ваша процедура:

Код:
function TForm1.CompareItems(S, Item: string): Boolean;
 var
    i: Integer;
  begin
    Result := True;
    for i := 1 to Length(Item) do
      if Item[i] <> S[i] then
      begin
        Result := False;
        Exit;
      end;
  end;
to Dj_smart:
А вот так еще красивше:

Код:
function TForm1.CompareItems(S, Item: string): Boolean;
begin
   Result := pos(s,item) = 1;
end;
_Engine_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первые шаги trave1er Общие вопросы C/C++ 2 10.09.2008 20:32
Первые шаги в VBA :) rustam_colpal Microsoft Office Excel 12 30.05.2008 09:27
Символы и строки. Нужна помощь insi Фриланс 6 24.05.2008 20:54
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Как из строки получить первые три символа experts91 Помощь студентам 2 07.04.2008 21:58