automatisch den Gegenwert eintragen/ausgeben

  • Hallo zusammen.

    Habe 5 Dateien, die wie folgt aussehen:

    [dk01]
    3029:1572
    4583:9365
    ...

    [d01]
    1310:7834
    8142:2331
    ...

    [dk02] und [d12] sind genauso aufgebaut. Die vier Dateien kann ich zu einer zusammen fassen lassen. Also nicht Ausgabe jeweils in eine Extradatei, sondern alle Daten in eine und dieser dann einen Namen geben. Endung ist von der exportierenden Software: *.bll. Scheint so das dieses Softwarespezifisch ist, da ich nichts im INet über diese Endung gefunden habe.

    irgendwie erinnert es mich an den Aufbau einer INI-Datei, nur kann ich die so ja nicht ansprechen, da erstens ein Doppelpunkt statt dem Gleichheitszeichen vorhanden ist und zweitens die Dateien nicht die Endung "ini" haben.

    Also die GUI sieht bis jetzt so aus:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("BLLN", 180, 87, 193, 125)
    $Combo1 = GUICtrlCreateCombo("dk01", 56, 8, 113, 25)
    GUICtrlSetData(-1, "dk01|dk02|d01|d12", "dk01")
    $In1 = GUICtrlCreateInput("", 56, 32, 113, 21)
    $In2 = GUICtrlCreateInput("", 56, 56, 113, 21)
    $Lab1 = GUICtrlCreateLabel("BLLN", 8, 8, 38, 20)
    $Lab2 = GUICtrlCreateLabel("Eingabe", 8, 32, 43, 17)
    $Lab3 = GUICtrlCreateLabel("Ausgabe", 8, 56, 46, 17)
    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]

    Als erstes wählt man den BLLN Bereich aus.
    Danach gibt man eine vierstellige Zahl ein. Ist die Zahl vierstellig, soll er AUTOMATISCH die dazu gehörende vierstellige Zahl (die hinter dem Doppelpunkt) eintragen. Also ohne Button drücken.

    Habe damit Probleme dieses umzusetzen.

    Kann mir jemand helfen?

    Vielen lieben Dank an dieser Stelle bereits jetzt.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • &quot;Quick 'n Dirty&quot;
    [autoit]

    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("BLLN", 180, 87, 193, 125)
    $Combo1 = GUICtrlCreateCombo("dk01", 56, 8, 113, 25)
    GUICtrlSetData(-1, "dk01|dk02|d01|d12", "dk01")
    $In1 = GUICtrlCreateInput("", 56, 32, 113, 21)
    GUICtrlSetLimit(-1, 4, 4)
    $In2 = GUICtrlCreateInput("", 56, 56, 113, 21)
    $Lab1 = GUICtrlCreateLabel("BLLN", 8, 8, 38, 20)
    $Lab2 = GUICtrlCreateLabel("Eingabe", 8, 32, 43, 17)
    $Lab3 = GUICtrlCreateLabel("Ausgabe", 8, 56, 46, 17)
    GUISetState(@SW_SHOW)

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

    AdlibRegister("_check")
    $file = "test.txt"
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _check()
    If StringLen(GUICtrlRead($In1)) = 4 Then
    GUICtrlSetData($In2, _BllRead($file, GUICtrlRead($Combo1), GUICtrlRead($In1), ""))
    EndIf
    EndFunc ;==>_check

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

    ;Die Original _IniRead() müsste von SEuBo sein. Hab hier lediglich das Pattern leicht angepasst.
    Func _BllRead($sPath, $sSection, $sKey, $sDefault)
    $aRet = StringRegExp(FileRead($sPath), '(?i)\[\Q' & $sSection & '\E]\s+(?>.+\s+)*?\Q' & $sKey & '\E\s*:\s*([^\n\r]+)', 1)
    If @error Then Return $sDefault
    Return $aRet[0]
    EndFunc ;==>_BllRead

    [/autoit]
  • Die Endung dürfte egal sein. Theoretisch kann man auch ne Ini als eine .exe speichern, und diese dann mit iniRead auslesen.
    Hier könnte man auch versuchen, jede Zeile (ausgeschlossen der "Section-Zeile") einzeln auszulesenund dann den im String mit StringSplit die beiden Stücke auslesen.

    Edit: ups hab i2c's Beitrag übersehen

  • danke testen es sobald ich wieder am pc bin.
    bin zu gast auf einem "Nadel".

    Nachtrag: Bin jetzt an einen PC und habe die dargestellte Hilfe getestet.

    Also ist SUPER die Lsg. Danke, Danke, Danke.

    Mein nächste Problem ist dafür nur eine reine Wissensfrage. Also ob man CSV-Dateien addieren kann. Aber dazu mache ich ein neues Post auf, damit ich das erklären kann. Thema: " Addition von CSV-Dateien".

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (7. September 2010 um 21:08) aus folgendem Grund: Bin jetzt an einen PC und habe die dargestellte Hilfe getestet.