Huhu!
Ich habe NICHT das Problem , dass das CD-Key-Generieren nicht klappt.
Sondern folgendes:
Ich generiere erfolgreich einen CD-Key (könnt es euch unten mal anschauen)
Nun generiert der mir aber sowas wie '888B' oder 'RRR3' , '222P' usw.
Ein paar Beispiele vom Generator selbst:
3356-996C-883B , 2882-AWWA-1MM1 , 5224-6AAR-311P ,
Immer an der gleichen Stelle sind 2 oder 3 Buchstaben nach dem -
Wie verhindere ich dass? Also dieses doppelte oder sogar 3-Fache?
Hier der Code:
(habe auch Kommentare dazu geschrieben)
Delphi-Quellcode:
// Das hier ist nun zum generieren des Codes selbst
function CDKey(Seed:String): String;
const
Key1:Array[0..9] of Char = ('T','5','A','9','R','6','C','0','W','7');
Key2: Array[0..9] of Char = ('4','U','1','8','P','3','B','2','M','8');
var i: integer;
begin
result := Seed + '-';
for i:= 1 to length(Seed) do
result := result + Key1[Ord(Seed[i])-48];
result := result + '-';
for i:= 1 to length(Seed) do
result := result + Key2[Ord(Seed[i])-48];
end;
//Das hab ich mir woher kopiert um ein Zufallspasswort zu erhalten , kein vorgegebenes
function RandomPassword(PLen:Integer):String;
var
str:String;
begin
Randomize;
str:='0123456789';
Result:='';
repeat
Result:=Result+str[Random(Length(str))+1];
until(Length(Result)=PLen)
end;
//Hier generiere ich das Passwort
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := CDKey(Copy(RandomPassword(4),1,4))
end;
//hier prüfe ich es nochmal , ist aber nicht soo wichtig
procedure TForm1.Button2Click(Sender: TObject);
begin
if CDKey(Copy(Edit1.Text,1,4)) = Edit1.Text then
ShowMessage('Der angegebene CD-Key ist:' + #13 + 'Richtig') else ShowMessage('Der angegebene CD-Key ist:' + #13 + 'Falsch')
end;