Thema: Delphi Problem mit Move

Einzelnen Beitrag anzeigen

WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Problem mit Move

  Alt 7. Mai 2009, 16:13
Hi,

diesmal habe ich ein Problem mit Move.

Delphi-Quellcode:
procedure TPartition.DiscRead(d: TDisc; Offset: Cardinal;
  Len: Integer; var Data);
var
  ...
  CopyBuffer: array of Byte;
begin
  ...
  // CopyBuffer bekommt vorher eine Länge, meistens 512
  if Len > 0 then
  begin
    ReadSector(FHandle, (iwlba shl iwlba_shift) + lba, 1, CopyBuffer[0]); // wird ReadFile aufrufen
    Move(CopyBuffer, Data, Len);
    Showmessage(IntToStr(CopyBuffer[0]));
  end;
end;
Aufruf:
Delphi-Quellcode:
function TMainForm.DiscRead(Offset: Int64; Count: Integer): TBytes;
begin
  SetLength(Result, Count);
  FActivePart.DiscRead(FActiveDisc, Offset, Count, Result[0]);
  Showmessage(IntToStr(Result[0]));
end;
Das obere Showmessage ergibt 82, das ist auch richtig. Das untere im Aufruf jedoch 120...
Ich vermute es liegt irgendwie an dem Move, kommt es mit dem TBytes als Ergebnis-Typ vielleicht nicht klar?

Edit: Das alte Lied.... es muss Move(CopyBuffer[0], Data, Len); heißen!!
  Mit Zitat antworten Zitat