Auswerten von Daten

  • Hallo ich speicher in einer INI pro Tag übers datum ne Anzahl von Vorgängen die ich angebe.
    Beim Auslesen will ich nun nen überblick haben wie sich die anzahl entwickelt

    Wenn ich es so mache, bekomme ich jedoch pro seite nur einen Datensatz, ich brauche alle untereinander auf zb 20 oder 25 begrenzt und dann ebend neue Seite oder mit OK auf Seite 2 zu kommen.

    Bisher nehme ich die Funktion so:

    Spoiler anzeigen
    [autoit]

    Func MenuItem3()
    $var = IniReadSection("daten.ini", "deutsch")
    If @error Then
    MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
    Else
    For $i = 1 To $var[0][0]
    MsgBox(4096, "Statistik Deutsch", "Datum " & $var[$i][0] & " | " & "Anzahl: " & $var[$i][1])
    Next
    EndIf
    EndFunc

    [/autoit]

    Gruß und danke

    Einmal editiert, zuletzt von JaySini (19. Mai 2011 um 09:27)

  • Hallo Hallo ,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deinem Problem: MsgBoxen sind eigentlich denkbar ngeeignet für soetwas, aber wenn es unbedint MsgBoxen sein sollen dann verkette die Ausgabe mit & und dem Makro @CrLf. Ich würde aber eine Listview vorschlagen.

    Wenn du deine INI einstellst hilft dir sicher einer bei deinem Problem.

    mfg autoBert

  • Hallo,

    danke für die schnelle reaktion.
    Den Listview unter was finde ich den zb in der Onlinehilfe?

    Mir reicht ein anhaltspunkt dann versuche ich mich da durchzuwurschteln :)

    Gruß

    die Ini sieht so aus:

    [deutsch]
    18.05.2011=7
    19.05.2011=20


    Das ist es schon gewesen, wird halt jeden tag ein datensatz mehr

    Einmal editiert, zuletzt von JaySini (18. Mai 2011 um 13:34)

  • Für Listviews musst du dir zunächst mal eine GUI erstellen und dich somit mit den verscheidenen GUI Typen beschäftigen. Für den Anfang dürfte auch Koda Form Designer (im Sciteditor unte Tools verfügbar) ausreichen.
    Details zur Anwendung von Listview Controls findest du unter anderem in den Hilfeeinträgen folgender Funktionen:

    [autoit]


    GUICtrlCreateListView()
    GUICtrlCreateListViewItem()
    _GUICtrlListView_Create()
    _GUICtrlListView_AddColumn()
    _GUICtrlListView_AddItem()
    _GUICtrlListView_AddSubItem()

    [/autoit]

    Meiner Meinung nach sind Listviews aber eher für Fortgeschrittene geeignet. Es gibt unzählige Funktionen für Listviews, die Erstellung und Handhabung geht nicht ganz so intuitiv von der Hand wie z.B. bei simplen Buttons oder Editfeldern. Habe auch erst vor kurzem erstmalig mit Listviews gearbeitet und musste mich da schon etwas länger reinarbeiten. Es dürfte hier im Forum aber auch Tutorials zum Umgang mit Listviews geben, ggf. mal die Suche bemühen wenn du selbst nicht weiterkommst.

  • Das ist echt etwas komplex.
    Ich will ja über nen button die auswertung sehen.
    Aber komme nun erstmal nicht weiter. Wenn ich mit de msgbox arbeite,
    wie mache ich es dann das ich die Datensätze mit CTRL trenne, da die Datensätze ja täglich immer mehr werden.

    Gruß

  • So habe nun etwas gebastelt:

    Habe es nun mit Listview versucht klappt aber nur halb :(

    Spoiler anzeigen
    [autoit]

    $Daten= ("daten.ini")
    Global $ar
    If Not FileExists($Daten) Then Exit MsgBox(16,"","Datei nicht gefunden!"&@CRLF&$Daten)
    _FileReadToArray($Daten, $ar)
    If @error Then Exit MsgBox(16,"","Fehler beim Lesen mit FileReadToArray!")

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

    $deutsch = GUICreate("Deutsche Statistik", 220, 210)
    $list = GUICtrlCreateListView(" Datum | Anzahl ", 10, 10, 200, 150);,$LVS_SORTDESCENDING)
    _GUICtrlListView_SetView($list, 0)
    GUICtrlSetBkColor($list, 0xF2F2F2)
    GUICtrlSetBkColor($list, $GUI_BKCOLOR_LV_ALTERNATE)
    _GUICtrlListView_SetColumnWidth($list , 0,$LVSCW_AUTOSIZE_USEHEADER)

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

    For $i = 1 To $ar[0]
    GUICtrlCreateListViewItem($ar[$i],$list)
    GUICtrlSetBkColor(-1,0xE5E5E5)
    Next

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

    $Button1_2 = GUICtrlCreateButton("zurück", 10, 180, 75, 25, $WS_GROUP)
    GUISetState(@SW_HIDE)

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

    Leider packt er mr nun alles aus der datei in die erste spalte :(

    Dabei sollte er nur eine Spezielle Sektion nehmen und dann in Erste spalte das datum und in 2te Spalte die anzahl einfügen.

    Ev jemand nen tip?

    Habe es hinbekommen

    $ivar = IniReadSection(@ScriptDir & "\daten.ini", "deutsch")
    for $ia = 1 to $ivar [0] [0]
    _GUICtrlListView_AddItem($list, $ivar[$ia] [0])
    _GUICtrlListView_AddSubItem($list, $lineIndex ,$ivar[$ia] [1],1)
    $lineIndex += 1

    next

    Einmal editiert, zuletzt von JaySini (19. Mai 2011 um 09:26)

  • Hi, auch von mir ein Herzliches Willkommen und viel Spaß hier ! :thumbup:

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

    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    ;~ _FileReadToArray —> File.au3
    ;~ _ArrayDisplay —> Array.au3

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

    #include <Array.au3>
    #include <File.au3>

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

    Global $file = @ScriptDir & "/myIni.ini" ; Path & Name to inifile
    Global $aFile
    If FileExists($file) Then
    Global $ret = _FileReadToArray($file, $aFile)
    If $ret = 0 Then MsgBox(262144 + 0, '', 'Error')
    _ArrayDisplay($aFile)
    Else
    MsgBox(262144 + 48, 'Error ', $file & @CRLF & @CRLF & "Oh, Oh !")
    EndIf

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

    #cs
    ;i Deine ini-Datei

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

    myIni.ini
    [deutsch]
    18.05.2011=7
    19.05.2011=20
    #ce

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

    ; 2. Example
    Global $section = "Deutsch"
    Global $var = IniReadSection(@ScriptDir & "/myIni.ini", $section)
    If @error Then
    MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
    Else
    _ArrayDisplay($var, "Sektion " & $section)
    EndIf

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