Forum: PC-Programmierung zu machen? Also eine Methode um verschiedene Datentypen byteweise in ein bytearray


von oswald (Gast)


Lesenswert?

Hallo Freunde,
habe eine Frage gibt es in c# auch eine Möglichkeit das umgekehrte vom 
unten angeführten Beispiel zu machen?
Also eine Methode um verschiedene Datentypen byteweise in ein bytearray 
einzufügen!

1
            Temp1 = BitConverter.ToSingle(Puffer,5);
2
            Temp2 = BitConverter.ToSingle(Puffer, 9);
3
            Temp3 = BitConverter.ToSingle(Puffer, 13);
4
            Temp4 = BitConverter.ToSingle(Puffer, 17);
5
            parameters1 = BitConverter.ToUInt16(Puffer, 21);
6
            parameters2 = BitConverter.ToUInt16(Puffer, 23);
7
            parameters3 = BitConverter.ToUInt16(Puffer, 25);
8
            parameters4 = BitConverter.ToUInt16(Puffer, 27);
Vielen Dank für Eure Hilfe!

von bluppdidupp (Gast)


Lesenswert?

BitConverter.GetBytes() ?
Zusammensetzen z.B. einfach via MemoryStream

von oswald (Gast)


Lesenswert?

Kannst Du mir ein Beispiel machen?
Danke für deine Antword

Oswald

von bluppdidupp (Gast)


Lesenswert?

1
float f=....
2
3
// In dieses Byte-Array solls rein:
4
byte[] zielBuffer=new byte[1024];
5
6
// Bytes von f holen:
7
byte[] bytesVonF=BitConverter.GetBytes(f);
8
9
// In zielBuffer kopieren:
10
int offset=5; // An Position 5 in zielBuffer solls kopiert werden
11
Buffer.BlockCopy(bytesVonF,0,zielBuffer,offset,bytesVonF.Length);
12
13
// ======================================
14
15
// Oder falls man nicht mit offsets arbeitet und nur nacheinander reinpackt:
16
byte[] zielBuffer=new byte[0];
17
using(MemoryStream ms=new MemoryStream())
18
{
19
    byte[] bytesVonF=BitConverter.GetBytes(f);
20
    
21
    // Bytes in den Memory-Stream schreiben:
22
    ms.Write(bytesVonF,0,bytesVonF.Length);
23
   
24
    // Hier: Noch mehr Zeugs reinschreiben...
25
    
26
    // Zum Schluss: MemoryStream als byte-Array holen:
27
    zielBuffer=ms.ToArray();
28
}

von oswald (Gast)


Lesenswert?

Super Vielen Dank genau das habe ich gesucht!

Vielen Dank

von Amateur (Gast)


Lesenswert?

Normalerweise ist die Speicherung kein Selbstzweck.

Natürlich kann man praktisch jeden Datentyp in Bytes zerlegen und der 
Reihe nach abspeichern, wenn man diese aber rekonstruieren will, muss an 
irgend einer Stelle die ursprüngliche Struktur hinterlegt worden sein - 
wenn nicht, hat man im Anschluss, nur noch Bytes und davon jede Menge.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.