我今天注意到在D2009(更新1)中,TStringStream.ReadString不再像以前那样移动流中的位置。直到D2007。
因此,在MyStringStream.ReadString(10)上循环将始终读取流的前10个字符而不是移动并获得10个字符的所有流10个字符。
我检查了文档,它仍然说ReadString应该移动位置...
任何人都可以确认它是否是D2009代码中的错误或是否有设计更改(以及为什么)并且文档已过时?
感谢...
更新:QC #68582
中报告的问题答案 0 :(得分:6)
绝对是一个错误和丑陋的兼容性破坏。如果检查Classes.pas,您将看到ReadString的Unicode和非Unicode版本。非Unicode版本正在递增FPosition而Unicode不是。原始D2009和Update 1的行为都相同。
请在QC报告。