![]() |
FileSize arbeitet ungenau oder ?
Hallo,
hab ne IF Anweisung, die eine bestimmte Datei löschen soll, wenn sie leer ist (also 0 Bytes). Wenn ich allerdings folgendes aufrufe, löscht er mir in jedem Falle die Datei, egal ob da ein paar Zeichen drin stehen oder nicht:
Delphi-Quellcode:
Ist die Anweisung nur KB - genau ?
Assign(aktuellS, 'Aktuell.ini');
Reset(aktuellS); if FileSize(aktuellS) = 0 then begin CloseFile(aktuellS); DeleteFile('Aktuell.ini'); end else CloseFile(aktuellS); |
Re: FileSize arbeitet ungenau oder ?
Von was für einem Typ ist aktuellS?
Ansonsten probier es mal mit FindFirst und der TWIN32_FIND_DATA Struktur. Würde ich sowieso vorziehen. |
Re: FileSize arbeitet ungenau oder ?
aktuellS ist vom Typ TextFile und ist unter var deklariert !
Im Prinzip will ich einfach nur prüfen, ob in der Datei irgendetwas drin steht. Und wenn nicht, dann soll sie gelöscht werden. |
Re: FileSize arbeitet ungenau oder ?
Moin Rapthor,
Zitat:
|
Re: FileSize arbeitet ungenau oder ?
Oh, das klingt nicht gut!
Außer dem TWIN32_FIND_DATA geht nichts ran an dieses Problem ? |
Re: FileSize arbeitet ungenau oder ?
doch. deklarier doch Deine Datei als file of byte, dann geht FileSize.
Roderich |
Re: FileSize arbeitet ungenau oder ?
Moin Rapthor,
doch. Öffne die Datei mit Hilfe von TFileStream, und prüfe dann die Eigenschaft Size. Oder Du holst Dir mit CreateFile ein Handle auf die Datei und holst Dir die Grösse mit GetFileSize. Wenn die Dateien grösser 2GB sein können, wäre der zweite Weg, oder der über FindFirst... sinnvoller, da TFileStream.Size nur vom Typ LongInt ist. |
Re: FileSize arbeitet ungenau oder ?
Zitat:
TFileStream('Aktuell.ini'); ?? Oder wie? |
Re: FileSize arbeitet ungenau oder ?
hi
etwa so:
Delphi-Quellcode:
Parameter:
var fs : TFileStream;
begin fs := TFileStream.Create('Dateiname',parameter); end; fmCreate Es wird eine Datei mit dem angegebenen Namen angelegt. Ist eine Datei mit diesem Namen bereits vorhanden, wird die Datei zum Schreiben geöffnet. fmOpenRead Die Datei wird ausschließlich zum Lesen geöffnet. fmOpenWrite Die Datei wird ausschließlich zum Schreiben geöffnet. Beim Schreiben in die Datei wird der aktuelle Inhalt vollständig ersetzt. fmOpenReadWrite Die Datei wird so geöffnet, daß der aktuelle Inhalt geändert werden kann, ohne daß er ersetzt wird. natürlich musst du die unit dazu noch einbinden gruß christoph |
Re: FileSize arbeitet ungenau oder ?
Und wie kann ich die Property SIZE aufrufen und den Wert in eine Variable speichern ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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