1

我正在用 delphi 编写一个将数据写入二进制文件的程序,但我遇到了一个我不明白如何解决的问题。

我有以下代码:

testar: = TFileStream.Create ('test.exe', fmOpenWrite);
testar.Position: = testar.Size;

here: = '{test} test {test}';

testar.Write (here, 1024);

用 WinHex 测试

http://img836.imageshack.us/img836/3206/la49.jpg

此版本以二进制代码打印,因为当我使用 WinHex 看到它时看起来不错,但其他代码:

testar: = TFileStream.Create ('test.exe', fmOpenWrite);
testar.Position: = testar.Size;

here: = '{test}' + Edit1.Text + '{test}';

testar.Write (here, 1024);

它根本不显示任何内容,因为当您想要编辑二进制代码时,编辑似乎存在问题,这很奇怪,因为当我使用它时,它全部都是单引号,但编辑示例不起作用。

注意:程序没有给出任何错误信息

有人可以帮我解决这个问题吗?

4

1 回答 1

4

您提供了非真实代码,但我怀疑“这里”是字符串。要将字符串主体写入流,您可以使用以下代码:

test.Write(PChar(here)^, SizeOf(Char) * Length(here));

PS 如果您稍后要从流(文件)中读取此字符串,那么明智的做法是在字符串正文之前写入其长度。

于 2013-07-13T19:11:16.857 回答