Einzelnen Beitrag anzeigen

martinf16

Registriert seit: 26. Aug 2007
99 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Länge eines Strings vs. verbrauchter Speicherplatz

  Alt 14. Sep 2009, 20:28
Zitat von martinf16:
Delphi-Quellcode:
try
  AssignFile(Datei, 'dateiname');
  Reset(Datei, 1);
  repeat
    BlockRead(Datei, Buffer, SizeOf(Buffer), NumRead); //Buffer ist array[1..1024] of Char
    temp:=temp+Buffer;
  until
    (NumRead < SizeOf(Buffer));
finally
  CloseFile(Datei);
end;

result:=temp;
Zitat von Blup:
Die Anzahl der gelesenen Byte wird hier überhaupt nicht ausgewertet.
Blockread setzt kein #0 Zeichen ans Ende der gelesenen Daten.
Deshalb wird bei temp := temp + buffer noch zusätzlicher Speichermüll hinter den gelesenen Daten an temp angehängt.
Ähm.. Irgendwie steh ich jetzt total auf dem Schlauch?! Was müsste ich denn da noch ergänzen, damit es funktioniert???
  Mit Zitat antworten Zitat