LZ 的这个文件是 Delphi 编写的程序,选定的这个 Frame 字串,前后有二个空格,一共7个字符,14个字节。从其字串前面的字节结构来看,是典型的 Pascal 字串,即 Delphi Unicode 字符串。Pascal 字串有以下几种类型:
- Pascal 字串 (即 Delphi Unicode 字符串,仅在 Delphi 2009 及以上版本中存在)
字节块以双空字节结束,可能包含空字节。每个字节块前,依次有 2 个字节的代码页、2 个字节的每个字符字节数、4 个字节的引用次数、4 个字节的字串字符数标志。
- Pascal 宽字串 (即 Delphi Wide 字符串,仅在 Delphi 中存在)
字节块以双空字节结束,可能包含空字节。每个字节块前,依次有 4 个字节的字串字节长度标志。
- Pascal 长字串 (即 Delphi Ansi 字符串,仅在 Delphi 中存在)
字节块一般以空字节结束,不包含空字节。每个字节块前,依次有 4 个字节的字串引用次数、4 个字节长度标志。
- Pascal 短字串 (即 Delphi Short 字符串,仅在 Delphi 中存在)
字节块没有特定的结束标志,不包含空字节。每个字节块前,依次有 1 个字节的字串字节长度标志。
从 B0 04 20 00 FF FF FF FF 07 00 00 00 起,依次为 B0 04 为字串代码页,值为1200,正好是 Unicode 代码页值,20 00 为每个字符的字节数,值为2,正好和 Unicode 字符都是2个字节吻合,FF FF FF FF 为引用次数,值为-1,07 00 00 00 为字符数。
Passolo 非标字串宏不仅可以自动识别该文件为 Delphi 程序,还可以提取并识别这个字串为 Delphi Unicode 字符串,写入时不仅会自动修改字串长度,还能修改代码页,非常自动化。