Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: CL | DM;

Вниз

Подскажите идею ...!!!   Найти похожие ветки 

 
koly01 ©   (2003-01-13 10:24) [0]

Привет Мастаки!

Есть комманды пришедшие от абонента
mod:userid="koly",psw="010101";
ее нужно проверить на орфографию по определенному шаблону, подскажите как сделать шаблон что бы с наименьшем кол-вом вермени проверить соответствие каманде.
Кроме этого нужно ее преобразовать в такую комманду после проверки:
moduserid:userid_name="koly",paswword="010101";

спасибо,
С Уважением, koly01


 
Думкин   (2003-01-13 10:31) [1]

Есть такой компонент - шаблоны как в Перле.
http://anso.da.ru/
http://anso.virtualave.net/


 
neXt ©   (2003-01-13 10:43) [2]

В Delphi это класс TRegExpr его можно добыть например с http://opengalaxy.metacom.ru/prog/parser.zip


 
neXt ©   (2003-01-13 10:43) [3]

>>Думкин -- я не ивдел Вашего ответа


 
neXt ©   (2003-01-13 10:47) [4]

само регулярное выражение может быть таким

mod:userid="\w+"\,psw="\w+";



 
koly01 ©   (2003-01-13 11:05) [5]

Извиняюсь но меня не поняли
Нужно проверить на соответсвие стандарту
что команда иммено Mod, что после нее идет двоеточие, после двоеточия нужно проверить на соответствие всех имен параметров(их значения проверять не надо), а после всех параметров должна идти ";" , далее все это берется и преобразовывается в др. комманду в дрю параметры но с темиже значениями параметров ...



 
neXt ©   (2003-01-13 11:51) [6]

регекспры ИМЕННО ДЛЯ ТАКИХ ЗАДАЧ И ПРИДУМАНЫ
даю пример

// например такой текст требует проверки
String MyText = "mod:userid="koly",psw="010101";";
...
var
RE: TRegExpr;
begin
RE := TRegExpr.Create;
try
{ это шаблон по которрому проверяется выражение.
\w+ - означают произвольный набор букв
\, - означает просто запятую}
RE.Expression := "mod:userid="\w+"\,psw="\w+";" ;
{Если в строке MyText найдено выражение удовлентворяющее шаблону RE.Expression то ДА! в противном случае НЕТ!}
If RE.Exec(MyText) then
ShowMessage("ДА!")
else
ShowMessage("НЕТ!");
finally
RE.Free;
end;
end;



 
neXt ©   (2003-01-13 11:58) [7]

для замены текста там тоже есть хорошие методы Split, Replace и пр. Компонент хорошо документирован, рекомендую ознакомиться комментариями к нему.


 
koly01 ©   (2003-01-13 12:14) [8]

СПАСИБО!!!!



Страницы: 1 вся ветка

Текущий архив: 2003.01.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
3-72111
Mike_hex
2002-12-30 10:29
2003.01.23
Связи таблиц в Delphi 5


1-72204
БурЖуй
2003-01-11 20:38
2003.01.23
определенее нажатия кнопки DEL в stringgrid


6-72449
Kotka
2002-11-25 20:59
2003.01.23
Просто звонилка


14-72485
Andrey-k
2003-01-06 00:34
2003.01.23
TAdvStringGrid v2.4


1-72181
desha
2003-01-13 22:52
2003.01.23
Закрыть форму, созданную в библиотеке.