Hallo Liste, hallo Christian,
ich muss nochmal nerven. Folgender Code markiert das Wort "Test" richtig,
wenn vorher kein Umlaut steht.
Bei "Dieser Text ist ärgerlich und übel, weil öfter ein Test kommt" rückt
dann die Markierung um 3 Zeichen nach rechts.
Dim rg As RegEx
Dim myMatch As RegExMatch
Dim myOptions As RegExOptions
rg=new RegEx
myOptions=new RegExOptions
rg.SearchPattern="Test"
rg.ReplacementPattern="$`"
rg.options.CaseSensitive=true
myMatch=rg.search(Editfield1.text)
if myMatch<>nil then
Editfield1.Selstart=mymatch.subExpressionstartB(0)
Editfield1.Sellength=4
end if
Was mache ich falsch? Wie lässt sich das umgehen?
RB 5.5.3 (In RB 4.5.3 klappt alles)
Gruß
Robert
Am 22.12.2004 12:00 Uhr schrieb "Robert Lehner" unter
<r dot lehner at typo-lehner dot de>:
> Ich dachte ein Editfield beinhaltet immer UTF-8.
> Also müsste RB doch wissen, dass es sich um UTF-8 handelt und folglich die
> Byteposition richtig zurückgeben.
>
> Irgendwie habe ich da keinen Plan.
>
> Gruß
> Robert
>
>
> Am 22.12.2004 11:54 Uhr schrieb "Christian Schmitz" unter
> <support at monkeybreadsoftware dot de>:
>
>> Robert Lehner <r dot lehner at typo-lehner dot de> wrote:
>>
>>> Hallo Christian,
>>>
>>> wenn ich keine Umlaute in einem Text habe, dann klappt alles. Will heißen
>>> subExpressionStartB liefert mir den richtigen Editfield.SelStart.
>>>
>>> Wenn aber vor der Fundstelle "ärgerlich, übel, öfter, Straßencafé" steht,
>>> rückt meine SelStart-Position zu weit nach rechts.
>>>
>>> Lässt sich das irgendwie vermeiden, ohne über Encoding zu gehen?
>>
>> Wieso denn ohne?
>> Wenn RB weiß, dass es UTF8 ist, dann zeigt subExpressionStart schon das
>> richtige an.
>>
>> Mfg
>> Christian
|