![]() |
Re: string in array of char umwandeln
Servus !
vorweg, der variablenname "Name" ist schonmal unglücklich gewählt, da er von jedem objekt benutzt wird. Dann:
Delphi-Quellcode:
wozu ?
setlength(name, length(msg.username));
Das könntest du auch weglassen, und dann in der Schleife mit:
Delphi-Quellcode:
hintendrann hängen.
for i := 1 to Length(msg.username) do
myname := myname + msg.username[i-1]; |
Re: string in array of char umwandeln
okay danke.
fast so hatte ich das ja schon. die möglichkeit von christian seehase klappt nicht (meldung: "invalid pointer operation"...). langsam glaube ich aber auch, dass mein record nicht richtig ankommt. versand vom server:
Delphi-Quellcode:
empfang beim client (in dem TClientSocket.OnRead-Event):
type TChatMessage = record
command: integer; userid: integer; username: array of char; parameters: array of char; end; //... var rec: TChatMessage; serversocket1.Socket.Connections[0].SendBuf(rec, sizeof(rec));
Delphi-Quellcode:
sollte doch klappen, oder?
socket.receiveBuf(rec, sizeof(rec)
Aenogym |
Re: string in array of char umwandeln
Ich fürchte nicht, SizeOf hat probleme mit dynamischen Arrays.
(ob auch mit statischen, kann ich nicht sagen) Tipp: Schreibe command, userid, Length(Username), Length(parameters), sowie die beiden Arrays in ein MemoryStream und versende dann den. |
Re: string in array of char umwandeln
Zitat:
|
Re: string in array of char umwandeln
Hallo Aenogym,
aus Deinem Code lese ich, dass Du einen Record über Sockets an einen anderen Prozess (oder gar Rechner) übertragen möchtest. Bitte lies Dir den Hinweis von Chewie genau durch! Solltest Du das Record auf diese Weise übertragen, wird lediglich ein Verweis auf die tatsächlichen Daten (und indirekt auf die von Chewie dargestellten Metadaten) im Speicherraum des Absenderprozesses übertragen, nicht aber die Daten selbst! Das Problem, dass Dich beschäftig heißt Serialisierung und ist hier (auch im Zusammenhang mit Records) schon mehrfach diskutiert worden. |
Re: string in array of char umwandeln
danke leute.
dass das thema hier schon öfter diskutiert wurde, hab ich in der suche gesehen... ich werde denn mal die möglichkeit mit dem memoryStream ausprobieren (obwohl ich eigentlich noch nie mit streams gearbeitet hab - schon garnicht mit memorystreams...). aber danke euch allen, ich schaff das schon irgendwie :thuimb: Aenogym |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 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