Avatar billede neoman Novice
03. oktober 2007 - 01:04 Der er 5 kommentarer og
1 løsning

Username generator script

Nogen som kender et script til at generere brugernavne ?

Det skal være af den type hvor brugeren indtaster "ole", systemet vender tilbage med at "ole er optaget", og så foreslår ting såsom

ole37
ole2008
oleX

osv
hvor forslagene naturligvis endnu ikke er optaget i db'en.

Jeg orker simpelthen ikke at strikke noget sammen selv;)
Avatar billede arne_v Ekspert
03. oktober 2007 - 01:57 #1
pseudo kode:

try
  un = user.Text
  if user_is_in_db(un) then
    i = 2
    do
      un = user.Text + i
    while user_is_in_db(un)
  end if
  create un
catch DuplicateException
  throw "sorry - sombody created the username just before you did"
Avatar billede neoman Novice
03. oktober 2007 - 11:20 #2
tak arne - det er et godt forslag. jeg venter lidt, hvis nogen har noget a la google/yahoo/msn/skype hvor man lige får tilbudt en liste af navne som er nemme at huske  dette er et "nice to have", og ikke "must have", så jeg tillader mig at være doven;)
Avatar billede neoman Novice
07. oktober 2007 - 13:37 #3
Er der ingen som har en ready-made algoritme eller script med lidt mere kød på ? For ole187 er bedre end ingenting, men kunne stadig tænke mig noget i stil med det de store tjenester tilbyder.
Avatar billede arne_v Ekspert
07. oktober 2007 - 17:44 #4
Jeg tror at det er grusomt svært at konstruere et godt navn udfra et brugernavn
der allerede eksisterer.

Hvis man kender fornavn og efternavn er der nogle muligheder.

Kode:

        public delegate bool InUse(string s);
        public static string FindFree(string first, string last, InUse test)
        {
            string s;
            s = first;
            if(!test(s)) return s;
            s = last;
            if(!test(s)) return s;
            s = first[0] + last;
            if(!test(s)) return s;
            s = first + last[0];
            if(!test(s)) return s;
            s = first + last;
            if(!test(s)) return s;
            s = first[0] + "_" + last;
            if(!test(s)) return s;
            s = first + "_" + last[0];
            if(!test(s)) return s;
            s = first + "_" + last;
            if(!test(s)) return s;
            int i = 1;
            for(;;)
            {
                i++;
                  s = first + i;
                if(!test(s)) return s;
            }
        }
Avatar billede neoman Novice
07. oktober 2007 - 21:57 #5
Det lykkes da meget godt for se store tjenester at ryste op med noget fornuftigt. Men jeg kan se der ikke kommer mere her, så mange tak for din hjælp og læg et svar.
Avatar billede arne_v Ekspert
07. oktober 2007 - 22:28 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Saab Danmark A/S

Senior Software Developer

Udviklings- og Forenklingsstyrelsen

Kontorchef med ansvar for tværgående service management

Københavns Professionshøjskole

Nytænkende og agil IT-projektleder

Udviklings- og Forenklingsstyrelsen

ITSM-koordinator