Umas das novidades no Delphi XE é o suporte a expressões regulares (unit RegularExpressions) na RTL. Esse recurso nos permite fazer diversos tipos de validações. Nesta dica, apresento um exemplo de como utilizá-lo para validar se o valor em uma string é realmente um endereço IP.
No seu Delphi XE, solicite uma nova aplicação do tipo console (File, New, Other, Console Application) e implemente-a conforme abaixo:
program RegExpIP;
{$APPTYPE CONSOLE}
uses
SysUtils,
RegularExpressions;
var
ipRegExp : String;
begin
try
ipRegExp := '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' +
'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' +
'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.' +
'(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b';
if TRegEx.IsMatch(paramstr(1), ipRegExp) then
Writeln('Text DOES match the regular expression')
else
Writeln('Text DOES NOT match the regular expression');
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
readln;
end.
Para testar, basta executar o programa e passar como parâmetro o endereço IP que deseja validar. Você verá como resultado a frase "Text DOES match the regular expression", quando o IP for válido, ou "Text DOES NOT match the regular expression", caso não.
Para passar parâmetros para o programa dentro do Delphi, utilize a opção existente no menu "Run", chamada "Parameters...". Se for executar o programa via console, basta chamar o executável passando o parâmetro a frente do seu nome, ex:
> RegExpIP 200.100.2.21
Text DOES match the regular expression
> RegExpIP 200.100.2.263
Text DOES NOT match the regular expression
No repositório de exemplos do RAD Studio você pode encontrar outros tipos de expressões regulares.
Ainda não conhece o Delphi XE? Faça o download da versão trial aqui.
Por: Andreano Lanusse
Contato: andreano.lanusse@embarcadero.com
Site: http://www.andreanolanusse.com
|