存档文件格式

Windows Installer 数据库的文本存档文件带有 .idt 文件扩展名。 将整个数据库导出到存档文件时,数据库中的每个表都有一个单独的 .idt 文件。 如果表包含流列,则表中的每个流都由文件扩展名为 .ibd 的文件表示。 .ibd 文件存储在与表同名的文件夹中。

.idt 文件格式

仅包含 ASCII 字符的导出数据库表的 .idt 文件具有以下基本格式。

  • 第一行包含用制表符分隔的表列名称。
  • 第二行包含用制表符分隔的列定义。
  • 如果文件仅包含 ASCII 数据,则第三行是表名,主键列名用制表符分隔。
  • 文件中的其余行表示表中的行,列用制表符分隔。

注意

如果文件包含非 ASCII 数据,则第三行是数字代码页,后面是表名和主键列名,用制表符分隔。 包含非 ASCII 信息的 .idt 文件应以 ASCII 格式保存。 例如,文本存档文件可以包含编码为 UTF-8 的列名和表名,但存档文件本身应该是 ASCII。 请参阅文本存档文件中的 ASCII 数据部分。

 

注意

特殊 _ForceCodepage_SummaryInformation .idt 文件使用扩展格式。 有关其格式的说明,请参阅 _ForceCodepage 和_ SummaryInformation 部分。

 

列定义

列定义由字符指示。

  • 第一个字符指示列类型。 小写字母表示不可为 Null 的列,大写字母表示该列可以包含 Null 值。

    字符 含义
    s, S 字符串列
    l, L 可本地化的字符串列
    v, V 二进制列
    i, I 整数列

     

  • 第二个字符指示列数据大小。

    注意

    Windows Installer 实际上不会使用指定的列大小来限制可输入到字符串列字段中的字符串的大小。 但是,某些创作工具确实使用指定的列大小来限制有效字符串的大小。 建议在任何列中输入的字符串均符合指定的大小要求。

     

    列定义 含义
    s255 不可为 Null 的字符串列长度 255
    L50 可为 Null 的可本地化字符串列长度 50
    i2, I2 短整数列
    i4, I4 长整数列

     

控制字符转换

将表导出到文本存档文件会转换控制字符,以避免与文件分隔符产生冲突。 写入 .idt 文件时,将按如下所示转换控制字符。

控制字符 .idt 中的转换 含义
Null 21 Null
BS 27 退格
HT 16 Tab
LF 25 换行
FF 24 换页
CR 17 回车