您的位置:程序门 -> .net技术 -> c#



数据流如何转换成指定类型


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


数据流如何转换成指定类型[已结贴,结贴人:fidt982]
发表于:2007-01-17 23:18:15 楼主
现在我从文件中读取到一串byte[]数组,里面的类容是按格式写的,比如前面的字节是一个文件头,而这个文件头是我定好的struct。
例如:
typedef   stuct   filehead
{
      char     a[20];
      char     b[40];
      int       c;
      int       d    
}filehead;

我如何从前面连续的字符中获取到这个结构体。
文件是用c写的,在c中只需要利用指针做个强转就可以了,   问c#下如何实现。
谢了!!!
发表于:2007-01-17 23:32:361楼 得分:0
try..

stream   stream=new   filestream(file);
binaryreader   br=new   binaryreader(stream);
filehead   fh=new   filehead();
fh.a=br.readchars(20);
fh.b=br.readchars(40);
fh.c=br.readint32();
fh.d=br.readint32();


//结构体定义如下
stuct   filehead
{
      public   char[]     a;
      public   char[]     b
      public   int   c;
      public   int   d    
}filehead;
发表于:2007-01-17 23:41:002楼 得分:0
楼上的这种方法我也知道,只是觉得太烦琐,因为实际情况中的结构体要比这复杂得多,而且这个文件里包含多个结构体,如果用上面的方法太麻烦了。

有没有更好的办法,
像c里面的可以一步到位的
filehead   stfilehead   =   *(filehead*)br;
发表于:2007-01-18 08:27:463楼 得分:10
c#中没有一步到位的...

至少我现在还没见过..
发表于:2007-01-18 08:28:254楼 得分:0
如果你是序列化的,倒可以一步反序列化再回来..
发表于:2007-01-18 09:06:125楼 得分:10
对,建议序列化,这样才能达到你的要求。。。


快速检索

最新资讯
热门点击