2012-10-08 83 views
2

我已經聲明outputBuffer作爲Byte和相應地使用它:不兼容的類型 - 在tarray <System.Byte>&字節

TFile.WriteAllBytes(outputPath,OutputBuffer中);

當我編譯我的程序,Delphi的輸出:

[DCC錯誤] StormLib.pas(56):E2010不兼容的類型:「System.TArray [System.Byte]和 '字節'

我是否爲我的變量使用了錯誤的/過時的數據類型?我必須做些什麼才能讓我的程序編譯?

謝謝先進!

+2

'TFile.WriteAllBytes(outputPath,TBytes.Create(outputBuffer))'將寫入您的1個字節的文件 –

回答

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

你的錯誤信息清楚地表明,不兼容的類型不是字節和字節,但在tarray <字節>和字節。坦率地說 - 這是預期的。字節數組遠多於單個字節。

使變量TArray <字節>類型並使用它來包含該值。