muhahhaaa. habs rausgefunden
fstream.ReadBuffer(Daten, SizeOf(TDatensatz));
edit:
ich verwend .read(). funkt auch:
brauch naemlich keine buffer, deren sinn ich net versteh
weil ka, was der unterschied ist
so gehts
weil ich ja schoen brav immer string[x] gemacht hab
jetzt versuch ich das ganze mal wie oben vorgeschlagen ueber LAN zu senden mit send/receivebuf mit den sockets.
update:
ich will das als tmemory stream schicken und empfangen.
Delphi-Quellcode:
procedure TForm1.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
var
stream: TmemoryStream;
begin
stream := tmemorystream.Create;
ClientSocket.ReceiveBuf(stream.memory^, sizeof(TDatensatz));
//clientsocket.ReceiveBuf(stream, sizeof(TDatensatz));
stream.Read(Daten, sizeof(Tdatensatz));
memo1.Lines.Add(daten.Nachname);
memo1.Lines.Add(daten.Vorname);
memo1.Lines.Add(daten.Lehrer);
memo1.Lines.Add(daten.Klasse);
memo1.Lines.Add(daten.Bemerkung);
stream.Free;
end;
da werden nur leere zeilen erstellt.
ich will vorher das erhaltene in den memorystream laden und den dann dem daten-record uebergeben.
der fehler liegt irgendwo beim receivebuf
imho...
ich weiss also ganz genau, wie lang der empfangene stream sein muesste, der in den memorystream soll, also so gross wie halt Tdatensatz aber das funkt net... *wein*
will wer helfen?