aus 9 Zeichen eine 16 stellige seriennummer

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

aus 9 Zeichen eine 16 stellige seriennummer

Beitrag von sen-me »

hi

Code: Alles auswählen

  Dim key.b(9)
  Dim nummer.s(2)
  j.b=0
  For i.b=0 To 8
   While key(i)<33
    key(i)=Random(126)
   Wend
   schluessel.s+Chr(key(i))
   If i=3 Or i=6 : j+1 : EndIf
   nummer(j)+Str(key(i))
  Next
schluessel hat nun nen 9 stelligen zeichensatz
nummer(0)hat die 1. 3 stellen
nummer(1)hat die 2. 3 stellen
und nummer(2) den rest
wie kann ich nun eine 16 stellige seriennummer daraus machen? die nur aus nummern und Buchstaben bestehn solln
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

Schau dir mal in der PB Hilfe unter Cipher folgende Befehle an:

CRC32Fingerprint
DESFingerprint
MD5Fingerprint

DESFingerprint ist glaube ich dein Freund.
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@sen-me

ich versteh überhaupt nicht, worauf du hinaus willst...

btw:
warum nimmst du nicht

Code: Alles auswählen

key(i) = Random(93)+33
statt

Code: Alles auswählen

   While key(i)<33 
    key(i)=Random(126) 
   Wend 
außerdem ist dein string nummer() nicht eindeutig, weil die zahlen,
die sich ergeben, mal 2 und mal 3 stellen haben.

evtl wäre

Code: Alles auswählen

nummer(j) + Right("0"+Str(key(i)),3)
besser.

eine 16-stellige seriennummer aus ziffern und großbuchstaben läßt sich so erzeugen:

Code: Alles auswählen

For n=0 To 15
    Char = Random (35)+48
    If Char > 57 : Char+7 : EndIf
    SerienNr$+Chr(Char)
Next

Debug SerienNr$
sollen kleinbuchstaben auch dazu:

Code: Alles auswählen

For n=0 To 15
    Char = Random (61)+48
    If Char > 83
        Char + 13
    ElseIf Char > 57
        Char+7
    EndIf
    SerienNr$+Chr(Char)
Next

Debug SerienNr$
...vielleicht hilft das ja ansatzweise...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten