Für diese Anwendung würde sich die Verwendung einer Komponente wie
WPTools anbieten. Dort lassen sich für jedes Zeichen die Attribute direkt und sehr schnell ermitteln.
Diese Methode ist noch nicht mal optimiert, dennoch kommt ein Ergebnis bei ein paar 100.000 Zeichen sehr schnell.
Code:
i := 0;
WPRichText1.CPPosition := 0;
repeat
if WPRichText1.CPAttr.HasStyle(afsBold) then
inc(i);
until (not WPRichText1.CPMoveNext);
ShowMessage(IntToStr(i) + ' chars');