Persönliches Telefonbuch

  • Hey,
    hatte ein bisschen langeweile in der letzten Stunde. Und da hat mir ein "Entscheider" - Script von einem AutoIt Forum User - gesagt, dass ich ein Telefonbuch programmieren soll.
    Gesagt getan. Hier ist das Telefonbuch; sicher noch nicht fertig aber Langeweile überbrückt.

    Spoiler anzeigen
    [autoit]


    ;Telefonbuch
    #include <GuiConstantsEx.au3>
    #include <String.au3>
    ;Konstrolle von data.ini
    If Not FileExists ( @ScriptDir & "\data.ini" ) Then
    IniWrite ( "data.ini", "ID", "Nummer", "0" )
    IniWrite ( "data.ini", "List", "", "" )
    EndIf
    ;Kontrolle von data.ini Ende
    #Region
    ;GUI MAIN-FENSTER
    $gui = GUICreate ( "Telefonbuch", 600, 400 )
    $b_del = GUICtrlCreateButton ( "Löschen", 58, 120, 80, 30 )
    $b_s = GUICtrlCreateButton ( "Search", 58, 165, 80, 30 )
    $b_add = GUICtrlCreateButton ( "Add", 58, 210, 80, 30 )
    $b_adel = GUICtrlCreateButton ( "Alle Löschen", 58, 255, 80, 30 )
    $b_list = GUICtrlCreateButton ( "List", 58, 300, 80, 30 )
    $b_clear = GUICtrlCreateButton ( "Clear", 58, 345, 80, 30 )
    $list = GUICtrlCreateList("", 200, 100, 390, 290)
    GUICtrlSetLimit(-1, 200 )
    GUICtrlSetData(-1, "" )
    GUISetState ( @Sw_show )
    ;GUI MAIN-FENSTER ENDE
    #EndRegion
    ;List
    If FileExists ( @ScriptDir & "\data.ini" ) Then
    $list_show = IniReadSection ( @ScriptDir & "\data.ini", "List" )
    For $i = 1 To $list_show[0][0]
    GUICtrlSetData($list, $list_show[$i][1] )
    Next
    EndIf
    ;List Ende
    ;$GUI_EVENT_CLOSE ( "X"-Button )
    _main()
    Func _main()
    While 1
    ;Var
    Local $id = IniRead ( "data.ini", "ID", "Nummer", "NotFound" )
    ;Var Ende
    $nMsg = GUIGetMsg()
    If $nMsg = $GUI_EVENT_CLOSE Then
    Exit
    EndIf
    ;$GUI_EVENT_CLOSE ( "X"-Button ) ende
    ;Main() Code
    ;Nummer/Name Hinzufügen
    Switch $nMsg
    Case $b_add
    GUICtrlSetData($list, "" )
    $n = InputBox ( "Hinzufügen", "Name eingeben:" )
    $name = _stringProper ( $n )
    GUICtrlSetData($list, "Name: " & $name )

    If @error Then
    Exit
    ElseIf $name = "" Then
    MsgBox ( 0, "Fehler", "Name darf nicht lehr sein" )

    _main()
    EndIf

    $nummer = InputBox ( "Hinzufügen", "Nummer eingeben:" )

    If @error Then
    Exit
    ElseIf $name = "" Then
    MsgBox ( 0, "Fehler", "Nummer darf nicht lehr sein" )
    _main()
    EndIf

    GUICtrlSetData($list, "Nummer: " & $nummer )
    $S = InputBox ( "Hinzufügen", "Status eingeben ( Freund, Verwandter etc... ):" )
    $Status = _StringProper ( $S )
    GUICtrlSetData($list, "Status: " & $Status )
    IniWrite ( "data.ini", $name, "Name", $name )
    IniWrite ( "data.ini", $name, "Nummer", $nummer )
    IniWrite ( "data.ini", $name, "Status", $Status )
    Iniwrite ( "data.ini", "ID", "Nummer", $id + 1 )
    Iniwrite ( "data.ini", $name, "ID", $id )
    Iniwrite ( "data.ini", "List", $id, $name & " " & $nummer & " " & $Status)

    ;Nummer/Name Hinzufügen ende
    ;Name Suchen
    Case $b_s
    GUICtrlSetData($list, "" )
    $n = InputBox ( "Suche", "Name eingeben: " )
    $name = _StringProper ( $n )
    $ininame = IniRead ( "data.ini", $name, "Name", "" )
    $ininummer = IniRead ( "data.ini", $name, "Nummer", "" )
    $inistatus = IniRead ( "data.ini", $name, "Status", "" )
    If $ininame and $ininummer = True Then
    GUICtrlSetData($list, "Name: " & $name )
    GUICtrlSetData($list, "Nummer: " & $ininummer )
    GUICtrlSetData($list, "Status: " & $inistatus )
    Else
    MsgBox ( 4096, "Fehler", "Name wurde nicht gefunden!" )
    EndIf
    ;Name Suchen ende
    ;Löschen eines Eintrags
    Case $b_del
    GUICtrlSetData($list, "" )
    $name = Inputbox ( "Löschen", "Name eingeben: " )
    $ininame = IniRead ( "data.ini", $name, "Name", "" )
    $iniid = IniRead ( "data.ini", $name, "ID", "" )
    IniDelete ( "data.ini", $name )
    IniWrite ( "data.ini", "List", $iniid, "" )
    If $ininame = True Then
    GUICtrlSetData($list, $name & " wurde erfolgreich gelöscht!" )
    Else
    MsgBox ( 0, "Fehler", "Der Eintrag " & $name & " ist nicht vorhanden!" )
    EndIf

    ;Löschen eines Eintrags ende
    ;Löschen aller Einträge
    Case $b_adel
    FileDelete ( @ScriptDir & "\data.ini" )
    GUICtrlSetData($list, "Alle Einträge wurden gelöscht!" )
    ;Löschen aller Einträge ende
    ;Auflisten der Namen/Nummern/Staten
    Case $b_list
    $list_sh = IniReadSection ( @ScriptDir & "\data.ini", "List" )
    For $i = 1 To $list_sh[0][0]
    GUICtrlSetData($list, $list_sh[$i][1])
    Next
    ;Auflisten der Namen/Nummern/Staaten
    ;Löschen des Fensters
    Case $b_clear
    GUICtrlSetData ( $list, "" )
    ;Löschen des Fensters Ende
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Tipps und Kritik sind erwünscht. ;)
    mfG

  • Bakku: ja der ist ganz Praktisch :thumbup:

    @Faweyr: genau das richtige Script für mich^^. Ich vergesse Sachen schoneinmal schneller ;) :P

  • Jub, freue mich das es dir hilft. Ich schrieb es schon mal vor längerer Zeit. Damals kannte ich mich in Autoit noch nicht so gut aus, deshalb ist vielleicht das ein oder andere ein wenig umständlich. ;)

  • super47: hmm, wüsste jetzt im ersten Moment nicht woran das liegen könnte. Was kommen denn da zum Beispiel für Fehlermeldungen?

    mfG

  • hi

    habe den code aus dem spoiler

    ev nicht alle include ??

    ich lade nacher mal die datei runter

    gruss
    roland

  • Naja, ich denke das das Kopierte falsch ist...also das somit der Syntax auch falsch ist. Versuch einfach mal das Script zu downloaden. Das im Spoiler ist richtig.
    (Glaub ich) :D

  • Ja das im Spoiler ist Richtig habe es so grade auch mal getestet.

    Schon ganz nett, aber auch noch ausbaufähig an manchen stellen. Namen kann mann zb. leider nur komplett finden wenn ich also Klaus Bauer eingetragen habe aber nur nach Bauer suche findet er nix. Aber sonst schon gut.