|
| Validering af CPR Fra : Ukendt |
Dato : 09-01-06 20:29 |
|
Hej.
Det bliver benyttet ofte, så der må være en, der ligger inde med noget kode
til at validere et CPR-nummer (med modulus11) som er indtastet i en editboks
Er der en herinde, der har sådan noget og vil dele?
| |
Uffe Kousgaard (09-01-2006)
| Kommentar Fra : Uffe Kousgaard |
Dato : 09-01-06 20:35 |
| | |
Ukendt (09-01-2006)
| Kommentar Fra : Ukendt |
Dato : 09-01-06 20:39 |
|
"Uffe Kousgaard" <oh@no.no> skrev i en meddelelse
news:43c2baea$0$84021$edfadb0f@dtext01.news.tele.dk...
> "Museumsmedarbejderen" <Industrimuseet> wrote in message
> news:43c2b960$0$12109$ba624c82@nntp02.dk.telia.net...
>>
>> Er der en herinde, der har sådan noget og vil dele?
> Kunne google ikke finde noget til dig?
Nej. Ikke til Delphi
Men til alt muligt andet inkl. Excel og papir/blyant
> Læs i øvrigt:
> http://www.cpr.dk/Index/dokumenter.asp?o=2&n=0&t=1&d=393&s=4
Ja ved det (desværre) godt. Men er interesseret alligevel
| |
Uffe Kousgaard (09-01-2006)
| Kommentar Fra : Uffe Kousgaard |
Dato : 09-01-06 21:21 |
|
"Museumsmedarbejderen" <Industrimuseet> wrote in message
news:43c2bbc9$0$16993$ba624c82@nntp02.dk.telia.net...
>
> Nej. Ikke til Delphi
>
> Men til alt muligt andet inkl. Excel og papir/blyant
Det er en ret simpel formel, som nemt kan oversættes til delphi kode, hvis
man har f.eks. excel.
hilsen
Uffe
| |
Hans (09-01-2006)
| Kommentar Fra : Hans |
Dato : 09-01-06 20:40 |
|
"Museumsmedarbejderen" <Industrimuseet> skrev i en meddelelse
news:43c2b960$0$12109$ba624c82@nntp02.dk.telia.net...
> Hej.
>
> Det bliver benyttet ofte, så der må være en, der ligger inde med noget
> kode til at validere et CPR-nummer (med modulus11) som er indtastet i en
> editboks
>
> Er der en herinde, der har sådan noget og vil dele?
Fandt dette på min HD
function cleancprnummer(cpr : string) : string;
var
x : byte;
begin
x:=1;
while x<=length(cpr) do
begin
if not (upcase(cpr(.x.)) in (.'0'..'9','A'..'Z'.)) then
delete(cpr,x,1)
else
inc(x);
end;
result:=cpr;
end;
function testcprnummerok(cprnummer : string) : byte;
var
cpr : string;
nr : array(.1..10.) of byte;
x : byte;
verdi : word;
tal : byte;
code : integer;
begin
testcprnummerok:=1;
cpr:=cleancprnummer(cprnummer);
if length(cpr)<>10 then
exit;
for x:=1 to 10 do
begin
val(cpr(.x.),tal,code);
nr(.x.):=tal;
end;
verdi:=4*nr(.1.)+3*nr(.2.)+2*nr(.3.)+7*nr(.4.)+6*nr(.5.)+5*nr(.6.)+
4*nr(.7.)+3*nr(.8.)+2*nr(.9.)+nr(.10.);
if verdi mod 11<>0 then
testcprnummerok:=2
else
testcprnummerok:=3;
end;
-------------------------------------
if testcprnummerok(editcprnummer.text)=2 then
begin
if messagedlg('Det indtastede cprnummer er ikke et gyldigt dansk
cprnummer. Er dette i orden?',mterror,[mbyes,mbno],0)=idno then
begin
editcprnummer.setfocus;
exit;
end;
end;
| |
Ukendt (09-01-2006)
| Kommentar Fra : Ukendt |
Dato : 09-01-06 20:47 |
|
Hej Hans
"Hans" <nomail@noname.dk> skrev i en meddelelse
news:43c2bc0f$0$84034$edfadb0f@dtext01.news.tele.dk...
> "Museumsmedarbejderen" <Industrimuseet> skrev i en meddelelse
> news:43c2b960$0$12109$ba624c82@nntp02.dk.telia.net...
>> Hej.
>>
>> Det bliver benyttet ofte, så der må være en, der ligger inde med noget
>> kode til at validere et CPR-nummer (med modulus11) som er indtastet i en
>> editboks
>>
>> Er der en herinde, der har sådan noget og vil dele?
>
> Fandt dette på min HD
Super godt - vidste ikke at det var SÅ besværligt at lave et tjek på
CPR-nummer.
Kunne jeg få dig til at uddybe de første funktioner lidt for mig. Jeg har
kun været vant til simple procedurer, hvor der ikke er variabler af alle de
typer og beregninger.
> function cleancprnummer(cpr : string) : string;
> var
> x : byte;
> begin
> x:=1;
> while x<=length(cpr) do
> begin
> if not (upcase(cpr(.x.)) in (.'0'..'9','A'..'Z'.)) then
> delete(cpr,x,1)
> else
> inc(x);
> end;
> result:=cpr;
> end;
>
> function testcprnummerok(cprnummer : string) : byte;
> var
> cpr : string;
> nr : array(.1..10.) of byte;
> x : byte;
> verdi : word;
> tal : byte;
> code : integer;
> begin
> testcprnummerok:=1;
> cpr:=cleancprnummer(cprnummer);
>
> if length(cpr)<>10 then
> exit;
>
> for x:=1 to 10 do
> begin
> val(cpr(.x.),tal,code);
> nr(.x.):=tal;
> end;
> verdi:=4*nr(.1.)+3*nr(.2.)+2*nr(.3.)+7*nr(.4.)+6*nr(.5.)+5*nr(.6.)+
> 4*nr(.7.)+3*nr(.8.)+2*nr(.9.)+nr(.10.);
>
> if verdi mod 11<>0 then
> testcprnummerok:=2
> else
> testcprnummerok:=3;
> end;
>
> -------------------------------------
>
> if testcprnummerok(editcprnummer.text)=2 then
> begin
> if messagedlg('Det indtastede cprnummer er ikke et gyldigt dansk
> cprnummer. Er dette i orden?',mterror,[mbyes,mbno],0)=idno then
> begin
> editcprnummer.setfocus;
> exit;
> end;
> end;
>
>
>
| |
Hans (09-01-2006)
| Kommentar Fra : Hans |
Dato : 09-01-06 21:09 |
|
"Museumsmedarbejderen" <Industrimuseet> skrev i en meddelelse
news:43c2bdcb$0$4820$ba624c82@nntp02.dk.telia.net...
> Hej Hans
>
> "Hans" <nomail@noname.dk> skrev i en meddelelse
> news:43c2bc0f$0$84034$edfadb0f@dtext01.news.tele.dk...
>> "Museumsmedarbejderen" <Industrimuseet> skrev i en meddelelse
>> news:43c2b960$0$12109$ba624c82@nntp02.dk.telia.net...
>>> Hej.
>>>
>>> Det bliver benyttet ofte, så der må være en, der ligger inde med noget
>>> kode til at validere et CPR-nummer (med modulus11) som er indtastet i en
>>> editboks
>>>
>>> Er der en herinde, der har sådan noget og vil dele?
>>
>> Fandt dette på min HD
>
> Super godt - vidste ikke at det var SÅ besværligt at lave et tjek på
> CPR-nummer.
>
> Kunne jeg få dig til at uddybe de første funktioner lidt for mig. Jeg har
> kun været vant til simple procedurer, hvor der ikke er variabler af alle
> de typer og beregninger.
<klip kode>
Jow da,
cleancprnummer fjerner ganske enkelt alle tegn som ikke er 0>9 eller A>Z,
grunden til at jeg beholder A>Z er at jeg også benytter den til udenlandske
personer.
Ang. testcprnummerok:
Hvis længden af cprnummeret ikke er 10 returneres værdien 1
Hvis cprnummer er ugyldig returneres værdien 2
Hvis cprnummer er i orden returneres værdien 3
Bemærk: Det er nok 20 år siden (uden at overdrive) at jeg skrev funktionen i
Borland Pascal version et eller andet, så der kan nok pyntes på den.
Mvh
HK
| |
Uffe Kousgaard (09-01-2006)
| Kommentar Fra : Uffe Kousgaard |
Dato : 09-01-06 21:33 |
|
"Hans" <nomail@noname.dk> wrote in message
news:43c2c2f8$0$84015$edfadb0f@dtext01.news.tele.dk...
>
> Bemærk: Det er nok 20 år siden (uden at overdrive) at jeg skrev funktionen
> i Borland Pascal version et eller andet, så der kan nok pyntes på den.
Og det gør du så alligevel for Borland Pascal kom først til i 1992:
http://www.dragonsoftru.com/delphi_hist.php
Men har du været med helt siden turbo pascal 2, så kan det godt være sandt.
Jeg startede selv med TP3.
hilsen
Uffe
| |
Hans (09-01-2006)
| Kommentar Fra : Hans |
Dato : 09-01-06 21:44 |
|
"Uffe Kousgaard" <oh@no.no> skrev i en meddelelse
news:43c2c879$0$84037$edfadb0f@dtext01.news.tele.dk...
> "Hans" <nomail@noname.dk> wrote in message
> news:43c2c2f8$0$84015$edfadb0f@dtext01.news.tele.dk...
>>
>> Bemærk: Det er nok 20 år siden (uden at overdrive) at jeg skrev
>> funktionen i Borland Pascal version et eller andet, så der kan nok pyntes
>> på den.
>
> Og det gør du så alligevel for Borland Pascal kom først til i 1992:
> http://www.dragonsoftru.com/delphi_hist.php
>
> Men har du været med helt siden turbo pascal 2, så kan det godt være
> sandt. Jeg startede selv med TP3.
Ja Turbo Pascal var det det hed :), kan ikke huske hvad version jeg startede
med men det kan da godt være det kun har været 18 år siden så.
/HK
| |
Finn Bindeballe (10-01-2006)
| Kommentar Fra : Finn Bindeballe |
Dato : 10-01-06 07:53 |
|
hey....
er du saa ung....*G*....
jeg startede med compas-pascal - til CPM....*S* -(nok omkring 83-84)...
/finn
| |
Ukendt (13-01-2006)
| Kommentar Fra : Ukendt |
Dato : 13-01-06 17:45 |
|
Tak for det Finn
"Hans" <nomail@noname.dk> skrev i en meddelelse
news:43c2c2f8$0$84015$edfadb0f@dtext01.news.tele.dk...
> "Museumsmedarbejderen" <Industrimuseet> skrev i en meddelelse
> news:43c2bdcb$0$4820$ba624c82@nntp02.dk.telia.net...
>> Hej Hans
>>
>> "Hans" <nomail@noname.dk> skrev i en meddelelse
>> news:43c2bc0f$0$84034$edfadb0f@dtext01.news.tele.dk...
>>> "Museumsmedarbejderen" <Industrimuseet> skrev i en meddelelse
>>> news:43c2b960$0$12109$ba624c82@nntp02.dk.telia.net...
>>>> Hej.
>>>>
>>>> Det bliver benyttet ofte, så der må være en, der ligger inde med noget
>>>> kode til at validere et CPR-nummer (med modulus11) som er indtastet i
>>>> en editboks
>>>>
>>>> Er der en herinde, der har sådan noget og vil dele?
>>>
>>> Fandt dette på min HD
>>
>> Super godt - vidste ikke at det var SÅ besværligt at lave et tjek på
>> CPR-nummer.
>>
>> Kunne jeg få dig til at uddybe de første funktioner lidt for mig. Jeg har
>> kun været vant til simple procedurer, hvor der ikke er variabler af alle
>> de typer og beregninger.
>
> <klip kode>
>
> Jow da,
>
> cleancprnummer fjerner ganske enkelt alle tegn som ikke er 0>9 eller A>Z,
> grunden til at jeg beholder A>Z er at jeg også benytter den til
> udenlandske personer.
>
> Ang. testcprnummerok:
>
> Hvis længden af cprnummeret ikke er 10 returneres værdien 1
> Hvis cprnummer er ugyldig returneres værdien 2
> Hvis cprnummer er i orden returneres værdien 3
>
> Bemærk: Det er nok 20 år siden (uden at overdrive) at jeg skrev funktionen
> i Borland Pascal version et eller andet, så der kan nok pyntes på den.
>
> Mvh
> HK
>
>
| |
Ukendt (13-01-2006)
| Kommentar Fra : Ukendt |
Dato : 13-01-06 19:03 |
|
"Museumsmedarbejderen" <.> skrev i en meddelelse
news:43c7d909$0$9303$ba624c82@nntp02.dk.telia.net...
> Tak for det Finn
Undskyld - det var selvfølgelig Hans, jeg skulle sige tak til
| |
|
|