flush : nur für textdateien ?
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz
flush : nur für textdateien ?
Flush lässt sich nur für Textdateien aufrufen.
Ist bei einem anderen File kein flush notwendig ?
Oder wie kann ich dort erreichen, dass der Buffer wirklich geschrieben wird ?
Ist bei einem anderen File kein flush notwendig ?
Oder wie kann ich dort erreichen, dass der Buffer wirklich geschrieben wird ?
-
- Beiträge: 6910
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: flush : nur für textdateien ?
Bis jetzt hat bei mir immer CloseFile(f) gereicht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: flush : nur für textdateien ?
Ich dachte, die Funktion Flush() übergibt den internen Puffer an das Betriebssystem; da nur Textdateien unter Free Pascal einen internen Puffer haben, braucht man für andere Dateien den Befehl Flush() nicht.marcov hat geschrieben:Ja, das ist ein bekanntes Problem:
http://bugs.freepascal.org/view.php?id=15824
In dem Bug sind Methoden vorgeschlagen, die das Betriebssystem auffordern die Betriebssystem-Puffer auf die Festplatte zu schreiben.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 6910
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: flush : nur für textdateien ?
Schreibt das Betriebssystem nicht automatisch den Puffer auf die Platte ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz
Re: flush : nur für textdateien ?
Mein Problem ist: die Datei wird erst geschlossen am Ende des Programms.
Ich möchte einem Stromausfall (mit Datenverlust) vorbeugen und deshalb immer nach wichtigen Datentransfers alles auf die Platte schreiben.
Closefile ist problematisch, weil danach wieder ein open erfolgen müsste, was in diesem Fall mit zeitlich längeren Operationen verbunden ist (Indizes aufbauen).
Wegen dieses Zeitverzuges scheidet ein wiederholtes open aus.
Deshalb wäre ein flush eine gute Lösung.
Ich möchte einem Stromausfall (mit Datenverlust) vorbeugen und deshalb immer nach wichtigen Datentransfers alles auf die Platte schreiben.
Closefile ist problematisch, weil danach wieder ein open erfolgen müsste, was in diesem Fall mit zeitlich längeren Operationen verbunden ist (Indizes aufbauen).
Wegen dieses Zeitverzuges scheidet ein wiederholtes open aus.
Deshalb wäre ein flush eine gute Lösung.
- af0815
- Lazarusforum e. V.
- Beiträge: 6768
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: flush : nur für textdateien ?
Machst du eine DB 'zu Fuß' ? EIn Close/Open dauert ja ansonsten nicht die Welt.malabarista hat geschrieben:Closefile ist problematisch, weil danach wieder ein open erfolgen müsste, was in diesem Fall mit zeitlich längeren Operationen verbunden ist (Indizes aufbauen).
Wegen dieses Zeitverzuges scheidet ein wiederholtes open aus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz
Re: flush : nur für textdateien ?
ja, so etwas ähnliches.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: flush : nur für textdateien ?
In diesem Fall sind die Funktionen unter http://bugs.freepascal.org/view.php?id=15824 die richtigen.malabarista hat geschrieben:Mein Problem ist: die Datei wird erst geschlossen am Ende des Programms.
Ich möchte einem Stromausfall (mit Datenverlust) vorbeugen und deshalb immer nach wichtigen Datentransfers alles auf die Platte schreiben.
Closefile ist problematisch, weil danach wieder ein open erfolgen müsste, was in diesem Fall mit zeitlich längeren Operationen verbunden ist (Indizes aufbauen).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz