Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Pointer in Stream lesen/schreiben (https://www.delphipraxis.net/15798-pointer-stream-lesen-schreiben.html)

ATwardz 4. Feb 2004 11:59


Pointer in Stream lesen/schreiben
 
Hi,

ich habe eine Frage zum Thema TMemorystream!

Wie kann ich einen Pointer in einen Stream schreiben und wieder auslesen?
Das Programm soll später über das netzwerk Sound versenden nur weiss ich nit wie ich das mit den Streams mache!

Bitte um Hilfe!

Delphi-Quellcode:
procedure TForm1.ACMWaveIn1Data(data: Pointer; size: Integer);
VAR Stream:TMemorystream;
    Speicher:Pointer;
    Grösse:Integer;
begin
  Stream:=TMemorystream.Create;
  // In diesem Bereich muss etwas falsch sein
  Stream.WriteBuffer(Data,Size);
  Stream.Position:=0;
  Stream.ReadBuffer(Speicher,Grösse);
  //
  ACMWaveOut1.PlayBack(Speicher,Grösse);
end;
@wardz

Jens Schumann 4. Feb 2004 12:56

Re: Pointer aus Tmemorystream lesen/schreiben
 
Hallo,
das versenden von Streams über's Netz geht mit TWinSocketStream.

ATwardz 4. Feb 2004 17:07

Re: Pointer aus Tmemorystream lesen/schreiben
 
Ja, das weiss ich, dann habe ich vielleicht etwas falsch ausgedrückt!
Wie man Streams versendet das ist mir bekannt und das weiss ich aber wie lese ich einsfach einen Pointer ein und wieder aus?

@wardz

mischerr 6. Feb 2004 23:21

Re: Pointer in Stream lesen/schreiben
 
Muss "Speicher" nicht zuerst mit GetMem Speicher zugewiesen werden?
Wohin zeigt denn "Speicher" beim Aufruf von "ReadStream(Speicher..."?

Gruss, Micha

stoxx 6. Feb 2004 23:39

Re: Pointer in Stream lesen/schreiben
 
vielleicht hilft Dir dieses kleine Beispiel ?


Code:
procedure TForm1.Button1Click(Sender: TObject);
var m : TMemorystream;

   p : ^ byte;
   bytecount : DWORD;
   i : integer;
   puffer : string;
begin


m := Tmemorystream.Create;
m.SetSize(5);
puffer := 'HALLO';


p := m.Memory;
bytecount := m.Size;

for i := 0 to bytecount -1 do
begin
 p^ := ord ( puffer[i+1]);
 inc(p);
end;



p := m.Memory;

for i := 0 to bytecount -1 do
begin
  showmessage(  Char(p^) +  ' ' + inttostr(p^) );
  inc(p);
end;


m.SaveToFile('test.txt');
m.Free;

end;

SirThornberry 7. Feb 2004 08:35

Re: Pointer in Stream lesen/schreiben
 
Willst du den Pointer speichern (was ich mir nicht vorstellen kann) oder die daten auf die der Pointer zeigt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz