我有一些使用 ReadStr 和 WriteStr 的代码,我认为是将字符串写入二进制文件。
文档中对 WriteStr 的解释指出,它将以 AnsiString 的形式将原始数据写入对象的流,这是有道理的。但随后 ReadStr 说它读取了一个字符。那么它们不是彼此对立的吗?
假设我有,
pName: String[80];
我在上面使用了 WriteStr,它实际上写了什么?由于 WriteStr 需要 AnsiString,它是否将 pName 转换为这样?在这种情况下,它是否不会将“长度”字段写入流中,因为 AnsiString 指针指向第一个元素而不是长度字段?我也在寻找,这些天似乎 String == AnsiString,但我关于长度字段的问题仍然保持不变。
如果假设它没有将 Length 字段写入文件,它是否仍然在数据末尾写入 NULL?因此,我可以通过查找“\0”来找到字符串的结尾吗?ReadStr 是否读取到 NULL 字符?
非常感谢你 :)