定义机构
type
Trec=record
Data1 : array [0,39]of  Byte;
Data2 : array [0,7]of  Byte;
...
Data6 : array [0..8]of  Byte;end;copymemory \move之类可以拷贝数据;
Data34 只有移位 计算了shr shl

解决方案 »

  1.   

    To newyj(方恨少):
        多谢!
    但我又一个疑问,为什么不用一些定长的数据类型来取数,如single这类的。还有,位操作取数
    能不能说的详细一点。
      

  2.   

    typedef struct{
        unsigned char Data1[40];
        unsigned char Data2[8];
        unsigned int  Data31:2;
        unsigned int  Data32:2;
        unsigned int  Data33:2;
        unsigned int  Data34:2;
        unsigned char Data4[4];
        unsigned char Data5[7];
        unsigned char Data6[9];
    }SData;unsinged int uiBytesRead = 0;
    SData stData;
    fp = fopen(...);
    do{
       uiBytesRead = fread(&stData, 1, sizeof(SData), fp ); 
       //use stData.* here;
    }while(uiByteRead == sizeof(SData));fclose(fp);
      

  3.   

    谢谢楼上的:
        你定义为unsigned char Data2[8];和unsigned int  Data31:2;
    用了char和int两种不同类型的数据,
    请问:
    当文件中的Data2在存储时用的不是字符型数据时,这样取出来会不会有问题?
    非常感谢!
      

  4.   

    To E():
       你的源码是C++的语法,类似unsigned int  Data31:2;的定义在Delphi中怎么定义呢?
    To newyj(方恨少):
       你的Data1 : array [0,39]of  Byte;定义,接收下来是一个Byte类型,我怎样才能
       将他们组合转换成为String和Float等类型?
    非常感谢两位大虾,也感谢帮忙Up的朋友们.
    分不是问题,不够我可在开贴子加!先谢谢各位了!