Verschiedene Werte in einem String

  • Hallo Leute,

    ich wollt nur mal kurz nachfragen, ob es denn möglich ist, 2 verschiedene Werte aus einer INI zu lesen, diese 2 Werte in einem String speichern, aber so, dass man die 2 Werte hinterher, wieder als 2 verschiedene werte ausgeben?

    Ich hoffe ihr könnt verstehen was ich meine ?(

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

    Einmal editiert, zuletzt von Facemix (7. November 2013 um 21:53)

  • howdy

    da ich nicht weiß von was für einer stringlänge wir reden und warum es unbedingt nur ein string sein muss aber du könntest entweder mit einem array arbeiten oder du speicherst sie in etwa so
    $iniwert1 & "|" & $iniwert2
    und splittest sie hinterher wieder mit stringsplit wobei das gewissermaßen also auch was mit arrays zutun hat^^

    weiß ja nicht ob dir das weiterhilft, ansonsten wären ein paar infos mehr nicht schlecht

    mfg
    sgtigram

  • Ich arbeite mit einer Imagelist für 2 Combos die Farbwerte davon werden ebenfalls in eine ini geschrieben. Jetzt will ich farbwerte aus einer INI auslesen, und an oberster Stelle der beiden Combos einfügen. Jedoch auch 2 verschiedene Farbwerte.

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

  • moin,

    wenn du die 2 werte in einer ini speicherst, kannst du die doch jederzeit als 2 werte wieder abfragen, wozu also in nem string speichern?

    gruß,
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Ich habe mal ein kleines BeispielScript zusammen geschrieben, um es mal ganz einfach zu Zeigen was genau ich meine.

    Und zwar kann ich anhand diesem Codes, wenn ich noch IniWrite Funktion einfüge, aus Combo1 und Combo2 unabhängig von einander 2 verschiedene Farbwerte in die INI schreiben, Beispielsweise Hintergrund und Textfarbe.

    Jetzt möchte ich eine INI auslesen, und die Werte die in der INI gespeichert sind dann in den 2 Combos bei dem Feld "Farbe belassen" angezeigt werden, aber dass dann z.B. Aus der INI der Hintergrund ausgelesen wird, und diese Farbe in Combo1 gezeigt wird und Textfarbe wiederum aus der INI dann in Combo2

    Hier mal mein Code:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIComboBoxEx.au3>
    #include <GUIImageList.au3>

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

    $Color1 = IniRead("Beispiel.ini", "Colors", "BgColor", "0xFF000000")
    $Color2 = IniRead("Beispiel.ini", "Colors", "TextColor", "0xFF000000")

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

    ;Global $hGUI, $aColor, $hCombo1, $hCombo2, $hImage1, $hImage2, $i ; <---- Nicht erforderlich
    Global $aColor[25][2] = [["Farbe belassen", 0xFFFFFFFF], _ ;; <---- Soll aus INI ausgelesen werden!
    ["Rot", 0xFFFF0000],["Grün", 0xFF00FF00],["Blau", 0xFF0000FF],["Schwarz", 0xFF000000],["Maroon", 0xFF800000],["DarkRed", 0xFF8B0000], _
    ["FireBrick", 0xFFB22222],["Salmon", 0xFFFA8072],["OrangeRed", 0xFFFF4500],["Chocolate", 0xFFD2691E],["DarkOrange", 0xFFFF8C00],["Orange", 0xFFFFA500], _
    ["Gold", 0xFFFFD700],["Yellow", 0xFFFFFF00],["YellowGreen",0xFF9ACD32],["GreenYellow",0xFFADFF2F],["Green", 0xFF008000],["Navy", 0xFF000080], _
    ["Purple", 0xFF800080],["Crimson", 0xFFDC143C],["Brown", 0xFFA52A2A],["Gray", 0xFF808080],["Silver", 0xFFC0C0C0],["LightGray", 0xFFD3D3D3]]

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

    #Region ### START Koda GUI section ### Form=
    $hGUI = GUICreate("Form1", 289, 210, 192, 124)
    $hCombo1 = _GUICtrlComboBoxEx_Create($hGUI, "", 8, 20, 160, 200)
    $hCombo2 = _GUICtrlComboBoxEx_Create($hGUI, "", 8, 45, 160, 200)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ; - Load Images
    $hImage1 = _GUIImageList_Create(16, 16, 5, 3)
    $hImage2 = _GUIImageList_Create(16, 16, 5, 3)

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

    For $i = 0 To 24
    _GUIImageList_Add($hImage1, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo1, $aColor[$i][1], 16, 16))
    _GUIImageList_Add($hImage2, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo2, $aColor[$i][1], 16, 16))

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

    ; - Add Items
    _GUICtrlComboBoxEx_AddString($hCombo1, $aColor[$i][0], $i, $i)
    _GUICtrlComboBoxEx_AddString($hCombo2, $aColor[$i][0], $i, $i)
    Next

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

    _GUICtrlComboBoxEx_SetImageList($hCombo1, $hImage1)
    _GUICtrlComboBoxEx_SetImageList($hCombo2, $hImage2)

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

    Ich habe mich jetzt mal selber an meinem Problem versucht, ich habe es jetzt soweit geschafft, dass die Hintergrund und Textfarbe in einem String gespeichert werden, jedoch habe ich immernoch das problem dass ich die 2 verschiedenen Werte in beiden Combos angezeigt werden ?(

    So habe ich es in einen String gepackt:

    [autoit]


    Global $Color[2][2] = [[IniRead("Beispiel.ini", "Colors", "BgColor", "0xFF000000")],[IniRead("Beispiel.ini", "Colors", "TextColor", "0xFF000000")]]

    [/autoit]

    In der 1. Combo soll der erste Wert angezeigt werden und in der 2. Combo der 2. Wert, leider wird gerade immer nur der erste Wert in beiden Combos angezeigt.
    So habs ich versucht aber dann tritt der schon beschriebene Fehler auf

    [autoit]


    Global $aColor[25][2] = [["Farbe belassen", $Color[$i][1]], _ ;; <---- Soll aus INI ausgelesen werden!
    ["Rot", 0xFFFF0000],["Grün", 0xFF00FF00],["Blau", 0xFF0000FF],["Schwarz", 0xFF000000],["Maroon", 0xFF800000],["DarkRed", 0xFF8B0000], _
    ["FireBrick", 0xFFB22222],["Salmon", 0xFFFA8072],["OrangeRed", 0xFFFF4500],["Chocolate", 0xFFD2691E],["DarkOrange", 0xFFFF8C00],["Orange", 0xFFFFA500], _
    ["Gold", 0xFFFFD700],["Yellow", 0xFFFFFF00],["YellowGreen",0xFF9ACD32],["GreenYellow",0xFFADFF2F],["Green", 0xFF008000],["Navy", 0xFF000080], _
    ["Purple", 0xFF800080],["Crimson", 0xFFDC143C],["Brown", 0xFFA52A2A],["Gray", 0xFF808080],["Silver", 0xFFC0C0C0],["LightGray", 0xFFD3D3D3]]

    [/autoit]

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

    Einmal editiert, zuletzt von Facemix (7. November 2013 um 14:06) aus folgendem Grund: Code Aktualisiert - IniRead Funktion

  • Wo ist denn das Problem?
    Die Bezeichnungen in eine Sektion, die Farbwerte in die andere Sektion.
    Wenn du dann auch noch Zahlen als Key's nimmst, kannst du in einer For schleife einfach alles direkt auslesen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIComboBoxEx.au3>
    #include <GUIImageList.au3>

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

    ; >|# EINGEFÜGT #|<
    IniWrite('Colors.ini', 0, 0, 3)
    IniWrite('Colors.ini', 1, 1, 'Rot')
    IniWrite('Colors.ini', 1, 2, 'Grün')
    IniWrite('Colors.ini', 1, 3, 'Blau')
    IniWrite('Colors.ini', 2, 1, 0xFF0000)
    IniWrite('Colors.ini', 2, 2, 0x00FF00)
    IniWrite('Colors.ini', 2, 3, 0x0000FF)
    ; >|# EINGEFÜGT #|<

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

    ;Global $hGUI, $aColor, $hCombo1, $hCombo2, $hImage1, $hImage2, $i ; <---- Nicht erforderlich
    Global $aColor[3][2]

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

    ; >|# EINGEFÜGT #|<
    For $i = 0 To IniRead('Colors.ini', 0, 0, '') -1
    $aColor[$i][0] = IniRead('Colors.ini', 1, $i +1, '')
    $aColor[$i][1] = IniRead('Colors.ini', 2, $i +1, '')
    Next
    ; >|# EINGEFÜGT #|<

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

    #Region ### START Koda GUI section ### Form=
    $hGUI = GUICreate("Form1", 289, 210, 192, 124)
    $hCombo1 = _GUICtrlComboBoxEx_Create($hGUI, "", 8, 20, 160, 200)
    $hCombo2 = _GUICtrlComboBoxEx_Create($hGUI, "", 8, 45, 160, 200)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ; - Load Images
    $hImage1 = _GUIImageList_Create(16, 16, 5, 3)
    $hImage2 = _GUIImageList_Create(16, 16, 5, 3)

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

    For $i = 0 To UBound($aColor) -1
    _GUIImageList_Add($hImage1, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo1, $aColor[$i][1], 16, 16))
    _GUIImageList_Add($hImage2, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo2, $aColor[$i][1], 16, 16))

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

    ; - Add Items
    _GUICtrlComboBoxEx_AddString($hCombo1, $aColor[$i][0], $i, $i)
    _GUICtrlComboBoxEx_AddString($hCombo2, $aColor[$i][0], $i, $i)
    Next

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

    _GUICtrlComboBoxEx_SetImageList($hCombo1, $hImage1)
    _GUICtrlComboBoxEx_SetImageList($hCombo2, $hImage2)

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    €dit:
    Sorry, habe das ganze zu oberflächlich durchgelesen.
    Du schreibst ja die Daten in BEIDE Combos von dem Array.
    Das bedeutet dass du an dem Array nichts verädnern darfst.
    Du musst also in deiner For Schleife ermitteln, ob du gerade das erste Element bearbeitest.
    Wenn ja, dann kannst du deine beiden Variablen nehmen ($Color1 und $Color2) und die Farben dann setzen.
    Das gleiche kannst du dann mit dem Text machen.

    Siehe ab Zeile 28:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIComboBoxEx.au3>
    #include <GUIImageList.au3>

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

    $Color1 = IniRead("Beispiel.ini", "Colors", "BgColor", "0x000000")
    $Color2 = IniRead("Beispiel.ini", "Colors", "TextColor", "0x000000")

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

    ;Global $hGUI, $aColor, $hCombo1, $hCombo2, $hImage1, $hImage2, $i ; <---- Nicht erforderlich
    Global $aColor[25][2] = [["Farbe belassen", 0xFFFFFFFF], _ ;; <---- Soll aus INI ausgelesen werden!
    ["Rot", 0xFFFF0000],["Grün", 0xFF00FF00],["Blau", 0xFF0000FF],["Schwarz", 0xFF000000],["Maroon", 0xFF800000],["DarkRed", 0xFF8B0000], _
    ["FireBrick", 0xFFB22222],["Salmon", 0xFFFA8072],["OrangeRed", 0xFFFF4500],["Chocolate", 0xFFD2691E],["DarkOrange", 0xFFFF8C00],["Orange", 0xFFFFA500], _
    ["Gold", 0xFFFFD700],["Yellow", 0xFFFFFF00],["YellowGreen",0xFF9ACD32],["GreenYellow",0xFFADFF2F],["Green", 0xFF008000],["Navy", 0xFF000080], _
    ["Purple", 0xFF800080],["Crimson", 0xFFDC143C],["Brown", 0xFFA52A2A],["Gray", 0xFF808080],["Silver", 0xFFC0C0C0],["LightGray", 0xFFD3D3D3]]

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

    #Region ### START Koda GUI section ### Form=
    $hGUI = GUICreate("Form1", 289, 210, 192, 124)
    $hCombo1 = _GUICtrlComboBoxEx_Create($hGUI, "", 8, 20, 160, 200)
    $hCombo2 = _GUICtrlComboBoxEx_Create($hGUI, "", 8, 45, 160, 200)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ; - Load Images
    $hImage1 = _GUIImageList_Create(16, 16, 5, 3)
    $hImage2 = _GUIImageList_Create(16, 16, 5, 3)

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

    For $i = 0 To 24
    If Not $i Then
    _GUIImageList_Add($hImage1, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo1, $Color1, 16, 16))
    _GUIImageList_Add($hImage2, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo2, $Color2, 16, 16))
    Else
    _GUIImageList_Add($hImage1, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo1, $aColor[$i][1], 16, 16))
    _GUIImageList_Add($hImage2, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo2, $aColor[$i][1], 16, 16))
    EndIf

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

    _GUICtrlComboBoxEx_AddString($hCombo1, $aColor[$i][0], $i, $i)
    _GUICtrlComboBoxEx_AddString($hCombo2, $aColor[$i][0], $i, $i)
    Next

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

    _GUICtrlComboBoxEx_SetImageList($hCombo1, $hImage1)
    _GUICtrlComboBoxEx_SetImageList($hCombo2, $hImage2)

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von Yjuq (7. November 2013 um 21:23)