3 Stimmen

Unverträgliche Typen - TArray<System.Byte> & Byte

Ich habe erklärt outputBuffer als Byte und nutzte sie entsprechend:

TFile.WriteAllBytes(outputPath, outputBuffer);

Wenn ich mein Programm kompiliere, gibt Delphi aus:

[DCC-Fehler] StormLib.pas(56): E2010 Inkompatible Typen: 'System.TArray[System.Byte] und 'Byte'

Habe ich den falschen/veralteten Datentyp für meine Variable verwendet? Was muss ich tun, damit mein Programm kompiliert werden kann?

Vielen Dank im Voraus!

8voto

TLama Punkte 73381

Verwenden Sie TBytes stattdessen. Die WriteAllBytes Methode dauert TBytes die definiert ist als TArray<Byte> und ist somit ein Array von Bytes, nicht nur ein einzelnes 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;

1voto

Arioch 'The Punkte 15489

Ihre Fehlermeldung zeigt deutlich, dass die inkompatiblen Typen nicht Byte und Byte, sondern TArray<Byte> und Byte sind. Offen gesagt - das ist das, was man erwartet. Array von Bytes ist viel mehr als ein einzelnes Byte.

Erstelle eine Variable vom Typ TArray<Byte> und verwende sie, um den Wert zu enthalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X