不兼容的类型 - TArray <system.byte>&amp;字节</system.byte>

时间:2012-10-08 11:24:29

标签: delphi delphi-xe

我已将outputBuffer声明为Byte并相应地使用它:

  

TFile.WriteAllBytes(outputPath,outputBuffer);

当我编译程序时,Delphi输出:

  

[DCC错误] StormLib.pas(56):E2010不兼容的类型:'System.TArray [System.Byte]和'Byte'

我的变量使用了错误/过时的数据类型吗?我该怎么做才能让我的程序编译?

先谢谢你了!

2 个答案:

答案 0 :(得分:7)

请改用TBytesWriteAllBytes方法采用TBytes定义为TArray<Byte>,因此是一个字节数组,而不仅仅是一个Byte

var
  OutputPath: string;
  OutputBuffer: TBytes;
begin
  // use SetLength to set the length of your OutputBuffer
  // byte array, fill it somehow and then call WriteAllBytes
  TFile.WriteAllBytes(OutputPath, OutputBuffer);
end;

答案 1 :(得分:1)

您的错误消息清楚地表明不兼容的类型不是字节和字节,而是TArray&lt; Byte&gt;和字节。坦率地说 - 这就是预期的。字节数远远超过单字节。

制作TArray的变量&lt;字节&gt;输入并使用它来包含值。