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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 22:47   #11
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

А стоит ли мучаться со сборными условиями?
Делайте так:
Код:
Procedure DelSpace(var s:string)
begin
while (pos(' ',s)=1) do
 delete(s,1,1);
end;
DelSpace(s);
Flag:=false;
 if (pos('password=',s)=1) then
  begin
    pass:=copy(s,pos('password=',s)+length('password='),length(s)-length('password='));
  end else
  if ((pos('username=',s)=1)) then
   begin
     name:=copy(s,pos('username=',s)+length('username='),length(s)-length('username='));
   end else
   if (pos('http:/',s)=1) then
    begin
     i:=0;
      repeat 
       inc(i);
         if s[i]= ' ' then
           begin
            j:=i;
            flag:=true;
              while (i<>length(s)) do
               begin
                inc(i);
                 if ord(s[i])>32 then //Если встретилось что-то кроме пробела 
                   begin
                      i:= length(s);
                      flag:=false;
                   end;
               end;
           end;
     until i=length(s);
  if flag then 
   begin
     URL:=copy(s,1,length(s)-j);
   end;
 end;
Коряво конечноже, но должно работать.
Искусственный интеллект - фигня по сравнению с естественной глупостью

Последний раз редактировалось Impuls1989; 25.06.2009 в 22:52.
Impuls1989 вне форума Ответить с цитированием
Старый 27.06.2009, 20:30   #12
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

решил использовать TRegExpr, но не могу вставить вместо Pos'а
помогите!
Код:
     Temp:= TStringList.Create();
  try
    for Index:= 0 to FList.Count - 1 do
      if (Pos('яблоко', FList[Index]) <> 0) and (Temp.IndexOf(FList[Index]) = -1)
then Temp.Add(FList[Index]);
    try
      begin
Temp.SaveToFile('фрукты.txt');
чтобы фуекционал остался таким же.
мимо вне форума Ответить с цитированием
Старый 27.06.2009, 21:07   #13
Longedok
Пользователь
 
Аватар для Longedok
 
Регистрация: 14.07.2007
Сообщений: 40
По умолчанию

Цитата:
Сообщение от мимо Посмотреть сообщение
...решил использовать TRegExpr, но не могу вставить вместо Pos'а
помогите!
чтобы фуекционал остался таким же.
Немного не понял вопроса. Что конкретно тебе нужно сделать? Определить в какой позиции в тексте встречается слово "яблоко"?
Котэ покарает тебя, %username%!
Longedok вне форума Ответить с цитированием
Старый 27.06.2009, 21:26   #14
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

определять, где в тексте, в каких строках, встречается только слово 'яблоко':
'яблоко'
ваываыва'яблоко'
'яблоко'ваыаыв
добавлять эти строки в список и тут же сохранять файл
мимо вне форума Ответить с цитированием
Старый 27.06.2009, 21:47   #15
Longedok
Пользователь
 
Аватар для Longedok
 
Регистрация: 14.07.2007
Сообщений: 40
По умолчанию

Не очень, опять же, понятно, зачем в таком случае использовать регэкспы, но вобще, можно поступить следующим образом:
Код:
...
regex.Expression := 'яблоко';
try
    for Index := 0 to FList.Count - 1 do
    begin
       regex.exec(fList[index]);
       if regex.Match[0] <> '' then
          Temp.Add(FList[Index]);
    end;
...
try
begin
   Temp.SaveToFile('фрукты.txt');
...
P.S.
если надо чтобы в строке было только слово "яблоко", то следует использовать следующий шаблон:
Код:
regex.Expression := '^яблоко$';
Котэ покарает тебя, %username%!
Longedok вне форума Ответить с цитированием
Старый 27.06.2009, 22:03   #16
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

хм, пишет, что:
Variable 'regex' might not have been initialized.
в var поставил, что еще ему надо?
мимо вне форума Ответить с цитированием
Старый 27.06.2009, 22:11   #17
Longedok
Пользователь
 
Аватар для Longedok
 
Регистрация: 14.07.2007
Сообщений: 40
По умолчанию

Цитата:
Сообщение от мимо Посмотреть сообщение
хм, пишет, что:
Variable 'regex' might not have been initialized.
в var поставил, что еще ему надо?
Ему ещё надо:
Код:
regex := TRegExpr.create();
Котэ покарает тебя, %username%!
Longedok вне форума Ответить с цитированием
Старый 27.06.2009, 22:13   #18
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

спасибо. тока заглянул в комментарии примеров по TRegExpr
мимо вне форума Ответить с цитированием
Старый 27.06.2009, 22:36   #19
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

а подскажи еще.
какой синтаксис если ищешь сразу несколько слов?
в примерах по TRegExpr не нашел
мимо вне форума Ответить с цитированием
Старый 27.06.2009, 23:03   #20
Longedok
Пользователь
 
Аватар для Longedok
 
Регистрация: 14.07.2007
Сообщений: 40
По умолчанию

Цитата:
Сообщение от мимо Посмотреть сообщение
какой синтаксис если ищешь сразу несколько слов?
Код:
regex.Expression = "Первое слово дороже второго";
Котэ покарает тебя, %username%!
Longedok вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать такую программку C++ Kisia Помощь студентам 8 29.04.2009 12:56
Как осуществить запоминание объектов? Djem1991 Общие вопросы Delphi 4 06.01.2009 14:09
Как осуществить доступ к полю? Чайник87 Помощь студентам 2 13.10.2008 23:11
Тест на логику xTANATOSx Свободное общение 5 21.10.2007 16:39