|
Вопрос # 2 944/ вопрос открыт / |
|
Здравствуйте, эксперты!
помогите составить условие с помощью операторов
1. http://127.0.0.1/takelogin.php
2. Referer: http://127.0.0.1/login.php?returnto=%2Fbrowse.php
3. Data:
4. login
необходимо оставить в результате 1. и 4. строки
пишу XOr Referer: and xor http: and xor login - остается только строка 3. как сформулировать, чтобы осталась и строка 1.?
 |
Вопрос задал: fedora (статус: Посетитель)
Вопрос отправлен: 24 июня 2009, 11:04
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 12; последнее сообщение — 24 июня 2009, 23:51; участников в обсуждении: 2.
|
fedora (статус: Посетитель), 24 июня 2009, 11:14 [#1]:
и строка 4.
|
|
Вадим К (статус: Академик), 24 июня 2009, 11:16 [#2]:
а что такое and xor
я такого оператора не знаю.
Плюс, не понятно, что с чего соединять, переформулируйте вопрос.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
fedora (статус: Посетитель), 24 июня 2009, 11:43 [#3]:
попутал. правильно будет
not Referer: and not http: and not login
мне нужно оставить из 4-х строк первую и четвертую.
|
|
Вадим К (статус: Академик), 24 июня 2009, 11:58 [#4]:
а строки где? в Memo/StringList?
тогда просто memo1.lines[0] и memo1.lines[3]
Галочка "подтверждения прочтения" - вселенское зло.
|
|
fedora (статус: Посетитель), 24 июня 2009, 12:33 [#5]:
в TStringList
for Index:= 0 to FList.Count - 1 do
if not (Pos('Referer:', FList[Index]) <> 0) and not (Pos('http:', FList[Index]) <> 0) and not (Pos('login', FList[Index]) <> 0) and (Temp.IndexOf(FList[Index]) = -1)
then Temp.Add(FList[Index]);
|
|
Вадим К (статус: Академик), 24 июня 2009, 12:47 [#6]:
это
if not (Pos('Referer:', FList[Index]) <> 0) and not (Pos('http:', FList[Index]) <> 0) and not (Pos('login', FList[Index]) <> 0) and (Temp.IndexOf(FList[Index]) = -1)
переписывается как
if (Pos('Referer:', FList[Index]) = 0) and (Pos('http:', FList[Index]) = 0) and (Pos('login', FList[Index]) = 0) and (Temp.IndexOf(FList[Index]) = -1)
и это следует читать так
добавить текущую строку в список, если она не содрежит ни 'Referer:', ни 'http:', ни 'login'. Странный запрос.
Вопрос всё равно пока смутный и не понятный.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
fedora (статус: Посетитель), 24 июня 2009, 13:07 [#7]:
мне просто нужно так составить запрос, чтобы оставить из 4-х строк первую и четвертую.
|
|
Вадим К (статус: Академик), 24 июня 2009, 13:15 [#8]:
зачем составлять запрос, если можно просто взять первую и четвертую строку.
Плюс, какой запрос? условие! пишем разборчивым русским (украинским, английским...)
Галочка "подтверждения прочтения" - вселенское зло.
|
|
fedora (статус: Посетитель), 24 июня 2009, 17:24 [#9]:
ладно с условиями я разобрался.
подскажите лучше, как можно задать в
if (Pos('лицензия', FList[Index]) = 0) and (Temp.IndexOf(FList[Index]) = -1)
только слово 'лицензия', чтобы добавляла в список не
ывфаывалицензия
лицензияываываыва
лицензия_лицензия
а только строку, где одно слово 'лицензия'?
|
|
Вадим К (статус: Академик), 24 июня 2009, 17:47 [#10]:
добавить проверку с пробелами на конце и в начале, а также на проверку, что pos = 1 и пробел в конце.
Хотя лучше использовать регулярные выражения
Галочка "подтверждения прочтения" - вселенское зло.
|
|
fedora (статус: Посетитель), 24 июня 2009, 22:02 [#11]:
а можно в примере, что-то не понятно/не получается.
|
|
Вадим К (статус: Академик), 24 июня 2009, 23:51 [#12]:
м? ну наверное так
if (pos('лицензия ', s) = 1) or (pos(' лицензия ',s) <> 0) or (pos(' лицензия',s) = length(s)-9) then
ShowMessage('входит!');
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|