Text in Dateien schreiben

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Kay
Beiträge: 134
Registriert: So 14. Nov 2010, 15:17

Text in Dateien schreiben

Beitrag von Kay »

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

Benutzeravatar
theo
Beiträge: 11103
Registriert: Mo 11. Sep 2006, 19:01

Re: Text in Dateien schreiben

Beitrag von theo »

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;

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

Beitrag von carli »

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 :o)

Antworten