Nepotrebujes StringStream, zkus mito toho pouzit TStringList - je to kolekce retezcu.
var
sl: TStringList;
begin
sl := TStringList.Create;
sl.LoadFromFile(jmeno_souboru);
sl.Add('Pridam retezec');
sl.Strings[1] := Copy(sl.Strings[1], 1, 10); // upravim radek
sl.Delete(2); // smazu retezec s indexem 3
sl.SaveToFile(jmeno_souboru);
end;
TStringStream je takovy divny hybrid.
Kdyz pracujes se streamem, musis si hlidat velikost apod.
Zkus sem dat priklad souboru, ktery zpracovavas.
Neni problem zdrojovy kod webove stranky stahnout primo do TStringList a pak prochazet bez nutnosti jakychkoliv mezisouboru.