Bei meinem
UnitUsage Projekt bin ich auch mal über Text-Dateien gestolpert, welche ein #0 beinhalteten (stand tatsächlich mal in einem Kommentar in einem Pascal-Sourcecode). Ärgerlich war, daß die TStringList beim Einlesen bei dem #0 aufgehört hat. Als ob Pascal C wäre!
Da ich sowieso eine Klasse von TStringList ableiten mußte, habe ich deshalb gleich deren Routine LoadFromStream(..) ersetzt. Diese Routine rief eine andere namens SetTextStr(..) auf, welche auf #0 prüfte. Den Teil hab' ich geändert (Minimaler Eingriff in den Original Code), danach hat die abgeleitete stringlist brav bis zum Ende gelesen. Vielleicht reicht ja so ein Eingriff bei Deinem Problem auch - zumindest für's Lesen?
(Siehe Source von UnitUsage, Datei DelDirective.pas)
Ansonsten hat ja TStringList mit #0 keine Probleme - Beim Schreiben wird's halt wieder klemmen
Gruß
Michael