Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2008
jefferson jefferson is offline
Miembro
 
Registrado: dic 2007
Posts: 20
Poder: 0
jefferson Va por buen camino
Red face ejercicio

hola amigos.

les pidor el favor a ver si me pueden colaborar acerca de la elaboracion de siguiente ejercicio.

hacer una clase que se llama correo electronico. esa clase recibe un correo y de respuesta me dice si el correo es valido o no.

es que apenas estamos viendo este tema y soy algo nobato, les agradesco su pronta ayuda.
bye.
Responder Con Cita
  #2  
Antiguo 21-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Perdona, pero, tal como enfocas el problema, deberías revisar la guía de estilo de estos foros: aquí no se está para hacer los ejercicios a nadie. Además, por favor, ten un poco más de vista al titular los hilos que inicies, porque, los títulos son muy útiles cuando se está buscando información en los foros, siempre que dichos títulos sean descriptivos.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 21-03-2008 a las 08:42:44.
Responder Con Cita
  #3  
Antiguo 22-03-2008
jefferson jefferson is offline
Miembro
 
Registrado: dic 2007
Posts: 20
Poder: 0
jefferson Va por buen camino
Cool confucion

hola creo que me estan malinterpretando.
lo que pasa es que solo pido una ayuda en cuanto a el planteamiento de las condiciones en el ejercicio, lo demas esta bien. con esto no te estoy pidiendo de que me realises el ejercicion en si.
si no me supe explicar me disculpan.
bye.
Responder Con Cita
  #4  
Antiguo 22-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Primero que nada sería bueno que especificaras qué entiendes por correo válido. ¿Te estás refiriendo al texto del correo o a si el formato de la dirección es correcto?

Bye
Responder Con Cita
  #5  
Antiguo 22-03-2008
jefferson jefferson is offline
Miembro
 
Registrado: dic 2007
Posts: 20
Poder: 0
jefferson Va por buen camino
especifico mi pregunta

hala amigo.
me refiero mas o menos a lo siguiente:

ingreso un correo como juanito@hotmailcom.
o juanito@yahoo.es o bien sea uno para gmai. como este es un ejercicion de principiantes, solo necesito organizar la condicion que me diga si el correo ingresado es valido o no.

yo tengo un ejercio de clases, pero este es para allar el area de un cuadrado.
osea asi:

unit cuadradounit;
interface
type
Tcuadrado=class
private
lado:integer;
public
procedure setlado(Alado:integer);
function area:integer;
function getlado:integer;
end;
implementation
procedure Tcuadrado.setlado(Alado:integer);
begin
lado:=Alado;
end;
function Tcuadrado.getlado:integer;
begin
result:=lado;
end;
function Tcuadrado.Area:integer;
begin
result:=lado*lado;
end;
end.
end.


la cosa es que en este necesito otro enfoque por lo de la condicion, y alli es donde me enrredo un poco.
Responder Con Cita
  #6  
Antiguo 22-03-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
O sea que estas buscando si el texto entrado es un correo? Asi, si alguien escribe:

- correonovalidao.com
- correo@novalido
- @novalido.com

diga que no lo es?
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 22-03-2008
jefferson jefferson is offline
Miembro
 
Registrado: dic 2007
Posts: 20
Poder: 0
jefferson Va por buen camino
Thumbs up

hola.
si claro amigo a eso me refiero

es que en turbo pascal seria asi:

if (correo<>yahoo.es)or(correo<>hotmail.com)or(correo<>gmail.com)then
begin
writeln('este correo no es valido');
end
else
begin
writeln('correo valido');
end;
end.


pero en delphi nose cambios habrian. bye.
Responder Con Cita
  #8  
Antiguo 22-03-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Delphi y Pascal es lo mismo. Pero el algoritmo que usas no sirve.

Y que pasa si es uno "estesi@esvalido.com"?

Debes es armar un sistema de reglas que son comunes a todas las direcciones de correo. Como por ejemplo, que tiene un @, que antes hay esto y que despues esto.

Para ello, busca en internet como validar un correo electronico, veras muchos ejemplos.
__________________
El malabarista.
Responder Con Cita
  #9  
Antiguo 22-03-2008
jefferson jefferson is offline
Miembro
 
Registrado: dic 2007
Posts: 20
Poder: 0
jefferson Va por buen camino
gracias

pase eso por alto gracias.

ya me pongo atrabajar en eso . hare el planteamiento. bye.
Responder Con Cita
  #10  
Antiguo 25-03-2008
jefferson jefferson is offline
Miembro
 
Registrado: dic 2007
Posts: 20
Poder: 0
jefferson Va por buen camino
Cool

un saludo a todos:

oye parsero ya tengo la condicion: bueno aun que esa es solo para verificar que este el @. pero pues de alli se basan las demas condiciones.
gracias a los que opinaron y/o ayudaron.

for i:=1 to length(email)do
begin
if email[i]='@'then
begin
arroba:=true;
break;
end;
end.

y pues podemos dar por terminado el tema. un que me queda buentrabajo por hacer aun.
bye.
Responder Con Cita
  #11  
Antiguo 25-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jefferson Ver Mensaje
oye parsero ya tengo la condicion: bueno aun que esa es solo para verificar que este el @. pero pues de alli se basan las demas condiciones.
gracias a los que opinaron y/o ayudaron.
Hola jefferson

Aunque esto de validar un correo tiene sus complicaciones, que te parece esto?

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Correo: string;
begin
  Correo := 'usuario@correo.com';
  if (Pos('@',Correo) > 0) and
     (Pos('.',Correo) > 0) then
     ShowMessage('Correo Válido')
  else ShowMessage('Correo Inválido');
end;

Salud OS

PD: Usa las etiquetas delphi para que tu código se vea mejor...
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 26-03-2008
jefferson jefferson is offline
Miembro
 
Registrado: dic 2007
Posts: 20
Poder: 0
jefferson Va por buen camino
Talking gracias

hola pana (a).
pues gracias amigo esta forma de buscar el arroba dentro del correo esta mas entendible que la de mi profesor. y pues como es para trabajar en unidades apartes declarando clases y funciones. ya sabes son bastantes condiciones para validar un correo electronico. le seguire metiendo cosas.
buena contribusion bye.
Responder Con Cita
  #13  
Antiguo 26-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola!
Inspirado en el código de Egostar realize una función que tiene un poco más de control:

Código Delphi [-]
function ValidateEMail(EMail: string): boolean;
var PosA, PosP
begin
  PosA := Pos('@',EMail);
  PosP := Pos('.',EMail);
  result := (PosP > PosA) and (PosA <> 0)
end;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #14  
Antiguo 26-03-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
No hombre, ese codigo permitiria:

@.com!!!!

La forma correcta requiere hacer como minimo, un barrido.
__________________
El malabarista.
Responder Con Cita
  #15  
Antiguo 26-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por mamcx Ver Mensaje
No hombre, ese codigo permitiria:

@.com!!!!

La forma correcta requiere hacer como minimo, un barrido.
Mamx, estamos tratando de darle una idea, más que darle la solución de una. Invitamos a pensar y razonar a jefferson.

Además, por algo dije:

Cita:
que tiene un poco más de control
Pero con respecto a la idea de Egostar, que su código no tiene en cuenta la posición del punto respecto al arroba.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #16  
Antiguo 27-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
A ver que les parece esta otra aproximación

Código Delphi [-]
function ValidEMail(EMail: String): Boolean;
var
  Parts: TStrings;
  Usuario, Servidor: String;
  I: Integer;

begin
  // Seamos pesimistas
  Result := false;

  // Quitamos espacios a los lados, que si bien son incorrectos, no estorban
  EMail := Trim(EMail);

  // Pero no permitamos espacios intermedios
  if Pos(' ', EMail) <> 0 then
    exit;

  Parts := TStringList.Create;

  try
    // Partamos la cadena tomando la @ como delimitador
    Parts.Delimiter := '@';
    Parts.DelimitedText := EMail;

    // Debe haber dos y sólo dos partes...
    if Parts.Count <> 2 then
      exit;

    Usuario := Parts[0];
    Servidor := Parts[1];

    // ...y ninguna puede estar vacía
    if (Usuario = '') or (Servidor = '') then
      exit;

    // Ahora separemos la parte servidor tomando el . como delimitador
    Parts.Delimiter := '.';
    Parts.DelimitedText := Servidor;

    // Debe haber al menos dos partes...
    if Parts.Count < 2 then
      exit;

    // ...pero ninguna vacía
    for I := 0 to Pred(Parts.Count) do
      if Parts[i] = '' then
        exit;

    Result := true;
  finally
    Parts.Free;
  end;
end;

Como digo, es sólo una aproximación así que no pretende hacer más que esto:

1. Determinar que existe una y sólo una @
2. Que hay algo antes (usuario) y después (servidor) de esa @
3. Que después de la @ hay por lo menos dos partes separadas por puntos
4. Que ninguna de esas partes está vacía.

Esto es, se permiten cosas como

usuario@servidor.com

pero no

usuario@servidor
@servidor.com
usuario@@servidor.com
usuario@servidor..com
etc.

No valido el punto en la parte de usuario porque, al menos yo, tengo direcciones de correo de la forma

nombre.apellido@servidor.com

Bye

Última edición por keyboy fecha: 27-03-2008 a las 02:57:30.
Responder Con Cita
Respuesta



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
Ejercicio con Posiciones de dígitos gerupc Varios 19 18-08-2007 18:59:40
Problema con ejercicio en Delphi gerupc Varios 5 11-08-2007 21:39:28
ayuda con un ejercicio por favor! Albert0 JAVA 1 19-06-2007 18:29:00
Ejercicio Solarintg Varios 1 02-12-2006 15:48:07
Cómo repercute el ejercicio en el trabajo Al González Debates 11 15-03-2005 12:35:22


La franja horaria es GMT +2. Ahora son las 14:41:36.


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