24 x 12

  • Hallo zusammen.

    Ich habe folgende GUI:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $Test = GUICreate("Test", 578, 388, 193, 125)
    $Group1 = GUICtrlCreateGroup("24 x 12", 16, 48, 545, 321)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Input1 = GUICtrlCreateInput("Name", 56, 16, 145, 21)
    $Name = GUICtrlCreateLabel("Name", 16, 16, 38, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Passwort = GUICtrlCreateLabel("Passwort", 216, 16, 66, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Input2 = GUICtrlCreateInput("Passwort", 288, 16, 129, 21)
    $OK = GUICtrlCreateButton("OK", 432, 16, 129, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]

    Ich möchte, wenn man auf den OK-Button drückt folgendes passiert:

    Es sollen 12 Zeilen à 24 Buchstaben, Zahlen und Sonderzeichen erstellt werden.

    Erlaubt sind A-Z und a-z und 0-9 und alle allgemein erlaubte Sonderzeichen die man z. B. auch für ein Passwort verwenden darf.
    Es sollte die Auswahl über Name und Passwort festgesetzt werden, d. h. wenn ich beide Angaben habe, das die Ausgabe immer die gleiche ist.

    Wer kann mir da helfen?

    In bester Urlaubsstimmung und LG,

    Crazy-A(lina)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • So vielleicht:
    Kann halt keine Sonderzeichen, aber naja xD.

    Spoiler anzeigen
    [autoit]

    $file = @DesktopDir & "\test.txt"
    $fileopen = FileOpen($file, 2)
    $line = 0

    [/autoit] [autoit][/autoit] [autoit]

    _write()

    [/autoit] [autoit][/autoit] [autoit]

    func _write()
    For $i = 1 To 24
    If $line = 12 then Exit
    $random = Random(1, 3, 1)
    If $random = 1 Then
    $zahlen = Random(0, 9, 1)
    FileWrite($fileopen, $zahlen)
    ElseIf $random = 2 Then
    $buchstb1 = Chr(Random(Asc("a"), Asc("z"), 1))
    FileWrite($fileopen, $buchstb1)
    ElseIf $random = 3 Then
    $buchstb2 = Chr(Random(Asc("A"), Asc("Z"), 1))
    FileWrite($fileopen, $buchstb2)
    EndIf
    If $i = 24 then
    FileWrite($fileopen, @CRLF)
    $line += 1
    _write()
    EndIf
    Next
    EndFunc

    [/autoit]

    Mit deiner GUI verstehe ich nid ganz, was du vor hast ^^.

    Edit: Vielleicht für deine GUI so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $line = 0
    $string = ""

    [/autoit] [autoit][/autoit] [autoit]

    $Test = GUICreate("Test", 578, 388, 193, 125)
    $Group1 = GUICtrlCreateGroup("24 x 12", 16, 48, 545, 321)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $List = GUICtrlCreateList("", 28, 65, 520, 300)
    $Input1 = GUICtrlCreateInput("Name", 56, 16, 145, 21)
    $Name = GUICtrlCreateLabel("Name", 16, 16, 38, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Passwort = GUICtrlCreateLabel("Passwort", 216, 16, 66, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Input2 = GUICtrlCreateInput("Passwort", 288, 16, 129, 21)
    $OK = GUICtrlCreateButton("OK", 432, 16, 129, 25, 0)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $OK
    _write()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _write()
    For $i = 1 To 24
    If $line = 12 Then
    GUICtrlSetData($List, $string)
    Return
    EndIf
    $random = Random(1, 3, 1)
    If $random = 1 Then
    $zahlen = Random(0, 9, 1)
    $string &= $zahlen
    ElseIf $random = 2 Then
    $buchstb1 = Chr(Random(Asc("a"), Asc("z"), 1))
    $string &= $buchstb1
    ElseIf $random = 3 Then
    $buchstb2 = Chr(Random(Asc("A"), Asc("Z"), 1))
    $string &= $buchstb2
    EndIf
    If $i = 24 Then
    $string &= "|"
    $line += 1
    _write()
    EndIf
    Next
    EndFunc ;==>_write

    [/autoit]
  • blubbstar: Das soll wohl so eine Passwortkarte werden...
    etwa so:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    Opt("GUIONEVENTMODE",1)
    $Test = GUICreate("Test", 578, 388, 193, 125)
    GUISetOnEvent( $GUI_EVENT_CLOSE,"_Exit")
    $Group1 = GUICtrlCreateGroup("24 x 12", 16, 48, 545, 321)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Input1 = GUICtrlCreateInput(@UserName, 56, 16, 145, 21)
    $Name = GUICtrlCreateLabel("Name", 16, 16, 38, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Passwort = GUICtrlCreateLabel("Passwort", 216, 16, 66, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Input2 = GUICtrlCreateInput("", 288, 16, 129, 21)
    $OK = GUICtrlCreateButton("OK", 432, 16, 129, 25, 0)
    GUICtrlSetOnEvent(-1,"_Create")
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUISetState(@SW_SHOW)
    Dim $lbl[13][25]
    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    Exit
    EndFunc
    Func _Create()
    $a_name = StringUpper(GUICtrlRead($Input1)) ; Namen holen
    $a_Passwort = GUICtrlRead($Input2) ;Passwort holen
    $z = StringToBinary($a_name&$a_Passwort) ; Zusammenketten, Binärstring draus machen :)
    While StringLen($z) < 140 ; damit der String lang genug ist
    $z &= $z
    WEnd
    For $i = 1 To 12 ; Jede Zeile
    For $y = 1 To 24 ; Jede Spalte

    [/autoit] [autoit][/autoit] [autoit]

    ; Aus dem NamePWString wird eine Teilzeichenkette geholt und, da Hex, in Dezimalzahlen umgewandelt.
    ; und halt mit den Koordinaten addiert, multipliziert, usw, damit was einigermaßen tolles rauskommt :)
    $x = 33 + $i*$y + Dec(StringMid($z,$i+$y,Mod(Abs($y-$i),6)))

    [/autoit] [autoit][/autoit] [autoit]

    While $x > 126 ; Max. Ascii-Key
    $x -= (67+$y+Mod($i,$y)) ; Nochmal ein bischen "zufälliger", abhängig vom Durchlauf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    If $x < 33 Then $x = 33 ; Minimaler ASCII-Wert
    If $y = 0 And $i = 3 Then MsgBox(0, '', $x)

    [/autoit] [autoit][/autoit] [autoit]

    ;altes Label löschen, neues erstellen
    GUICtrlDelete($lbl[$i][$y])
    $lbl[$i][$y] = GUICtrlCreateLabel( Chr($x),22*$y,60+22*$i,22,22,$SS_CENTER+$SS_SUNKEN)
    GUICtrlSetFont(-1,12,600)
    GUICtrlSetBkColor(-1,0xAAAAFF)
    ; Label update Ende

    [/autoit] [autoit][/autoit] [autoit]

    Next
    Next
    EndFunc

    [/autoit]

    //Edit: Kommentare dazugemacht.

    Einmal editiert, zuletzt von progandy (21. April 2008 um 16:32)

  • Hallo.

    Da sagte ich mal herzlichen DANK.

    Aber ich meine, das man die Zeichen nicht alle für Passwörter nutzen könnte. Da gibt es doch nur gewisse Zeichen, die man dazu benutzen darf, oder?

    Aber ansonsten richtig gut !!!

    LG, Crazy-A(lina)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Crazy-A (21. April 2008 um 16:36)

  • Wie mach ich es, das als Sonderzeichen nur folgende angenommen werden:

    Spoiler anzeigen
    [autoit]

    Dec Char
    33 !
    34 "
    35 #
    36 $
    37 %
    38 &
    39 '
    40 (
    41 )
    42 *
    43 +
    44 ,
    45 -
    47 /
    58 :
    59 ;
    60 <
    61 =
    62 >
    63 ?
    64 @
    92 \
    95 _

    [/autoit]

    Das sind gem. Internet die am meinsten zugelassenen Sonderzeichen.

    Danke und habt einen schönen sonnigen Feierabend.

    LG, Crazy-A(lina)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • peethebee .
    Das macht, wenn ich im Juni in Nürnberg bin, wohl ein Cappu in Würzburg ;)
    Fahre ja eh dran vorbei LOL

    Aber nochmals zu meinem Problem, kann man die Sonderzeichen so begrenzen, wie ich 17:35 Uhr gepostet habe?

    LG, Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Hallo zusammen.

    Habe jetzt die Nacht über versucht das Problem, das ich noch hatte (siehe Gestern, 17:35) zu lösen, aber ich bekomme die Einschränkung der Sonderzeichen nicht hin.
    Habe es mit AND, OR versucht, aber erfolglos.

    Wo und wie schreibt man diese Einschränkung?

    Sorry, aber jetzt werde ich gleich noch schnell frühstücken und dann erst einmal etwas schlafen.

    Es grüßt,

    Crazy-A(lina)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • hmm...
    Die Codes für alle erlaubten zeichen in ein Array und dann ArraySerch z.B.

  • @JoEtHeKiLlEr

    Wenn Du jetzt noch sagst wie man / Frau das einbaut, zeigst Du das Du es auch anwenden kannst. Ich weiß es nicht und kann es noch nicht anwenden.

    Crazy-A

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr