Hilfe beim Auslesen und zuordnen

  • Hallo zusammen,

    Ich habe mir hier ein wenig was zusammen gebastelt, soll ein Migränekalender werden.

    Habe das problem, das er mir die Daten nicht aus der ini ausliest.

    Ich wollte das er das was in der.INI steht, beim starten ausliest und unter GuiCtrlCreateListViewItem zuordnet.
    Ich hoffe ihr habt mich verstanden und könnt mir helfen.

    Spoiler anzeigen
    [autoit]


    #include <GuiListView.au3>
    #include <File.au3>
    #include <DateTimeConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

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

    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Troll\Desktop\migform.kxf
    $Mig = GUICreate("Mirgänekalender", 924, 387, 264, 117)
    GUISetOnEvent(-1, "_beenden")
    $ListView1 = GUICtrlCreateListView("Eintrag|Schmerzstärke|Ein/Beidseitiger Kopfschmerz|Pulsierend/ pochend|Drückend,dumpf/ziehend|Hinderlich bei üblicher Aktivität|", 0, 32, 922, 150)
    $ListView2 = GUICtrlCreateListView("Eintrag|Verstärkung bei Körperlicher Aktivität|Übelkeit|Erbrechen|Lichscheu|Lärmscheu|Anfallsdauer|Medikamente|Wirkung|", 0, 200, 922, 150)
    _lese_daten()
    $Date1 = GUICtrlCreateDate("2008/10/27 11:00:25", 736, 0, 186, 21)

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

    $MenuItem1 = GUICtrlCreateMenu("Datei")

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

    $MenuItem2 = GUICtrlCreateMenuItem("Neuer Eintrag", $MenuItem1)
    GUICtrlSetOnEvent(-1, "_New_Input")
    GUICtrlCreateMenuitem("", $Mig)

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

    ;$MenuItem4 = GUICtrlCreateMenuItem(" *** ", $MenuItem1)

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

    $MenuItem3 = GUICtrlCreateMenuItem("Drucken", $MenuItem1)
    GUICtrlSetOnEvent(-1,"_druck")
    $MenuItem5 = GUICtrlCreateMenuItem("Beenden", $MenuItem1)
    GUICtrlSetOnEvent(-1, "_beenden")

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

    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] [autoit][/autoit] [autoit]

    $eingabe1 = GUICreate("Neuer Eintrag", 450, 450)
    $staerke = GUICtrlCreateLabel("Schmerzstärke:", 20, 22, 140, 17)
    $staerke_input = GUICtrlCreateInput("1/schwach 4/Stark", 250, 20, 153, 20, -1)
    $seite = GUICtrlCreateLabel("Ein/Beidseitiger Kopfschmerz:", 20, 52, 300, 17)
    $seite_input = GUICtrlCreateInput("Ein/Beidseitiger Kopfschmerz", 250, 50, 153, 21, -1)
    $pupo = GUICtrlCreateLabel("Pulsierend/ pochend:", 20, 82, 300, 17)
    $pupo_input = GUICtrlCreateInput("Pulsierend/ pochend", 250, 80, 153, 21, -1)
    $dpz = GUICtrlCreateLabel("Drückend,dumpf/ziehend:", 20, 112, 140, 17)
    $dpz_input = GUICtrlCreateInput("Drückend,dumpf/ziehend", 250, 110, 153, 20, -1)
    $hinderlich = GUICtrlCreateLabel("Hinderlich bei üblicher Aktivität:", 20, 142, 200, 17)
    $hinderlich_input = GUICtrlCreateInput("JA/NEIN", 250, 140, 153, 20, -1)
    $Verstaerkung = GUICtrlCreateLabel("Verstärkung bei Körperlicher Aktivität:", 20, 172, 200, 17)
    $Verstaerkung_input = GUICtrlCreateInput("JA/NEIN", 250, 170, 153, 21, -1)
    $uebelkeit = GUICtrlCreateLabel("Übelkeit:", 20, 202, 140, 17)
    $uebelkeit_input = GUICtrlCreateInput("JA/NEIN", 250, 200, 153, 21, -1)
    $erbrechen = GUICtrlCreateLabel("Erbrechen:", 20, 232, 140, 17)
    $erbrechen_input = GUICtrlCreateInput("JA/NEIN", 250, 230, 153, 20, -1)
    $licht = GUICtrlCreateLabel("Lichtscheu:", 20, 262, 140, 17)
    $licht_input = GUICtrlCreateInput("JA/NEIN", 250, 260, 153, 21, -1)
    $laerm = GUICtrlCreateLabel("Lärmscheu:", 20, 292, 140, 17)
    $laerm_input = GUICtrlCreateInput("JA/NEIN", 250, 290, 153, 21, -1)
    $anfall = GUICtrlCreateLabel("Anfallsdauer:", 20, 322, 140, 17)
    $anfall_input = GUICtrlCreateInput("Anfallsdauer", 250, 320, 153, 20, -1)
    $medic = GUICtrlCreateLabel("Medikamente:", 20, 352, 140, 17)
    $medic_input = GUICtrlCreateInput("Medikamente", 250, 350, 153, 21, -1)
    $wirkung = GUICtrlCreateLabel("Wirkung:", 20, 382, 140, 17)
    $wirkung_input = GUICtrlCreateInput("GUT/SCHLECHT/MÄSSIG", 250, 380, 153, 21, -1)
    $Date1 = GUICtrlCreateDate("", 250, 0, 186, 21)
    $datum = GUICtrlRead($Date1)

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

    $save = GUICtrlCreateButton("Speichern", 20, 400, 100, 30)
    GUICtrlSetOnEvent(-1, "_Save")
    $button1 = GUICtrlCreateButton("Beenden", 133, 400, 100, 30)
    GUICtrlSetOnEvent(-1, "_beenden")

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

    Func _New_Input() ;;;; Fertig

    GUISetState(@SW_SHOW, $eingabe1)
    GUISetState(@SW_HIDE, $Mig)

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

    EndFunc

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

    Func _Save() ;;;; Fertig
    $path = @ScriptDir & "\daten\" & GUICtrlRead($Date1) & ".ini"
    IniWrite($path, "Eintrag", "Schmerzstärke", GUICtrlRead($staerke_input))
    IniWrite($path, "Eintrag", "Ein/Beidseitiger Kopfschmerz", GUICtrlRead($seite_input))
    IniWrite($path, "Eintrag", "Pulsierend/ pochend", GUICtrlRead($pupo_input))
    IniWrite($path, "Eintrag", "Drückend,dumpf/ziehend", GUICtrlRead($dpz_input))
    IniWrite($path, "Eintrag", "Hinderlich bei üblicher Aktivität", GUICtrlRead($hinderlich_input))
    IniWrite($path, "Eintrag", "Verstärkung bei Körperlicher Aktivität", GUICtrlRead($Verstaerkung_input))
    IniWrite($path, "Eintrag", "Übelkeit", GUICtrlRead($uebelkeit_input))
    IniWrite($path, "Eintrag", "Erbrechen", GUICtrlRead($erbrechen_input))
    IniWrite($path, "Eintrag", "Lichscheu", GUICtrlRead($licht_input))
    IniWrite($path, "Eintrag", "Lärmscheu", GUICtrlRead($laerm_input))
    IniWrite($path, "Eintrag", "Anfallsdauer", GUICtrlRead($anfall_input))
    IniWrite($path, "Eintrag", "Medikamente", GUICtrlRead($medic_input))
    IniWrite($path, "Eintrag", "Wirkung", GUICtrlRead($wirkung_input))

    GuiCtrlCreateListViewItem("|" & GUICtrlRead($staerke_input) & "|" & GUICtrlRead($seite_input) & "|" & GUICtrlRead($pupo_input) & "|" & GUICtrlRead($dpz_input) & "|" & GUICtrlRead($hinderlich_input), $ListView1)
    GuiCtrlCreateListViewItem( "|" & GUICtrlRead($Verstaerkung_input) & "|" & GUICtrlRead($uebelkeit_input) & "|" & GUICtrlRead($erbrechen_input) & "|" & GUICtrlRead($licht_input) & "|" & GUICtrlRead($laerm_input) & "|" & GUICtrlRead($anfall_input) & "|" & GUICtrlRead($medic_input) & "|" & GUICtrlRead($wirkung_input),$ListView2)

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

    _close_new_input()

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

    Endfunc

    Func _close_new_input() ;;; Fertig

    GUISetState(@SW_SHOW, $Mig)
    GUISetState(@SW_Hide, $eingabe1)
    GUISetState(@SW_ENABLE, $Mig)

    EndFunc

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

    ;~ Func _lese_daten()
    ;~
    ;~ $path = @ScriptDir & "\daten\" & ".ini"
    ;~ IniRead($path, "Eintrag", "Schmerzstärke", "")
    ;~ IniRead($path, "Eintrag", "Ein/Beidseitiger Kopfschmerz", "")
    ;~ IniRead($path, "Eintrag", "Pulsierend/ pochend", "")
    ;~ IniRead($path, "Eintrag", "Drückend,dumpf/ziehend", "")
    ;~ IniRead($path, "Eintrag", "Hinderlich bei üblicher Aktivität", "")
    ;~ IniRead($path, "Eintrag", "Verstärkung bei Körperlicher Aktivität", "")
    ;~ IniRead($path, "Eintrag", "Übelkeit", "")
    ;~ IniRead($path, "Eintrag", "Erbrechen", "")
    ;~ IniRead($path, "Eintrag", "Lichscheu", "")
    ;~ IniRead($path, "Eintrag", "Lärmscheu", "")
    ;~ IniRead($path, "Eintrag", "Anfallsdauer", "")
    ;~ IniRead($path, "Eintrag", "Medikamente", "")
    ;~ IniRead($path, "Eintrag", "Wirkung", "")
    ;~
    ;~ GuiCtrlCreateListViewItem("|" & GUICtrlRead($staerke_input) & "|" & GUICtrlRead($seite_input) & "|" & GUICtrlRead($pupo_input) & "|" & GUICtrlRead($dpz_input) & "|" & GUICtrlRead($hinderlich_input), $ListView1)
    ;~ GuiCtrlCreateListViewItem( "|" & GUICtrlRead($Verstaerkung_input) & "|" & GUICtrlRead($uebelkeit_input) & "|" & GUICtrlRead($erbrechen_input) & "|" & GUICtrlRead($licht_input) & "|" & GUICtrlRead($laerm_input) & "|" & GUICtrlRead($anfall_input) & "|" & GUICtrlRead($medic_input) & "|" & GUICtrlRead($wirkung_input),$ListView2)

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

    ;~
    ;~ EndFunc


    Func _druck() ;;; Muss mal sehen, das er mir alles ausdruckt

    $file = FileOpenDialog("Datei", "", " (*.txt)", 1)
    If @error Then Exit

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

    $print = _FilePrint($file)
    If $print Then
    MsgBox(0, "Sende File", "zum Drucker !.")
    Else
    MsgBox(0, "Drucker", "Fehler: " & @error & @CRLF & "Konnte nicht Drucken.")
    EndIf

    EndFunc

    Func _beenden() ;;; Fertig

    Exit

    EndFunc

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

    While 1
    Sleep(500)
    WEnd

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

    Einmal editiert, zuletzt von Freggel (29. Oktober 2008 um 13:49)

  • Hi,

    also, eigentlich wollte ich das er alle .INI ausliest die er im ordner findet, weil ich die immer unterm aktuellem Datum speichern lasse.
    Und zu dem auslesen, da hab ich halt das problem, das er mir das nicht in die LiestView einträgt.
    Es sollte ja schon an der Richtigen Position, aber irgendwie hab ich da voll den hänger.
    Hab es zuletzt mit IniReadSection probiert, was auch mit einer msg klappt, aber bekomme es nicht in die LiestView.

    Viellecht hat da jemand nen stück code??

    • Offizieller Beitrag

    Eine Inidatei zum speichern einer "Datenbank" zu verwenden, halte ich für eine schlechte Vorgehensweise.
    Stattdessen würde ich die eingegebenen Daten lieber in einem Array ablegen und dann mit _GUICtrlListView_AddArray() im Listview anzeigen lassen. Mit _FileWriteFromArray() kannst Du das Array in eine Datei (Endung kannst Du selbst bestimmen) speichern. Zum einlesen gibt es dann _FileReadToArray().
    Falls Du mit der Umsetzung Probleme hast, kann Du ja nochmal nachfragen.

  • Hi,
    Danke dir für deine Hilfe.

    hab es aber nun mit IniReadSectionNames gemacht. Denke das reicht mir erstmal.Sind grade mal 8-10 Einträge im Jahr.
    Werde aber dein Ratschlag befolgen, sieht irgendwie ordentlicher aus.