当前位置:编程学习 > VB >>

有文件C的数据结构!怎么用编程工具去生成这样的文件啊?高手指点

[文件头][显示项1][显示项2]……[字库1][字库2]……[背景图]

[文件头],12字节:

    [文件版本],2字节

1:SuperComm的TMC文件,背景图为三色16位色的XMP 图片;

2:SuperComm的TMC文件,背景图为双色16位色的XMP 图片;

3:SCL2008的TMC文件,背景图为双色无灰度XMP图片

4:保留

5:SCL2008的TMC文件,背景图为三色无灰度XMP图片

    [背景图的高度],2字节

    [背景图的宽度],2字节

    [文件中的显示项数],2字节

    [本文件中包含的字库数],2字节

    [背景图在本文件中的偏移量],2字节

[显示项],24字节:

    [显示项类型],1字节。类型代码如下:

1:年,2:月,3:日,4:星期,5:时,6:分,7:秒,8:温度,9:湿度,10:倒计时,11:串口数据

    [显示颜色],3字节,第一字节为红色,第二字节为绿色,第三字节为蓝色

    [使用的字库在本文件中的偏移量],2字节

    [显示位数],1字节

[显示项特征],1字节,对倒计时项为计数方向,正计(0)倒计(1);对串口数据为参数序号(1-8);对‘小时’数据为有符号数,用做显示小时数据的时区偏移值(例如,假设控制器时钟的小时值为‘3’,本字段为-2,则显示为‘1’),对温度数据为摄氏(0)华氏(1)选择

[倒计时初始值],4字节,长整数

[串口数据的串口编号],1字节,0:串口1,1:串口2,2:串口3

[数字首0不显示标记],1字节,0:显示首0,1:不显示首0

[修改本项的年],1字节,对1000取模

[修改本项的月],1字节

[修改本项的日],1字节。上述三项与初始值配合,用于控制器自动计算倒计时

[未用],1字节

[显示项输出的垂直坐标],2字节

[显示项输出的水平坐标],2字节

[未用],2字节

[字库]:

     [字型高度],2字节

     [字型宽度],2字节

     [每个字使用的字节数],2字节

     [字符点阵],按照“先行后列,每个字节表示垂直方向的8点”的格式依序存放字符‘0’-‘9’、‘+’、‘-’、空格、小数点的显示点阵(每个字的点阵是单色XMP图片)

[背景图]:

    为一个XMP图片,遵循[文件头]中的图片[高度]和[宽度]。若[文件版本]=2,则是16位色XMP图片;若[文件版本]=3,则是双色XMP图片。

    TMC 文件中各类结构的C语言格式如下:

    #define       WORD unsigned short;

     #define       BYTE unsigned char;

struct  Tmc_Head

{

          WORD          Flag;

          WORD          AreaHeight;

          WORD          AreaWidth;

          WORD          ItemCount;

          WORD          FontCount;

          WORD          BkGroundOffset;

};

struct   Item_Struct

{

     BYTE           AType;

     BYTE          Color_Red;

     BYTE          Color_Green;

     BYTE          Color_Blue;

     WORD           FontOffset;

     BYTE          BitCount;

     Signed char   CountDir; // 当AType=5为’时’,此字段为时区偏移

     long          Value;

     BYTE          ComPort;

     BYTE          HideZero;

     BYTE          Year;

     BYTE          Month;

     BYTE          Day;

     BYTE          NC0;

     short         YPosi;

     short         XPosi;

     WORD          NC1;

};

struct Font_Struct

{

     WORD          CharHeight;

     WORD          CharWidth;

     WORD          ByteCount;

     BYTE          Font[];

};

--------------------编程问答--------------------
Type Tmc_Head
    Flag            As Integer
    AreaHeight      As Integer
    AreaWidth       As Integer
    ItemCount       As Integer
    FontCount       As Integer
    BkGroundOffset  As Integer
End Type

Type Item_Struct
    AType           As Byte
    Color_Red       As Byte
    Color_Green     As Byte
    Color_Blue      As Byte
    FontOffset      As Integer
    BitCount        As Byte
    CountDir        As Byte
    Value           As Long
    ComPort         As Byte
    HideZero        As Byte
    Year            As Byte
    Month           As Byte
    Day             As Byte
    NC0             As Byte
    YPosi           As Short
    XPosi           As Short
    NC1             As Integer
End Type

Type Font_Struct
    CharHeight      As Integer
    CharWidth       As Integer
    ByteCount       As Integer
    '没有与 Font[] 直接对应的类型,需要自己用 Byte() 数组进行处理'
End Type
补充:VB ,  COM/DCOM/COM+
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,