【发布时间】:2016-10-27 12:39:12
【问题描述】:
所以我有一个二进制文件,我正在读取一个 2 字节的字值,该值是 Int16 = 43140,但是每当我在 Delphi 中读取它时它返回为 43104,我编写了代码以在 C# 中读取它测试并正确读取它只是在 Delphi 中读取不正确,看起来 0 和 4 出于某种原因正在移动位置。
TMyHeader= packed record
Value1 :String[20];
Value2 :Word; // Is 43140 but reading as 43104
Value3 :Word;
Value4 :Word; // Is 43140 but reading as 43104
end;
FileRead (fhandle, header, sizeof(MyHeader));
【问题讨论】:
-
源文件中可能有 UTF-16 字符。而不是 ANSI。
-
证明问题的minimal reproducible example 会有所帮助。不可能猜测出什么可能是错的。您的代码也没有使用 Stream 阅读器。你实际上在问什么问题?
-
让我一起敲一个,我已经使用了 SysUtils 的 Stream reader 和 FileRead 并且都给出了相同的结果。
-
奇怪,当我构建这个小例子时,它运行良好,我认为肯定有其他原因导致它,我需要挖掘更多......
-
在提出无法回答的问题之前进行挖掘。像这样的问题需要minimal reproducible example。
标签: delphi delphi-2007