Hallo zusammen,
ich hätte folgende Frage zur Verwaltung von Dateien:
Es gibt ja verschiedene Möglichkeiten, Text in eine Datei zu schreiben, beispielsweise mit TFileStream oder auch mit AssignFile() / ReWrite().
Wo genau liegen jetzt aber die Unterschiede? Ich weiß, die Klasse TFileStream ist die objektorientierte Variante, während die TextFile-Variante wohl ein Überbleibsel aus Pascal-Tagen ist. Aber gibt es beispielsweise Unterschiede in der Performanz oder der Ausnahmebehandlung? Ist zu erwarten, dass die Befehle AssignFile, ReWwite, CloseFile etc. in Zukunft nicht mehr unterstützt werden (deprecated)?
Viele Grüße
Kay
Text in Dateien schreiben
Re: Text in Dateien schreiben
Ich glaube nicht, dass eins von beiden deprecated wird.
Das Assignfile (Pascal) Zeug arbeitet mit IOResult. Ich finde das immer ein bisschen undurchsichtig, aber ist wohl Geschmackssache.
http://wiki.freepascal.org/File_Handling_In_Pascal" onclick="window.open(this.href);return false;
Das Assignfile (Pascal) Zeug arbeitet mit IOResult. Ich finde das immer ein bisschen undurchsichtig, aber ist wohl Geschmackssache.
http://wiki.freepascal.org/File_Handling_In_Pascal" onclick="window.open(this.href);return false;
-
carli
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Text in Dateien schreiben
Von der Performance musst du dir keine Sorgen machen.
Ein Wrapper-Call sind maximal 20 Maschinencode-Instruktionen mehr, während das eigentliche Lesen und die Datei auf der Platte lokalisieren mehrere Millionen/Milliarden Zyklen dauern kann bzw. so lange auf die Antwort der Festplatte gewartet werden muss.
Um Performance muss man sich wirklich nur an Bottlenecks Sorgen machen. (nur leider ist die Code-Optimierung für den FPC für i386 abgeschaltet und für AMD64 gar nicht implementiert
)
Ein Wrapper-Call sind maximal 20 Maschinencode-Instruktionen mehr, während das eigentliche Lesen und die Datei auf der Platte lokalisieren mehrere Millionen/Milliarden Zyklen dauern kann bzw. so lange auf die Antwort der Festplatte gewartet werden muss.
Um Performance muss man sich wirklich nur an Bottlenecks Sorgen machen. (nur leider ist die Code-Optimierung für den FPC für i386 abgeschaltet und für AMD64 gar nicht implementiert