Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skapa dataström utifrån struct

Postades av 2006-10-09 17:48:16 - Magnus Olsson, i forum c# (c-sharp), Tråden har 1 Kommentarer och lästs av 641 personer

Jag håller på att utveckla en klient som ska prata med en hårdvara via TCP/IP.
Som klienten är byggd nu byggs det upp massa olika structurer med data och sedan skickas värde för värde till hårdvaran. Jag vill förenkla programmet (det är inte jag som byggde det från början) och vill kunna serialisera strukturena och skicka hela strukturen på en gång. Går det?
Normalt när man använder System.Runtime.Serialization.Formatters.Binary.BinaryFormatter kommer massa annan information med i dataströmen. Jag vill helt enkelt få en dataström med enbart den informationen som finns i strukturen.

Här är exempel på en struct:

struct point
{
   ushort size;
   char[] name;
}

struct init
{
   uint size;
   uint command;
   uint count; 
   point[] points;
}


Detta ska resultera i en dataström som ser ut som följer:
<code>
Bytes Värde
********************************
4 size
4 command
4 count
2 points[0].size
points[0].size points[0].name
2 points[1].size
points[1].size points[1].name
...
2 points[count-1].size
points[count-1].size points[count-1].name
</code>

Det hade varit bra om det går att göra åt andra hållet också med den datan som kommer från hårdvaran.


Svara

Sv: Skapa dataström utifrån struct

Postades av 2006-10-09 18:52:48 - Oskar Johansson

Nu vet jag inte om det finns något inbyggt/färdigskrivet, men...

Det där är ju kod som du enkelt kan skriva själv med hjälp av reflection-apierna i .net. I princip någonting såhär:

1) typeof(min_struct_typ) ger en instans av en Type för den structen
2) På det type-objektet finns det metoder för att få fram t.ex. alla variabler (fields) för structen, och du kan få fram datatyper, namn etc. därifrån
3) För arrayer får du skriva någon egen hantering precis som du beskrev
4) sizeof(int, long, char etc.) ger dig en integer med hur många bytes som den värdetyp du stoppade in kräver för att lagras

Sedan är det bara att med hjälp av loopar å annat kul köra igenom alltihopa åt båda hållen


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
717
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies