Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Zugriff auf Record-Eigenschaft nicht möglich

  Alt 18. Mai 2009, 09:23
Hallo,

das Problem liegt wohl nicht in den fread_*-Methoden. Greife ich nämlich noch vor dem Lesen auf die Eigenschaft zu:
Delphi-Quellcode:
function read_generic_data_header(var data_header: generic_data_header; fs: TFileStream): integer;
begin
  fread_ASTRING(data_header.data_type_id, fs);
  fread_ASTRING(data_header.unique_file_id, fs);
  fread_AWSTRING(data_header.date_time, fs); // Hier wird nix gelesen, da die Länge = 0 ist
  data_header.locale.value := '-----'; // <--- hier kommt die Exception
  fread_AWSTRING(data_header.locale, fs);

  Result := 1;
end;
Erhalte ich schon dort eine EOutOfMemory-Exception.

Noch mal die Typ-Definitionen:
Delphi-Quellcode:
type
  // C-Typedefs
  int8_t = Shortint;
  uint8_t = Byte;
  int16_t = Smallint;
  uint16_t = Word;
  int32_t = integer;
  uint32_t = longword;
  float32_t = Single;
  uchar = uint8_t;

  AWSTRING = record
    len: int32_t;
    value: WideString;
  end;

  generic_data_header = record
    data_type_id: ASTRING;
    unique_file_id: ASTRING;
    date_time: AWSTRING;
    locale: AWSTRING;
    n_name_type_value: int32_t;
    name_type_value: array of nvt_triplet;
    n_parent_headers: array of Pointer;
  end;
Irgendwelche Vorschläge?

Gruß
Christopher

PS: Ich weiß im Moment nicht, wie ich ein Beispielprogramm bereit stellen sollen, da ich die Datei, aus der gelesen werden soll, nicht veröffentlichen kann.
  Mit Zitat antworten Zitat