Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2019
BlackMore BlackMore is offline
Registrado
 
Registrado: abr 2019
Posts: 8
Poder: 0
BlackMore Va por buen camino
Validar email (funcion en PAS)

Código Delphi [-]
Unit validate_email;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

implementation

Function ValidEmail(email: String): Boolean;
  // Returns True if the email address is valid
  // Author: Ernesto D'Spirito
Const
  // Valid characters in an "atom"
  atom_chars = [#33..#255] - ['(', ')', '<', '>', '@', ',', ';', ':',
    '\', '/', '"', '.', '[', ']', #127];
  // Valid characters in a "quoted-string"
  quoted_string_chars = [#0..#255] - ['"', #13, '\'];
  // Valid characters in a subdomain
  letters = ['A'..'Z', 'a'..'z'];
  letters_digits = ['0'..'9', 'A'..'Z', 'a'..'z'];
  subdomain_chars = ['-', '0'..'9', 'A'..'Z', 'a'..'z'];
Type
  States = (STATE_BEGIN, STATE_ATOM, STATE_QTEXT, STATE_QCHAR,
    STATE_QUOTE, STATE_LOCAL_PERIOD, STATE_EXPECTING_SUBDOMAIN,
    STATE_SUBDOMAIN, STATE_HYPHEN);
Var
  State: States;
  i, n, subdomains: Integer;
  c: Char;
Begin
  State := STATE_BEGIN;
  n := Length(email);
  i := 1;
  subdomains := 1;
  While (i <= n) Do
  Begin
    c := email[i];
    Case State Of
      STATE_BEGIN:
        If c In atom_chars Then
          State := STATE_ATOM
        Else If c = '"' Then
          State := STATE_QTEXT
        Else
          break;
      STATE_ATOM:
        If c = '@' Then
          State := STATE_EXPECTING_SUBDOMAIN
        Else If c = '.' Then
          State := STATE_LOCAL_PERIOD
        Else If Not (c In atom_chars) Then
          break;
      STATE_QTEXT:
        If c = '\' Then
          State := STATE_QCHAR
        Else If c = '"' Then
          State := STATE_QUOTE
        Else If Not (c In quoted_string_chars) Then
          break;
      STATE_QCHAR:
        State := STATE_QTEXT;
      STATE_QUOTE:
        If c = '@' Then
          State := STATE_EXPECTING_SUBDOMAIN
        Else If c = '.' Then
          State := STATE_LOCAL_PERIOD
        Else
          break;
      STATE_LOCAL_PERIOD:
        If c In atom_chars Then
          State := STATE_ATOM
        Else If c = '"' Then
          State := STATE_QTEXT
        Else
          break;
      STATE_EXPECTING_SUBDOMAIN:
        If c In letters Then
          State := STATE_SUBDOMAIN
        Else
          break;
      STATE_SUBDOMAIN:
        If c = '.' Then
        Begin
          Inc(subdomains);
          State := STATE_EXPECTING_SUBDOMAIN;
        End
        Else If c = '-' Then
          State := STATE_HYPHEN
        Else If Not (c In letters_digits) Then
          break;
      STATE_HYPHEN:
        If c In letters_digits Then
          State := STATE_SUBDOMAIN
        Else If c <> '-' Then
          break;
    End;
    Inc(i);
  End;
  If i <= n Then
    Result := False
  Else
    Result := (State = STATE_SUBDOMAIN) And (subdomains >= 2);
End;
End.

hola....estoy intentando utilizar este archivo PAS en un proyecto C++ builder ya que la funcion esta en pascal (para validar email)


pero creo que me falta declarar la funcion en algun sitio porque me dice UNRESSOLVED EXTERNAL ValidEmail(System::UnicodeString)


alguien que pueda analizarlo??? compilar compila bien sin errores

Última edición por Casimiro Notevi fecha: 05-05-2019 a las 19:14:57.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Una función para enviar Email en XE10 darkamerico Internet 9 12-04-2016 22:51:38
Funcion para validar campos. Jere_84 Varios 9 31-05-2012 22:10:46
Ayuda para validar un Dato de Tipo Boleano en funcion microbiano Varios 3 05-05-2012 08:16:39
Validar dirección de email dtomeysoto Varios 4 14-12-2005 16:23:09
Funcion para validar IP Mauricio Correa Internet 7 01-10-2003 15:04:25


La franja horaria es GMT +2. Ahora son las 16:32:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi