Einzelnen Beitrag anzeigen

tomsson74

Registriert seit: 8. Jan 2008
73 Beiträge
 
Turbo Delphi für Win32
 
#1

Zeiger auf eine Bytefolge im Stream - wie ?

  Alt 25. Jun 2008, 15:40
Hallo,

ich habe da ein vermutlich triviales Problem, doch stehe ich im Moment auf dem Schlauch und komme einfach nicht weiter.

Wie kann ich direkt auf eine bestimmte Position des Streams zugrifen und diese als Zeiger (PChar) an eine Funktion übergeben. Bis jetzt sieht der Code so aus, er funktioniert auch - aber er ist nicht schön.

Delphi-Quellcode:
(...)
var
  AStream : TStringStream;
  AStr : String;
begin
  (...)
  AStream.Position := 86;
  AStr := AStream.ReadString(6);
  AStr := StrUnpack(@Astr[1],6);
  (...)
Damit übergebe ich die Adresse einer 6 Byte langen Bytefolge an meine Funktion. Geht das irgendwie einfacher ohne den Umweg, den String erstmal in eine temporäre Variable zu kopieren ?

Ich möchte eigentlich nur einen Zeiger auf eine Bytefolge des Streams, die an der Stelle 87 beginnt. AStream muss übrigens kein TStringStream sein - das kann auch TMemoryStream oder sonst was sein. Habe diesen nur gewählt wegen der ReadString-Methode.

Danke im Voraus
Thomas
  Mit Zitat antworten Zitat