![]() |
FileSize nicht für Textdateien?
Wieso sind Textdateien ausgeschlossen? Hat das einen logischen Grund? Wie bekomme ich alternativ die Grösse einer Textdatei?
|
Re: FileSize nicht für Textdateien?
keine Ahnung.
aber warum benutzt du nicht
Delphi-Quellcode:
FileUtil.GetFileSize
|
Re: FileSize nicht für Textdateien?
Weils das anscheinend nicht mit Delphi5 gibt :D
|
Re: FileSize nicht für Textdateien?
Delphi-Quellcode:
function GetFileSize(szFile: PChar): Int64;
var fFile : THandle; wfd : TWIN32FINDDATA; begin result := 0; if not FileExists(szFile) then exit; fFile := FindFirstfile(pchar(szFile), wfd); if fFile = INVALID_HANDLE_VALUE then exit; result := (wfd.nFileSizeHigh * (Int64(MAXDWORD) + 1)) + wfd.nFileSizeLow; windows.FindClose(fFile); end; |
Re: FileSize nicht für Textdateien?
aber die WinAPI-Funktionen kannst du doch verwenden.
schau mal in der MSDN oder online-MSDN nach... /edit: siehe vorhergenden Beitrag, ich war zu langsam. |
Re: FileSize nicht für Textdateien?
Hallo,
so sollte es gehen:
Delphi-Quellcode:
Grüße Peter
function GetSize(Datei: AnsiString): Integer;
var F : TFileStream; Size : integer; begin result:= 0; try F := TFileStream.Create(Datei, fmOpenRead or fmShareDenyWrite); except Exit; end; result := F.Size; F.Free; end; |
Re: FileSize nicht für Textdateien?
Es sollte auch ohne den Umweg über den STream gehen:
Delphi-Quellcode:
Frank
function GetFileSize(const FileName: string): DWord;
var fd: TWIN32FindData; begin if Windows.FindClose(Windows.FindFirstFile(PChar(FileName), fd)) then Result := fd.nFileSizeLow else Result := 0; end; |
Re: FileSize nicht für Textdateien?
Perfekt, dat lüppt, besten Dank!
|
Re: FileSize nicht für Textdateien?
Zitat:
Ähnliches gilt daher auch für FilePos() bei Textdateien. |
Re: FileSize nicht für Textdateien?
Danke für die ausführliche Antwort. Wo wir schon bei eof sind, da kommt mein nächstes Problem. Ich bekomme eine Exception, wenn ich eof(meinetextdatei) aufrufe (ich will die letzten 1000 Zeilen einer Backup-Textdatei sichern, die backup-Datei löschen wenn sie zu gross geworden ist und diese Zeilen wieder einfügen)
Code:
AssignFile(t, datei);
Reset(t); while not eof(t) do begin readln(t, temp); tempstr.add(temp); end; CloseFile(t); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz