Dateiformat (erstellen, speichern, laden)

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ja, das glaube ich sofort. Das ist aber alles eine Frage des Puffers.
Wer mit TFileStream Daten Byte bzw Char-weise einliest braucht sich nicht wundern, wenn's langsam ist.
Dass es nicht prinzipiell am TFileStream liegt, beweisen ja auch die Ergebnisse von TFileStream / TReader.
Aber bei TextFile wirds doch auch char weise gelesen, TFileStream ist schick aber für einfach Aufgaben ist es einfach overkill. Man kann sich sichertlich auch eine TString Klasse schreiben analog zur CString Klasse in C++ aber warum will ich die Nutzern wenn es ein sprachinternes Feature wie string gibt, das zig mal schneller ist da der Compiler es ordentlich optimieren kann.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von theo »

Christian hat geschrieben: Aber bei TextFile wirds doch auch char weise gelesen,

Nö, In deinem Beispiel-Link jedenfalls nicht: http://delphi.pjh2.de/articles/files/files.php" onclick="window.open(this.href);return false;
man sollte jedoch beim Erzeugen einen großen Puffer anlegen.
Christian hat geschrieben: TFileStream ist schick aber für einfach Aufgaben ist es einfach overkill.

Warum?
Christian hat geschrieben: Man kann sich sichertlich auch eine TString Klasse schreiben analog zur CString Klasse in C++ aber warum will ich die Nutzern wenn es ein sprachinternes Feature wie string gibt, das zig mal schneller ist da der Compiler es ordentlich optimieren kann.
Da sehe ich keinen Zusammenhang mit TFileStream.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

TFilestream ist ne Klasse, File of ... ist ein natives mittel des Compilers.

Das mit dem Char weise lesen hab ich jetzt erst gesehn, das stimmt natürlich müsste man mal testen.

Das du da keinen Zusammenhang siehst tut mir leid ich habs jedoch schon dargelegt. Es hält dich ja auch niemand vom benutzen von TFileStream ab.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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

Beitrag von theo »

Christian hat geschrieben:TFilestream ist ne Klasse, File of ... ist ein natives mittel des Compilers.
Schon klar. Trotzdem sehe ich darin kein schlagkräftiges Argument für die Praxis.
Wir machen doch OOP, oder nicht?
Ob ich jetzt irgend ein var f:File of.. oder ein var FS:TFileStream rumschieb, macht doch keinen Unterschied. Und Memory-mässig ist das auch ziemlich gleich.
Christian hat geschrieben: Das mit dem Char weise lesen hab ich jetzt erst gesehn, das stimmt natürlich müsste man mal testen.
Schön, dass du das nun auch so siehst. Es sind immer schnell Gerüchte in die Welt gesetzt aufgrund von "Statistiken" die man nicht ganz durchleuchtet hat.
Christian hat geschrieben: Das du da keinen Zusammenhang siehst tut mir leid ich habs jedoch schon dargelegt. Es hält dich ja auch niemand vom benutzen von TFileStream ab.
Naja, ich finde die Idee einer TString Klasse nicht so erschreckend.
Aber im Gegensatz zu TFileStream, könnte es bei vielen "TString"-Objekten etwas in den Speicher gehen (Implementationsabhängig), während man wohl kaum zehntausende TFileStreams gleichzeitig "in Betrieb" hat.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich finds eigentlich sehr schön das die string implementierung nicht in einer Klasse gelöst ist. Das spart und zig Sicherheitslücken.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten