![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск слова в предложении [D4]
Spectrum2 © (2006-08-09 00:58:00)Написал процедуру поиска есть ли данное слово в предложении.
Но она не ищет слова, возращает False,похоже не пошет POS
True - есть
False-нет
{проверка}
s:='привет как дела что делаешь)))';
s2:='взрыв';
FindSlovo(s,s2);
function FindSlovo(Stroka,for_searh:string):bool; // поиск есть ли в строке это слово
var
i:integer;
begin
Result:=false;
i:=Pos(Stroka,for_searh);
if i<>0 then Result:=true;
end;
пока обхожусь громозким перебором букв (
c:=copy(stroka,a,1);
if compareText(c,'в')=0 then begin
c:=copy(stroka,a+1,1);
if compareText(c,'з')=0 then begin
Надо для поиска мата и плохих слов
for a:=1 to conAll do begin
if FindSlovo(StreamString,MassivBadSlovo[a])=true then begin // перебираем слова
SendLocalMessage('Banned 20min...Mat');
AddBannedTable(TekIP,20);
CloseSessionUser(TekIP);// есть попался - выкидываем
Desdechado (2006-08-09 12:58:00) [1]Ну, там просто спрятано приведение типов:
A value of type ByteBool, LongBool, or WordBool is considered True when its ordinalityis nonzero. If such a value appears in a context where a Boolean is expected, the compiler automatically convertsany value of nonzero ordinality to True.
И там же сказано, что "Boolean is the preferredtype"
evvcom (2006-08-09 12:30:00) [2]> [5] Desdechado © (09.08.06 12:17)
Вообще-то справка считает, что это Boolean type и все примеры с True/False
Desdechado (2006-08-09 12:17:00) [3]evvcom © (09.08.06 11:53) [4]
Это я знаю. Но это же числовой тип.
evvcom (2006-08-09 11:53:00) [4]> [2] Desdechado © (09.08.06 11:21)
BOOL = LongBool; (c) Windows.pas :)
Desdechado (2006-08-09 11:22:00) [5]да и результат вызова в
FindSlovo(s,s2);не проверяется...
Desdechado (2006-08-09 11:21:00) [6]bool - это что за тип такой? Он явно не True/False
Johnmen (2006-08-09 01:18:00) [7]Во-первых, ты аргументы перепутал в Pos.
Во-вторых, указанного слова действительно нет в указанной фразе, т.е. False.
Ну и в-третьих, просто Result:=Pos(...)>0;