Unerklärliche Herkunft von Zeichen in Listview

  • Hallo Leute,


    in meiner Listview habe ich mit folgenden Funktionen, Einträge erstellt:


    nun habe ich das Problem das bei Stk. (lt.Bild) diese quadratischen ASCII Zeichen kommen anstatt einer leerstelle, warum nur :?:

  • Zitat

    Ja könnte ich mir auch vorstellen, vielleicht mal als .exe versuchen?


    Bin mir nicht sicher ob das viel bringt. Du könntest auch mal die Spracheinstellungen durchgehen...
    Bevor du dein System zerlegst solltest du vielleicht erst einmal prüfen, ob dein Script den selben Fehler bei anderen Texten macht. ^^

  • Hab nun rausgefunden an was es liegt, jedoch weiß ich mir keinen Helfer dies zu umgehen....
    ...Also:
    Grund dafür ist __GUICtrlListView_SetItemText()
    ich lese die daten aus einer textdatei=utf8
    meine listview ist jedoch keine unicode formatierte...
    ich setze nur die subitems neu mit o.g. Funktion. Dieser Schönheitsfehler ist nur mit Windows XP reproduzierbar...


    Vielleicht hat einer von euch einen guten Rat für mich oder auch gleich ein Beispiel....????


    Danke...
    edit: der grund dafür:

  • Setzt erst mal deine Listview auf Unicode ;) (...SetUnicodeFormat)
    Dann öffne deine Datei im UTF8-Modus, damit Autoit die UTF8-Kodierung automatisch in die wchar-Kodierung umwandelt. Damit sollte alles korrekt dargestellt werden.


    Wenn noch Kästchen da sind könnten das Tabs oder Zeilenumbrüche sein (@TAB, @CR oder @LF)

  • Danke Progandy, :thumbup:
    hatte ich schon versucht, aber da ich in der ersten Spalte, Daten aus 2 anderen Listview´s setze (welche auch nicht unicode sind...) bekomme ich hierdurch nur ein umgedrehtes bild(vorige Daten werden durch Unicode ersetzt...)


    Hab´s nun trotzdem über einen kleinen Umweg (StringReplace) hingekriegt:
    Nachdem ich die Daten aus der Datei lese und bevor diese in die neue Listview eingetragen werden, ersetze ich alle Sonderzeichen (inkl. TAB etc.) und füge diese in einem neuen string wieder hinzu..


    funktioniert auch, nur wieder 8-10 Codezeilen die meiner MEinung nach nicht sein müssten.
    Trotzdem danke :thumbup:

  • Danke Progandy, :thumbup:
    hatte ich schon versucht, aber da ich in der ersten Spalte, Daten aus 2 anderen Listview´s setze (welche auch nicht unicode sind...) bekomme ich hierdurch nur ein umgedrehtes bild(vorige Daten werden durch Unicode ersetzt...)


    Hab´s nun trotzdem über einen kleinen Umweg (StringReplace) hingekriegt:
    Nachdem ich die Daten aus der Datei lese und bevor diese in die neue Listview eingetragen werden, ersetze ich alle Sonderzeichen (inkl. TAB etc.) und füge diese in einem neuen string wieder hinzu..


    funktioniert auch, nur wieder 8-10 Codezeilen die meiner MEinung nach nicht sein müssten.
    Trotzdem danke :thumbup:


    Das kannst du mit einer Zeile ersetzen ;)
    StringRegExpReplace($sString, "\v|\t|[[:cntrl:]]", "")