Problem bei Auslesen von _GUICtrlComboBox_GetEditText

  • Hallo, ich habe seit langer Zeit mal wieder angefangen, und prompt stehe ich vor einen Problem

    Der Befehl "_GUICtrlComboBox_GetEditText" gibt mir zwar den gewählten Eintrag von "_GUICtrlComboBox_Create" wieder, hängt aber ein Zeichen zusätzlich daran, somit wird der Key in der Ini leider nicht gefunden.

    Hat Jemand eine Idee Warum?


    [autoit]


    $ini = @ScriptDir&'\Texte\Datei.ini'

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

    #include<GuiComboBox.au3>
    #include<GUIConstantsEx.au3>

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

    ;Gui
    $Gui=GUICreate ('Produkt-Rechner', 900,600); Wagerechte; Höhe
    GUISetBkColor(0xFFB200);FF6699);663399 )
    GUISetFont(9, 300)

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

    ;Daten
    GUICtrlcreatelabel ('Einstellungen für A4' ,10,10)
    $A4 = _GUICtrlComboBox_Create ($GUI,'', 10, 30, 190, 296)
    $ini_sektions = IniReadSection($ini, "Laserdruck A4")
    For $i = 1 To $ini_sektions[0][0]
    _GUICtrlComboBox_AddString($A4, $ini_sektions[$i][0])
    Next
    GUICtrlcreatelabel ('Hier bitte gewünschte Anzahl eintragen' ,10,70)

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

    $Anzahl = GUICtrlCreateEdit ("1", 10,90,190,20,0)

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

    $berechnen = GUICtrlCreateButton ('Berechnen', 200,490)

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

    GUICtrlcreatelabel ('Einstellungen für A3',400,10)
    $A3 = _GUICtrlComboBox_Create ($GUI,'', 400, 30, 150, 296)
    $ini_sektions = IniReadSection($ini, "Laserdruck A3")
    For $i = 1 To UBound($ini_sektions) - 1
    _GUICtrlComboBox_AddString($A3, $ini_sektions[$i][0])

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

    Next

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

    $endbutton = GUICtrlCreateButton ('Schließen', 810,490)

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

    GUISetState(@SW_SHOW)

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

    ;Gui ENDE

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

    While 1
    $msg = GUIGetMsg()

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

    $A3R=_GUICtrlComboBox_GetEditText ($A3)
    $a3wert=IniRead($ini,'Laserdruck A3',$A3R,'')

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

    $zahl1 = GUICtrlRead($Anzahl)

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

    Select

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

    Case $msg = $endbutton Or $msg = $GUI_EVENT_CLOSE
    exit

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

    case $msg = $berechnen

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

    $A4R=_GUICtrlComboBox_GetEditText($A4)

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

    MsgBox(64,"a4r",$a4r)
    $A4R=_GUICtrlComboBox_GetEditText($A4)

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

    ConsoleWrite (StringFormat ("%d\n", stringlen($A4R)))
    $a4wert=IniRead($ini,'Laserdruck A4',$A4R,"Fehler beim Lesen")
    MsgBox(64,"a4wert",$a4wert)
    $Ergebnis = $zahl1 * $a4wert

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

    MsgBox (0,"Ergebnis",$zahl1 & "*" & $a4wert & "=" & $Ergebnis) ;Ausgabe der Rechenaufgabe
    EndSelect

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

    wend

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

    Meine Ini ist so azfgebaut

    [Laserdruck A4]
    Schwarz Weiß=0.25
    Schwar Weiß, mehr als 5=0.22
    Farbig=1.10
    Aufkleber weiß s/w=0.85
    Aufkleber weiß Farbig=1.20
    Aufkleber Transparent s/w=1.50
    Aufkleber Transparent Farbig=2.60
    [Laserdruck A3]
    Schwarz Weiß=0.50
    Schwar Weiß, mehr als 5=0.44
    Farbe=2.20

    Vielen Dank

    3 Mal editiert, zuletzt von devildevil3 (31. Juli 2012 um 16:21)

  • bei mir ja auch, aber wenn ich dann oben die auswahl mehrmals ändere klappt es nicht mehr, und es kommt der oben genannte Fehler :(

    Nicht wundern, die ganzen msgboxen habe ich gebraucht um den Fehler zu finden

  • Hmm, also bei mir ist es wie gesagt überhaupt nicht so...

    Wenn Dein gepostetes Skript nur ein Teil des ganzen Codes ist probiere es doch einmal mit dem Schnipsel und schaue was der restliche Code so anstellt...


    Greenhorn


  • das gepostete ist das komplette Script, keine Zeile Unterscheidet sich, komische Sache ?(

    Habe jetzt alles aktualisiert, fehler tritt wesentlich seltener Auf, aber kommt immer noch mich chinesischen Zeichen ?

    und das ist die ganze ini Datei

    Vielen Dank

  • Bei der Zeile wo der Fehler auftritt ist der String 29 Zeichen Lang, im der Ini bis zu den = zeichen auch 29 Zeichen, dennoch wird in der msgbox noch ein 30igtes Zeichen bei mir angezeigt ?

  • Das ist wirklich sehr merkwürdig... ?(

    Teste mal, ob der Fehler auch mit GUICtrlCreateCombo auftritt.
    Und teste doch mal, ob der Fehler mit der MsgBox auch in anderen Skripten auftritt...

    Muss morgen leider wieder früh hoch, aber ich werde noch mal darüber grübeln...


    Grüße
    Greenhorn


  • Bei der Zeile wo der Fehler auftritt ist der String 29 Zeichen Lang, im der Ini bis zu den = zeichen auch 29 Zeichen, dennoch wird in der msgbox noch ein 30igtes Zeichen bei mir angezeigt ?


    "Aufkleber Transparent Farbig" ist aber nur 28 Zeichen lang und das wird bei mir auch von StringLen zurückgegeben !!!


  • Da hast du recht, ich habe überersehen das Notpad++ prinzipiell mit 1 anfängt.
    Also Cousor steht ganz links, und es zählt schon ein Zeichen.

    Habe es nachgezählt. sind wirklich nur 28 :)

  • Da hast du recht, ich habe überersehen das Notpad++ prinzipiell mit 1 anfängt.Also Cousor steht ganz links, und es zählt schon ein Zeichen.Habe es nachgezählt. sind wirklich nur 28 :)

    Damit dürfte dein Problem ja gelöst sein. Schön wäre es wenn du das Thema auf gelöst stellst. Dazu einfach deinen Eröffnungsbeitrag bearbeiten und den Präfix (Nähe Überschrift) auf gelöst stellen,

    Torni: dann mach einen eigenes Thema auf. vergiss aber nicht etwas mehr Angaben dazu zu machenm

    mfg autoBert