Utilizando expressões regulares para validar endereço IP no Delphi XE
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
Bueno nuevamente yo aprovechando que me descidi a hacer comentarios, quisa no este dentro del tema pero mensionaré a una herramienta muy valiosa el uso de Hash Maps, seria interesante agregarán a este lenguaje de manera nativa como lo hace Java el uso de Hash Maps que de grandes apuros nos saca, actualmente utilizo los componentes JVCL para su uso y me funsionan de maravilla comentando que este tipo de haseo se basa en la nomenclatura llave valor, el valor puede ser una cadena o bién el almacenamiento de objetos.
Y añadiendo otro y último comentario el uso de anotaciones que en Delphi 2010 se empezo a utilizar, espero cuando pruebe la nueva version de Delphi XE
me de la sorpresa de un mejor desarrollen esta parte que corresponde a las anotaciones, aunque para ser sinceros estaría mejor aún si se incorporara ya la funcionalidad de un ORM como por ejemplo algo parecido a Hibernate o las JPA de Java, mensiono estos dos ORM’s de Java por la similititud en el termino ANOTACIONES con Delphi