Was genau macht die Option "2 = not case sensitive, using a basic/faster comparison"

  • Hallo Zusammen,

    ich finde nirgends eine gute Beschreibung zu der Option "2 = not case sensitive, using a basic/faster comparison", welche z.B. in StringReplace als Parameter "casesense" verwendet werden kann?

    Ob sie wirklich schneller ist, habe ich jetzt nicht gemessen, aber sie liefert definitiv teilweise falsche Ergebnisse. :( Warum steht so eine Warnung nicht in der Help, oder habe ich irgendwas übersehen?

    Hier mal mein Beispiel:

    Spoiler anzeigen
    [autoit]


    $StringDavor = "Fussballschuh in Groesse 8"
    $Old = "fussball"
    $New = ""

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

    ConsoleWrite("Davor: " & $StringDavor & @CRLF)
    $StringDanach = StringReplace($StringDavor, $Old, $New, 0, 0)
    ConsoleWrite(" Error=" & @error & ", Replaces=" & @extended & @CRLF)
    ConsoleWrite("Danach: " & $StringDanach & @CRLF & @CRLF)

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

    ConsoleWrite("Davor: " & $StringDavor & @CRLF)
    $StringDanach = StringReplace($StringDavor, $Old, $New, 0, 2) ; 2 = not case sensitive, using a basic/faster comparison
    ConsoleWrite(" Error=" & @error & ", Replaces=" & @extended & @CRLF)
    ConsoleWrite("Danach: " & $StringDanach & @CRLF & @CRLF)

    [/autoit]

    happy computing
    R@iner

  • Ich behaupte einmal, das flag 2 sehr wohl case sensitiv ist. Einziger Vorteil gegenüber flag 1 könnte der versprochene Geschwindigkeitsvorteil sein. Ob es den gibt ... keine Ahnung.

    Spoiler anzeigen
    [autoit]

    #Region - Timestamp
    ;2011-08-05 16:28:16
    #EndRegion

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

    $StringDavor = "Fussballschuh in Groesse 8"
    $Old = "fussball"
    $New = ""

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

    ConsoleWrite("Davor: " & $StringDavor & @CRLF)
    $StringDanach = StringReplace($StringDavor, $Old, $New, 0, 2) ; 2 = not case sensitive, using a basic/faster comparison
    ConsoleWrite(" Error=" & @error & ", Replaces=" & @extended & @CRLF)
    ConsoleWrite("Danach: " & $StringDanach & @CRLF & @CRLF)

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

    ConsoleWrite("Davor: " & "fussballschuh in Groesse 8" & @CRLF)
    $StringDanach = StringReplace("fussballschuh in Groesse 8", $Old, $New, 0, 2) ; 2 = not case sensitive, using a basic/faster comparison
    ConsoleWrite(" Error=" & @error & ", Replaces=" & @extended & @CRLF)
    ConsoleWrite("Danach: " & $StringDanach & @CRLF & @CRLF)

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

    ConsoleWrite("Davor: " & "Schuhfussball in Groesse 8" & @CRLF)
    $StringDanach = StringReplace("Schuhfussball in Groesse 8", $Old, $New, 0, 2) ; 2 = not case sensitive, using a basic/faster comparison
    ConsoleWrite(" Error=" & @error & ", Replaces=" & @extended & @CRLF)
    ConsoleWrite("Danach: " & $StringDanach & @CRLF & @CRLF)

    [/autoit]
  • Es könnte sein, dass Flag 2 keinen Vergleich für Umlaute durchführen soll. Im ASCII-Zeichensatz entspricht die Konvertierung von A zu a genau dem Umschalten von einem Bit, vermutlich ist das gemeint. aber wie es aussieht funktioniert es nicht.