HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

E-mail cím generálás


Példaprogram letöltése

7770 bájt

Bizonyos esetekben szükség lehet arra, hogy egy adott felhasználó nevéből generáljunk automatikusan egy e-mail címet úgy, hogy csak a szabályos karaktereket tartalmazza. Cikkünkben elkészítünk egy kis alkalmazást, melynek segítségével a megadott személynévből és domain névből generálunk egy e-mail címet. A címből kimaradnak a szimbólumok, a szóközöket pedig pontokra cseréljük ki.

Az e-mail cím létrehozásakor szabtunk néhány feltételt, melyeket be kell tartania a címnek. Ezek a következők:
  • Nem tartalmazhat nagybetűs karaktereket
  • Nem tartalmazhat ékezetes karaktereket
  • Nem tartalmazhat szimbólumokat, csupán pontot
  • A megadott domain névtől egy „@” karakter válassza el.
A feltételek meghatározása után lássunk is neki.
Annak érdekében, hogy a cím ne tartalmazzon ékezetes karaktereket, létrehoztunk két karakterláncot, mely sorban tartalmazza a nem megengedett kisbetűs, és nagybetűs ékezetes karaktereket.
private string invalids = "áéíóöőúüűÁÉÍÓÖŐÚÜŰ";
Az egyszerűség kedvéért úgy jártunk el, hogy létrehoztunk egy másik karakterláncot is a fenti karaktereket helyettesítő karakterekből, így amikor a megadott név karaktereit ellenőrizzük, egyszerűen csak kicseréljük a név szabálytalan karaktereit az adott pozícióban található szabályos karakterrel.
private string valids = "aeiooouuuaeiooouuu";
A függvény, amely elvégzi az e-mail cím generálását, az EmailFromName nevet viseli, és két paramétert vár: a név, és a domain név karakterláncait.
private string EmailFromName(string name, string domain)
{
  string email = "";
  ...
A megadott névből induláskor levágjuk az esetlegesen határoló szóközöket, és elkezdjük a karakterek ellenőrzését:
  name = name.Trim();
  for(int i=0;i<name.Length;i++)    
  {
A megadott név adott pozícióban található karakterét csak akkor ellenőrizzük, ha a karakter számjegy, nagybetűs, vagy kisbetűs karakter:
    if (Char.IsDigit(name[i]) || Char.IsLower(name[i]) || Char.IsUpper(name[i]))
    {
Ekkor megvizsgáljuk, hogy tartalmaz-e szabálytalan, a fenti karakterláncban található elemet:
      pos = invalids.IndexOf(name[i]);
Ha nem, akkor egyszerűen felfűzzük a visszaadandó karakterláncra úgy, hogy mindenképpen kisbetűs legyen:
      if (pos == -1)
      {
        email += Char.ToLower(name[i]);  
      }
Ha szabálytalan karaktert tartalmaz, akkor helyette a szabályos karakterek láncának azonos pozícióban található elemét fűzzük fel a kimeneti láncba:
      else
      {
        email += valids[pos];
      }
    }
Ha a karakter szóköz, akkor egy pont (’.’) karaktert fűzünk a láncba:
    else
    {
      if (name[i] == ' ')
      {
        email += ".";
      }
    }
  }
Majd hozzácsapjuk a lánc végére a domain nevet egy ’@’ (at) karakterrel elválasztva a kapott névtől:
  email += "@" + domain;
  return email;
}

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 222. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |