Avatar billede deacon Nybegynder
11. marts 2002 - 21:17 Der er 17 kommentarer og
2 løsninger

Generer 15 tilfældige cifre...

Hvordan får jeg lavet noget, som genererer et tilfældigt tal på 15 cifre ved et klik på et button?
Avatar billede morten_s Nybegynder
11. marts 2002 - 21:22 #1
procedure TForm1.FormActivate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := IntToStr(Random(999999999999999));
end;
Avatar billede cms Nybegynder
11. marts 2002 - 21:22 #2
function RandomStr(C: Integer): String;
begin
  while C>0 do
  begin
    Result := Result + IntToStr(Random(10));
    Dec(C);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(RandomStr(15));
end;

initialization
  Randomize;
end.
Avatar billede morten_s Nybegynder
11. marts 2002 - 21:23 #3
Rettelse: Du gør sådan her


procedure TForm1.FormActivate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  Label1.Caption := '';
  for i := 1 to 15 do
    Label1.Caption := Label1.Caption + IntToStr(Random(9));
end;
Avatar billede deacon Nybegynder
11. marts 2002 - 21:24 #4
På 15 cifre, og ikke minus!
Avatar billede speedy Nybegynder
11. marts 2002 - 21:24 #5
procedure TForm1.Button1Click(Sender: TObject);
var
  i: 1..15;
  tmpStr: String;
begin
  tmpStr := IntToStr(random(9)+1);
  for i := 1 to 14 do
    tmpStr := tmpStr + IntToStr(random(10));
  ShowMessage(tmpStr);
end;
Avatar billede morten_s Nybegynder
11. marts 2002 - 21:26 #6
Uanset hvilke du vælger så husk at kør Randomize når ddu starter dit program
Avatar billede deacon Nybegynder
11. marts 2002 - 21:28 #7
Lige nu kan jeg se at morten_s' svar virker korrekt, men hvordan fungerer dit cms?
Avatar billede morten_s Nybegynder
11. marts 2002 - 21:29 #8
mit virker kun korekt hvis du udskifter 9 med 10 i
Label1.Caption := Label1.Caption + IntToStr(Random(10));
Avatar billede morten_s Nybegynder
11. marts 2002 - 21:31 #9
CMS'es løsning svare til min han har bare lagt den i en function
Avatar billede deacon Nybegynder
11. marts 2002 - 21:32 #10
Kan det lade sig gøre sådan...

F.eks. 0000-00000-0000
0'erne er cifre...?
Avatar billede speedy Nybegynder
11. marts 2002 - 21:32 #11
deacon>>Du siger at morten_s's virker korrekt ? må det 15 cifrede tal godt starte med et 0 ? hvis det må, så brug mortens ellers brug min. den sikrer at der ikke startes med et 0.

/SpEeDy
Avatar billede deacon Nybegynder
11. marts 2002 - 21:33 #12
Altså, kan man gøre sådan at de 15 cifre er ialt tal + bindestreg.
Dvs. at når man trykker på det button ser det sådan ud:
4 cifre-5 cifre-4cifre ?
Avatar billede deacon Nybegynder
11. marts 2002 - 21:33 #13
(Bindestreg)
Avatar billede morten_s Nybegynder
11. marts 2002 - 21:43 #14
Prøv sådan her

procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
  TmpStr1, TmpStr2 : string;
begin
  Label1.Caption := '';
  for i := 1 to 15 do
    Label1.Caption := Label1.Caption + IntToStr(Random(10));
  TmpStr1 := Label1.Caption;
  TmpStr2 := '';
  for i := 1 to 4 do
    TmpStr2 := TmpStr2 + TmpStr1[i];
  TmpStr2 := TmpStr2 + '-';
  for i := 5 to 9 do
    TmpStr2 := TmpStr2 + TmpStr1[i];
  TmpStr2 := TmpStr2 + '-';
  for i := 10 to 15 do
    TmpStr2 := TmpStr2 + TmpStr1[i];
  TmpStr2 := TmpStr2 + '-';
  Label1.Caption := TmpStr2;

end;
Avatar billede morten_s Nybegynder
11. marts 2002 - 21:45 #15
den sidste bindestreg er for meget
Avatar billede deacon Nybegynder
11. marts 2002 - 21:47 #16
Ja, men den bliver genereret sådan

xxxx-xxxxx-xxxxxx

Den skal genereres med xxxx-xxxxx-xxxx

x er cifre...
Avatar billede morten_s Nybegynder
11. marts 2002 - 21:53 #17
ja men så har du jo kun brug for 13 tal *GGG*

procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
  TmpStr1, TmpStr2 : string;
begin
  Label1.Caption := '';
  for i := 1 to 13 do
    Label1.Caption := Label1.Caption + IntToStr(Random(10));
  TmpStr1 := Label1.Caption;
  TmpStr2 := '';
  for i := 1 to 4 do
    TmpStr2 := TmpStr2 + TmpStr1[i];
  TmpStr2 := TmpStr2 + '-';
  for i := 5 to 9 do
    TmpStr2 := TmpStr2 + TmpStr1[i];
  TmpStr2 := TmpStr2 + '-';
  for i := 10 to 13 do
    TmpStr2 := TmpStr2 + TmpStr1[i];
  Label1.Caption := TmpStr2;
end;
Avatar billede deacon Nybegynder
11. marts 2002 - 21:57 #18
I får begge jeres points, selvom morten_s lige hjalp en tand mere med :)

Kan jeg forresten få dit ICQ nr., morten_s?
Avatar billede deacon Nybegynder
11. marts 2002 - 22:01 #19
Har ikke lige tid nu, så kan du ikke adde mig på nr.: 147741921
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
Kurser inden for grundlæggende programmering

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