Moin Uncle Cracker,
Du hast Recht.
Es liegt aber nicht der Größe der Datei, sondern an der Häufigkeit des Wortes.
Die Datei wird über TFileStream in 4096 Byte Blöcken bearbeitet.
Bevor ein neuer Block eingelesen wird, wird am Ende der Blockverarbeitung
geguckt, ob die aktuelle Stream Position + der Textlänge kleiner ist als
Stream.Size. Ja, wird Stream.Positon von der aktuellen Position um die
Textlänge zurückgesetzt. Dadurch wird verhindert, dass das gesuchte Wort
durch eine Blockgrenze zerschnitten wird. Wenn das gesuchte Wort den Block
abschließt wird es dadurch aber zweimal gezählt. Das müsste der Fehler sein.
Arbeite gerade dran