Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#17

Re: Filestream, string anhängen

  Alt 17. Jan 2008, 18:09
1. Alle TStream Nachfahren haben eine Eigenschaft Delphi-Referenz durchsuchenTStream.Size
2. Warum seekst du auf eine Position 0 vom Ende aus gesehen um dann danach von vorne zu seeken? Warum seekst du nicht gleich auf Count Bytes vom Ende aus? So ist es völlige Resourcenverschwendung
3. Was macht dein Code, wenn die Datei kleiner ist als die mit Count angegebene Datengröße?

Also nochmal das Ganze:
Delphi-Quellcode:
function GetFileStrFromEnd(FileName: String; Count: Integer): String;
var
  FS: TFileStream;
  I:integer;
begin
  FS:=tfilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
  try
    if FS.Seek(Count, soFromEnd) = Count then
    begin
      Setlength(Result,Count); // nicht vergessen, sonst Zugriffsverletzung
      FS.Read(Result[1],Count); // [1] nicht vergessen, sonst Zugriffsverletzung
    end
    else
      result := ''; // stream ist kleiner
  finally
    fs.Free;
  end;
end;
/EDIT: zweite Seite übersehen. Also wurde der 3. Punkt schon erwähnt...
  Mit Zitat antworten Zitat