Einzelnen Beitrag anzeigen

WorstNightmare

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

Dynamisches Array & ReadFile

  Alt 2. Mai 2009, 10:14
Hallo,

ich möchte ReadFile gerne ein dynamisches Array übergeben, allerdings schlägt es dann immer fehl.

Delphi-Quellcode:
function TPartition.ReadSector(Handle: THandle; lba, count: DWORD;
  var Buf): Integer;
var
  large: LARGE_INTEGER;
  read: DWORD;
  offset: Int64;
begin
  offset := lba;
  offset := offset * 512;
  large.QuadPart := offset;

  if not SetFilePointerEx(Handle, large, nil, FILE_BEGIN) then
  begin
  // Result := 1;
    raise Exception.Create('SetFilePointerEx fehlgeschlagen!');
  end;

  read := 0;
  if not ReadFile(Handle, Buf, count * 512, read, nil) then
  begin
 // Result := 1;
    raise Exception.Create('Sektor konnte nicht gelesen werden!');
  end;

  Result := 0;
end;

procedure TPartition.TestRead;
var
  bigBuf: array of Byte;
  i, disc_info_sz_lba: Integer;
begin
  i := 1;
  disc_info_sz_lba := 19;

  SetLength(bigBuf, 10000);
  Showmessage(IntToStr(SizeOf(bigBuf)));

  ReadSector(FHandle, 1 + i * disc_info_sz_lba, disc_info_sz_lba, bigBuf);
end;
Bei dem ShowMessage kommt 4 raus (ich glaube weil dynamische Arrays Pointer sind), wenn es aber ein statisches Array ist (damit funktioniert das Lesen dann auch), zeigt es die Länge + 1 oder 2 an. Somit kommt bei dieser dynamischen Variante "Sektor konnte nicht gelesen werden!".
Kann ich es irgendwie hinbekommen, die Größe dieses dynamischen Arrays zu vergrößern?
  Mit Zitat antworten Zitat