Volltextsuche in TMemo

Rund um die LCL und andere Komponenten

Volltextsuche in TMemo

Beitragvon kupferstecher » 20. Mär 2019, 17:38 Volltextsuche in TMemo

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!
kupferstecher
 
Beiträge: 215
Registriert: 17. Nov 2016, 11:52

Beitragvon Ally » 20. Mär 2019, 18:14 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
Ally
 
Beiträge: 104
Registriert: 11. Jun 2009, 08:25

Beitragvon kupferstecher » 20. Mär 2019, 21:55 [gelöst] Re: Volltextsuche in TMemo

Hallo Roland,

UTF8Pos funktioniert einwandfrei, mit UTF8Length bestimme ich nun SelLength, auch das passt.

Vielen Dank!
kupferstecher
 
Beiträge: 215
Registriert: 17. Nov 2016, 11:52

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron
porpoises-institution
accuracy-worried