Du könnstest einen Boyer-Moore, KMP oder Quicksearch-Algorithmus implementieren und den eben in einem Bytestream suchen lassen.
Aber wenn es sich eh um RTF bzw. TXT handelt, wieso machst Du Dir dann überhaupt um 0-Bytes Sorgen und nimmst nicht einfach das hier:
Delphi-Quellcode:
MyStringList.LoadFromFile(MyFilename);
MyStringList.Text := StringReplace(MyStringList.Text,'<NAME>','<WhatEver>',[rfReplaceAll]);
MyStringList.SaveToFile(MyFilename);
Ist zwar suboptimal, aber schnell genug sollte das sein...
Alternativ sollte ein TStringStream dein Freund sein bzw. werden.
@mkinzler: Ich weiss nicht, ob StringReplace auf die Stringlänge schaut, oder bis zum ersten #0 Byte geht... Aber dann wäre ja meine Idiotenlösung auch für den Arm.