Einzelnen Beitrag anzeigen

CalganX

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

Re: Zugriff auf Record-Eigenschaft nicht möglich

  Alt 15. Mai 2009, 10:28
Hallo,

Zitat von himitsu:
SetLength(destination.value, destination.len);
wie gesagt: Es ist unabhängig davon, was ich in Zeile 8 mache. Habe SetLength schon probiert und führt zum gleichen Fehler.

Zitat von mkinzler:
Da WideString nicht finalisierbar istr steht bei Value nur ein Zeiger. du müsstest mit einer Hilfsvariablen arbeiten
Ganz so einfach scheint das aber auch nicht zu gehen.
Delphi-Quellcode:
function fread_AWSTRING(var destination: AWSTRING; const fs: TFileStream): size_t;
var
  temp: uint16_t;
  i: integer;
  temps: WideString;
begin
  Result := fread_be_int32(destination.len, 1, fs);
  if ((destination.len) > 0) then begin
    SetLength(temps, destination.len);
    for i := 0 to destination.len - 1 do begin
      fread_be_uint16(temp, 1, fs);
      temps[i+1] := WideChar(temp);
    end;
    destination.value := temps;
  end;
end;
Da fliegt mit in der letzten Zeile eine EOutOfMemory-Exception um die Ohren.

Gruß
Christopher
  Mit Zitat antworten Zitat