Umas das novidades no Delphi XE e o suporte a expressões regulares (unit RegularExpressions) na RTL, esse recursos nos permite fazer diversos tipos de validações, abaixo um exemplo de como utilizar este recurso para validar se o valor em uma string é realmente um endereço IP.
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; end.
Para validar basta executar o programa e passar como parâmetro o endereço IP
Neste caso o IP é válido
RegExpIP 200.100.2.21
Text DOES match the regular expression
Neste caso o IP não é valido, pois 263 está fora do intervalo permitido
RegExpIP 200.100.2.263
Text DOES match the regular expression
No repositório de exemplos do RAD Studio você pode encontrar um exemplo com outros tipos de expressões regulares.
Faça o download da versão trial do Delphi XE aqui
Andreano Lanusse | Tecnologia e Desenvolvimento de Software
Siga-me no Twitter: @andreanolanusse