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 649 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

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 570 811
27 960
271 761
545
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