SoloCodigo

Programación General => Pascal => Mensaje iniciado por: lisandro1668 en Jueves 27 de Octubre de 2005, 16:27

Título: Ayuda Con Este Codigo
Publicado por: lisandro1668 en Jueves 27 de Octubre de 2005, 16:27
Hola estoy necesitando ayuda necesito los codigos fuentes para hacer un programa en pascal. que sirva para validar las direcciones de correo electronico. ya sea el pseudocodigo o el codigo fuente es urguente agradezco quien me ayude es muy importante cualkier duda contactarse conmigo. desde ya muchas gracias
Lisandro.
Título: Re: Ayuda Con Este Codigo
Publicado por: Enko en Jueves 27 de Octubre de 2005, 23:57
En este foro no se hacen tareas.
¿Dudas puntuales?
Título: Re: Ayuda Con Este Codigo
Publicado por: lisandro1668 en Viernes 28 de Octubre de 2005, 15:08
arme este codigo para verificar direcciones de corre electronico me gustaria optimizarlo me pueden ayudar y kiero arreglarle si hay fallas.
el programa en consiste en validar direcciones de mail me gustaria ke me falta ke analize el dominio si es valido o no
si alguien me ayuda se lo agradeceria

Program validarmail(input, output);
var
   largo,pos,z:integer;
   aux, mail: string[40];
begin
      clrscr;
      writeln('Ingrese su e-Mail: ');
      repeat
         readln(aux);
         largo:=length(aux);
         pos:=1;
         z:=0;
         repeat
            z:=z+1;
            aux[z]:=upcase(aux[z]);
            if (ord(aux[z])<65) or (ord(aux[z])>90) then

               begin
                  if (ord(aux[z])<48) or (ord(aux[z])>57) then
         begin
    if (ord(aux[z])<>64) and (ord(aux[z])<>46) and (ord(aux[z])<>95) then
                          pos:=0;
       end;
               end;
         until (pos=0) or (z=largo);
         if pos=0 then
      begin
              writeln('El dato ingresado es incorrecto, ingrese otro por favor');
     end;

      begin
     writeln('El dato se ingreso correctamente');
 mail:=aux;
    end;
      until (pos<>0);
end.
Título: Re: Ayuda Con Este Codigo
Publicado por: Alpha_ en Viernes 28 de Octubre de 2005, 17:20
Lo ví algo por arriba, y no detecté errores en su mayor medida. Básicamente te fijás que sea un caracter o un número, y que si no es así, que sea un punto o un arroba.

Pero eso no te impide el poner más de un arroba, en cuyo caso estaría mal.

Yo diría que busques el arroba.. y desde ahí recorras hacia atrás. Debés encontrar caracteres, números o puntos.

Luego hacia adelante, debés encontrar caracteres, números y AL MENOS UN punto.

Y podría extenderse en detalle, pero realmente no vale la pena.

De paso, en lugar de fijarte si ord(cadena[contador]) > xx y si ord(cadena[contador]) < yy

podrías definir un conjunto de caracteres y letras

type
  validos = ['0'..'9', 'a'..'z', 'A'..'Z']

var
  conjunto_validos: validos;

Y verificás con

if cadena[contador] IN conjunto_validos ...


Espero que te sirva, saludos.