Hallo allerseits,
wie der Titel schon sagt, möchte ich eine Volltextsuche in einem TMemo implementieren (für einen Art Editor).
Mein Ansatz war, den Text in Memo.Text mit der Funktion Pos zu durchsuchen und die gefundene Stelle mit SelStart und SelLength zu markieren. Für ASCII-Zeichen funktioniert das auch, aber nicht bei UTF-8-Zeichen mit mehreren Byte pro Zeichen. Bei der Suche bekomm ich nämlich die Byteposition zurück, SelStart bezieht sich aber auf die Zeichenposition (unter Windows). Auch SelLength stimmt dann nicht.
Gibt es eine einfachere Möglichkeit eine Suche zu implementieren? Oder wie könnte man die Byteposition auf die Zeichenposition umrechnen?
Danke schonmal!
Volltextsuche in TMemo
- Ally
- Beiträge: 278
- Registriert: Do 11. Jun 2009, 09:25
- OS, Lazarus, FPC: Win und Lazarus Stable release
- CPU-Target: x64
Re: Volltextsuche in TMemo
Hallo kupferstecher,
dazu kannst du UTF8Pos aus LazUTF8 benutzen.
Dort finden sich noch weitere nützliche Sachen für den Umgang mit UTF8-Strings (UTF8Copy, UTF8Length usw.).
Gruß Roland
dazu kannst du UTF8Pos aus LazUTF8 benutzen.
Dort finden sich noch weitere nützliche Sachen für den Umgang mit UTF8-Strings (UTF8Copy, UTF8Length usw.).
Gruß Roland
- kupferstecher
- Beiträge: 431
- Registriert: Do 17. Nov 2016, 11:52
[gelöst] Re: Volltextsuche in TMemo
Hallo Roland,
UTF8Pos funktioniert einwandfrei, mit UTF8Length bestimme ich nun SelLength, auch das passt.
Vielen Dank!
UTF8Pos funktioniert einwandfrei, mit UTF8Length bestimme ich nun SelLength, auch das passt.
Vielen Dank!