![]() |
Binär statt Rückgriff auf Zeichenkodierungen!?
Hallo,
ich habe folgendes Szenario:
Delphi-Quellcode:
Ich möchte nun den Inhalt eines Records diesen Typs übers Netz binär unter .NET senden.
TDatenpaket = packed record
a:Byte; b:Int16; c:Int32; d:Boolean; end; Ich finde eine Reihe von Beispielen die auf Zeichenkodierungen und den damit zugänglichen GetBytes()-, GetString()-Funktionen, usw. per Socket.Send() verschicken. Das ist für mein Record meiner Meinung nach ungeeignet, weil nicht gewährleistet ist, dass die Bytes unverändert bleiben. Frage: Auf die Gefahr hin das diese blöd klingt, aber wie komme ich an die einzelnen Bytes der Struktur ohne das Hilfskonstrukt der Stringfunktionen? Meine derzeitige Lösung sieht so aus, dass ich die Strukturen als Serializable deklariere und per BinaryFormatter und der Methode GetBytes einen MemoryStream benutze. Das funktioniert, aber ich möchte das nicht dauerhaft über Serialisierung lösen. Das muß doch einfacher gehen ... :-). Gruß, Sascha |
Re: Binär statt Rückgriff auf Zeichenkodierungen!?
Hmm ka wie es in .Net ist, aber in D7 würd ich es pie mal daumen so machen:
Du fragst erstmal ab wie groß das Record ist, geht mit ![]() Und dann gehst vom Anfang des Records in Byteschritten bis zum erreichen der Größe durch... Ich hoffe es hilft ^^ Bye |
Re: Binär statt Rückgriff auf Zeichenkodierungen!?
Zitat:
|
Re: Binär statt Rückgriff auf Zeichenkodierungen!?
Zitat:
Somit ist es wohl unabwendbar eine Kodierungsfunktion zu schreiben :coder: Bye |
Re: Binär statt Rückgriff auf Zeichenkodierungen!?
Danke für Eure Beiträge!
SizeOf() ist zwar benutzbar, allerdings gibt es immer 0 zurück, was die Aussage von Bernhard stützt. Weiterhin ist SizeOf im Namespace Borland.Delphi.System, wobei ich mir hier dann auch nicht sicher wäre, ob das mit einer Verwendung unter Mono verträglich wäre, selbst wenn SizeOf() funktionieren würde. Bin für weitere Vorschläge offen ;-). Gruß, Sascha Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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