Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Problem mit writeln (Text erstellen) (https://www.delphipraxis.net/169000-problem-mit-writeln-text-erstellen.html)

himitsu 22. Jun 2012 18:16

AW: Problem mit writeln (Text erstellen)
 
Zitat:

Zitat von p80286 (Beitrag 1172078)
Genau das ist ja der Grund für mich da mal auf writeln zurück zu greifen.
Nach meinem Kenntnisstand wird der Buffer bei einem Closefile weggeschrieben,

Nein und genau deswegen.

Bei CloseFile landen die Daten auch nur in der WFC.
Also genauso wie bei den FileStreams, denn FileStream und das Pascal-Zeugs nutzen intern die selbe WinAPI, abgesehn von dem zusätzlichen Caching der Delphi-Referenz durchsuchenTextFile.

Append tut erstmal das Ende der Datei einlesen um das vermeintliche Ende zu suchen.

Die alten Pascal-Funktionen sind also, in Bezug auf den Absturz des Programms eher im Nachteil.
- entwerder potentieller Datenverlust, bei geöffneten Dateien
- oder Overkill durch das ständige Öffnen und Schließen

Beim FileStream kann es offen bleiben und es kommt dennoch nichts weg, wenn das Programm abstürzt.


Wenn der ganze Computer verrekt, kann man durch entsprechende Optionen das Caching des FileStreams beeinflussen und auch da für ein sichereres Speichern sorgen, selbst wenn Windows verrekt.
Alternativ müstest du dir dafür ein eigenes AssingFile programmieren und die internen Open-/Closefunktionen ebenfalls durch eigene Versionen ersetzen und zusätzlich erstmal die Interna ergründen, da hierzu nichts in der OH drinsteht.
Beim FileStream, bzw. Delphi-Referenz durchsuchenTHandleStream+MSDN-Library durchsuchenCreateFile kannst du über die OH und das MSDN alles direkt erfahren.

Boyington 25. Jun 2012 08:47

AW: Problem mit writeln (Text erstellen)
 
Morgen Zusammen,
danke für eure Antworten, das Problem nun schon gelöst :-D
Ich habe Rewrite(F); und CloseFile(F); einfach vergessen. Jetzt läuft das Programm einwandfrei.

Gruss
Lee

p80286 25. Jun 2012 10:41

AW: Problem mit writeln (Text erstellen)
 
[QUOTE=himitsu;1172083]
Zitat:

Zitat von p80286 (Beitrag 1172078)
Append tut erstmal das Ende der Datei einlesen um das vermeintliche Ende zu suchen.

Und das kostet, Faktor ca. 1000.
Bei der Gelegenheit hab ich mir die Auswirkungen von
Delphi-Quellcode:
Settextbuf
auf den Durchsatz angeschaut. sowohl das Schreiben ohne, als auch mit Buffsize=1 bzw Buffsize=8194 hatte keine signifikanten Auswirkungen.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz