GUICtrlCreateList - Maximum der Zeilenlänge?!

  • Man kann ja die Maximalen EINTRÄGE einstellen, aber gibt es auch ne Funktion, die automatisch einen Zeilenumbruch erzeugt, wenn der Eintrag zu lang für das Fenster ist?!
    Oder muss ich mir da nun erstmal ne UDF dazu machen, mit "wenn so und so lang, trenne da und mache ein | dahinter und prüfe nochmal, etc..."?

    Sowas gibt es doch bestimmt schon :D?


    LG

    *edit*

    Habe mir das jetzt erarbeitet, aber ist ja keine so perfekt saubere Lösung...

    [autoit]

    #include <Array.au3>
    $sString = _
    "AAAAAAA BBBBBBBBBBB CCCCCCCCCCCCC DDDD EEEEEEEEEEEE FFFFFFFF"
    $aResult = StringRegExp($sString,".{35,45}( .)",3)
    _ArrayDisplay($aResult,"StringRegExp Results")
    $aAResult = StringTrimLeft($aResult[0], 1)

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

    MsgBox(64, "", StringReplace($sString, $aResult[0], "|"&$aAResult, 1))

    [/autoit]

    bzw. so ->

    [autoit]

    #include <Array.au3>
    $sString = "AAAAAAA BBBBBBBBBBB CCCCCCCCCCCCC DDDD EEEEEEEEEEEE FFFFFFFF"
    $aResult = StringRegExp($sString,".{35,45}( .)",3)
    $aAResult = StringTrimLeft($aResult[0], 1)
    MsgBox(64, "", StringReplace($sString, $aResult[0], "|"&$aAResult, 1))

    [/autoit]


    Lohnt sich das, ne UDF draus zu machen :D? Oder gibts da was besseres?

    4 Mal editiert, zuletzt von Acanis (26. Februar 2010 um 09:35)

  • ich bin für
    $max=(max länge deines Strings)
    $i=0
    while 1

    if stringcompare($string,"Hier dein Maximale Länge in Buchstaben eintragen BSP. XXXXXX")> 0 then
    $array[$i]=StringTrimLeft($string, $max)
    $string=StringTrimRight($string,$len-$max)
    $i+=1
    Else
    $array[$i+1]=string
    ExitLoop
    WEnd

    for $i=0 to UBound($array)-1
    $string2=$array[$i] & @LF
    next

  • Wenn ich das richtig SEHE, dann würde er auch einfach so ein Wort zerhacken?!...
    Aus -> Hallo, mein Name ist Heinz könnte dann werden
    Hallo, m
    ein Nam
    e ist Hei
    nz

    ?^^
    Zumal bei List | einen Zeilenumbruch macht, nicht @LF, oder geht das auch? Oo


    Aber trotzdem schon mal danke :D


    LG

  • :P
    ja du hast recht.also @lf <> | .

    also eine forschleife die bei maxwert startet und dan solange nach unten geht bis ein " " vorhanden is und dan dort trennen und ein "|" einfügen.
    (wen aber EIN Wort länger als $max ist siehts dunkel aus)
    ok dan statt
    if stringcompare($string,"Hier dein Maximale Länge in Buchstaben eintragen BSP. XXXXXX")> 0 then
    StringRegExp($sString,".{$max-1,$max}( )"
    was hälst du davon?