Dateizugriffe und ihre Geschwindigkeit



  • Hallo zusammen,
    ich habe ein paar allgemeine Fragen die mich schon seit längeren interessieren. Es handelt sich um die verschiedenen Arten mit denen man auf Dateien zugreifen kann um diese zu lesen und zu schreiben.
    Wie das geht ist mir sehr wohl bewusst, es interessiert mich aber welche Methode die schnellste ist, bzw welche in welcher Situation im Vorteil ist. Dabei frage ich nicht nach dem besten Weg, denn mir ist klar, dass es in der Programmierung nur sehr selten etwas gibt von dem man behaupten kann das es das beste sei.
    Bisher habe ich immer mit fopen, fread usw gearbeitet. Mit fstream, TFileStream und anderen Wegen habe ich mich noch garnicht befasst.
    Mit der Borland Hilfe und Google habe ich versucht meine Fragen selbst zu beantworten. Soweit ich weiß benutzen alle drei von mir genannten Methoden streams, in wie fern sie sich aber voneinander unterscheiden und welche Vorteile man daraus gewinnen kann ist mir leider unbekannt.
    Ich bezweifel das es eine Faustregel gibt das C methoden denen von C++ vorzuziehen sind oder sowas in der Art.
    Es tut mir leid das ich eine so elementare Frage stelle, ich weiß das diese mühselig zu beantworten sind. Deswegen wäre ich auch mit links zu diesem Thema oder Grundsätze zufrieden.
    Muss nicht sein das mir jemand alles vorkaut 😉

    mfg

    Tsurai



  • Ich kann das hier nur aus meiner Sicht schildern.
    Die C++ Streams sind deutlich komfortabler zu verwenden, weswegen ich sie im allgemeinen auch nutze. Die Geschwindigkeit hängt hier von der verwendeten Bibliothek ab. Der BCB2007 verwendet z.Bsp. Dinkumware wo diese Operationen nicht sonderlich schnell sind.
    TFileStream und Konsorten verwende ich nur aus Kompatibilitätsgründen zur VCL wenn es eben nicht anders geht.
    Nur wenn die Geschwindigkeit sehr wichtig ist weiche ich auch schonmal auf die C-Funktionen aus (sehr große Dateien).



  • Danke für deine Antwort. Das hilft mir sehr viel weiter.
    Ich habe bisher immer die C Funktionen benutzt ganz einfach weil mir diese damals auf dem Berufskolleg beigebracht wurden.
    Leider wurde in den 3 Jahren kein Wort über die Effizenz von Funktionen geredet, was mir jetzt schwer zu schaffen macht.
    Bei Dateizugriffen hält es sich noch in Grenzen aber wenn es z.b. darum geht einem TImage so schnell wie möglich ein Bitmap zu übergeben scheitere ich, da ich nur die direkte Zuweisung beigebracht bekommen habe.
    Aber gut, zurück zum Thema.
    In wie fern ist TFileStream der vcl eigentlich komfortabler? Meines Wissens nach lesen beide n Bytes aus einer Datei und weisen diese einem Buffer zu.



  • [quote="Tsurai"
    In wie fern ist TFileStream der vcl eigentlich komfortabler? [/quote]
    Komfortabler als was? Wie schon gesagt nutze ich den nur dann wenn ich den wirklich brauche (Lese/Schreibe-Funktionen von VCL-Klassen z.Bsp.).
    Mit C++Streams meinte ich fstream und co.


Anmelden zum Antworten