Die Reihenfolge mußt du halt wissen, da sie ja von dir kommt.
Außerdem ist dein Code irgendwie bisschen murks?
Delphi-Quellcode:
SetLength(sText, Stream.Size); // 1) Wozu hier die Länge setzen ...
spText := PChar(sText); // 2) Wozu hier was zuweisen ...
Stream.Read(spText^, Stream.Size); // 2) ... wenn es hier gleich wieder überschrieben wird?
sText := spText[2]; // 1) ... wenn du sie hier wieder verwirfst, indem du ganz sText auf ein Zeichen setzt?