Moin!
S ist ein AnsiString und daher nur ein Zeiger auf den String. Daher ergibt SizeOf() auch eine 4, weil es ein Pointer ist. Somit folgendes:
1. Nutze anstatt SizeOf() die Funktion Length() um die Länge des Strings zu ermitteln.
2. Gebe der Schreibroutine das erste Zeichen an.
Delphi-Quellcode:
S := 'Hallo';
WriteBuffer(S[1], Length(S));
MfG
Muetze1