Werte aus einer .ini Datei in eine Tabelle schreiben

  • Hallo, ich möchte gerne eine Art Datenbank erstellen. Das Ziel des Programmes ist es,
    Werte in eine .ini Datei zu schreiben, um diese dann später auszulesen und darzustellen.
    Jedoch weiss ich nicht, wie ich das realisieren kann. Ich habe daran Gedacht, für jeden
    Eintrag eine neue Sektion zu erstellen, die dann numeriert in einer Tabelle angezeigt wird.
    Beispiel:

    Code
    [Eintrag 1]
    Vorname=Max
    Zuname=Mustermann
    Adresse=Musterstraße 1
    PLZ=12345
    Ort=Musterhausen
    
    
    [Eintrag 2]
    ...

    Ich weiss leider auch nicht, wie ich es hinbekomme, dass das Programm erkennt,
    welches der aktuelle Eintrag für eine Nummer hat, um dann die fortlaufende Nummer
    zu nehmen.

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GUIListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Verzeichnis", 482, 350, -1, -1)
    GUISetBkColor(0xFFFFFF)
    $ListView1 = GUICtrlCreateListView("Nr.|Vorname|Zuname|Adresse|PLZ|Ort", 8, 8, 465, 313)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 40)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 70)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 110)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 51)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 110)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 1, 2)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 2, 2)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 3, 2)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 4, 2)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 5, 2)
    $MenuItem1 = GUICtrlCreateMenu("Datei")
    $MenuItem2 = GUICtrlCreateMenuItem("Neuer Eintrag", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenu("Hilfe")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    MfG n0rax aka leehman'

    2 Mal editiert, zuletzt von n0rax (20. April 2011 um 19:09)

  • Danke für deine Antwort, ich werde mir dann mal was zusammen basteln und mich später nochmal melden :).

    Z.Z. bin ich so weit:

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GUIListView.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Verzeichnis", 482, 350, -1, -1)
    GUISetBkColor(0xFFFFFF)
    $ListView1 = GUICtrlCreateListView("", 8, 8, 465, 313)
    _GUICtrlListView_InsertColumn($ListView1, 0, "Nr.", 40)
    _GUICtrlListView_InsertColumn($ListView1, 1, "Vorname", 80)
    _GUICtrlListView_InsertColumn($ListView1, 2, "Zuname", 70)
    _GUICtrlListView_InsertColumn($ListView1, 3, "Adresse", 110)
    _GUICtrlListView_InsertColumn($ListView1, 4, "PLZ", 51)
    _GUICtrlListView_InsertColumn($ListView1, 5, "Ort", 110)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 1, 2)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 2, 2)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 3, 2)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 4, 2)
    _GUICtrlListView_JustifyColumn(GUICtrlGetHandle($ListView1), 5, 2)
    $MenuItem1 = GUICtrlCreateMenu("Datei")
    $MenuItem2 = GUICtrlCreateMenuItem("Neuer Eintrag", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenu("Hilfe")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $Eintrag = IniReadSectionNames(@ScriptDir & "\Verzeichnis.ini")
    For $i = 1 To $Eintrag[0]
    _GUICtrlListView_AddItem($ListView1, $Eintrag[$i])
    Next

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

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

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

    EndSwitch

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

    WEnd

    [/autoit]

    Jetzt weiss ich nicht, wie ich die 2. Spalte ändere. Sachen in die 1. Spalte schreiben geht gut,
    allerdings nicht in die 2. :(.

    MfG n0rax aka leehman'

    2 Mal editiert, zuletzt von n0rax (17. April 2011 um 20:57)

  • Hey Oscar,
    vielen Dank für Deine Antwort!
    Zu deinem Script hätte ich dann noch eine Frage:
    Wie lasse ich beim beenden überprüfen, ob die Datei bereits gespeichert wurde?
    Falls die Datei nicht gespeichert wurde, wird man dann darauf hingewiesen.

    MfG n0rax aka leehman'

  • Du kannst am Anfang

    [autoit]

    $start = FileGetTime($hFile, 0, 1)

    [/autoit]


    aufrufen und beim Beenden überprüfen, ob die Datei immernoch den selben Timestamp hat oder nicht

    [autoit]

    If $start = FileGetTime($hFile, 0, 1) Then MsgBox(16, "Speichern?", "Es wurde noch nicht gespeichert")

    [/autoit]