none
CFile Klasse RRS feed

  • Frage

  • Hallo Forum

    Wie "modern" ist die CFile Klasse heutzutage. Schickt es sich noch an, sie bei Neuprojekten zu verwenden?

    Ich hatte bislang überhaupt mit der FILE Struktur gearbeitet, aber ich denke das gehört der Vergangenheit an. Was mir allerdings bei CFile fehlt, ist ein Befehl wie "fgets". Gibt's da was Ähnliches?

    Ich hab es mir zunächst kurzerhand durch Ableiten der CFile-Klasse selber dazuprogrammiert, wobei sofort die Frage auftauchte, wie schnell die CFile Klasse bei Lesezugriffen ist. Puffert sie auch die Daten, damit sie schnell zeichenweise lesen kann?

    Grüße

    FireHeart

    Dienstag, 13. August 2013 13:57

Antworten

  • Bevor Du urteilst schau doch einfach in den Source-Code.

    Klar kannst Du C++ Streams verwenden. Ich garantiere Dir aber, dass die modern UND keimend lahm sind ;)

    Schau an was CFile und CStdioFile machen. Dnan schaumal ins OS. Wie öffnet man eine Datei, wie schließt man eine Datei? Wie schreibt man?
    So und nun verrate mir, wie sich das in 20 Jahren geändert haben soll? Wenn schon das OS nichts neues kennt?

    ;)


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    • Als Antwort markiert Fire-Heart Dienstag, 17. September 2013 06:07
    Donnerstag, 15. August 2013 11:31
    Moderator

Alle Antworten

  • Was heißt bitte modern?
    Verstehe ich nicht?

    CFile ist ein simpler Wrapper um Open, Write und Read.
    CStdioFile ist ein Wrapper um die C-FILE Klassen.

    CFile puffert nichts, das macht das OS, dahinter. Aber das macht es dennoch ziemlich effektiv.
    CStdioFile hat einen Puffer, dessen Größe Du auch verändern kannst.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de


    Dienstag, 13. August 2013 17:12
    Moderator
  • Hallo Martin

    Ich habe bis vor Kurzem mit Visual C++ 6.0 gearbeitet und dort eigentlich mit meinen "C" Kenntnissen der 90er Jahre das Auslangen gefunden. Um wieder up-to-date zu sein, bin ich gerade dabei, herauszufinden, welche Dinge und Gewohnheiten ich über Bord werfen muss und welche ich behalten kann. Zu den klassischen Altlasten gehören wohl die time_t Struktur sowie die _finddata_t Struktur. Sie sind alle noch aus der 32Bit Welt und können schon mal zu Problemen führen (z.B. Dateigrößen über 4GB).

    Es hat mich schon mal beruhigt, zu sehen, dass die Dateigrößen der CFile Struktur in ULONGLONG (also 64Bit) gehalten ist.

    Ich habe mittlerweile festgestellt, dass die streaming IO Funktionen (fopen, fclose,...) wohl immer noch existieren und auch um 64-Bit Funktionen ergänzt (fseeki64) wurden, nur frage ich mich eben, welche Dateizugriffsfunktionen man heute nehmen würde, wenn man keine über 20-jährige Programmiergewohnheiten mitschleppen würde.

    Grüße

    FireHeart

    Mittwoch, 14. August 2013 09:01
  • Bevor Du urteilst schau doch einfach in den Source-Code.

    Klar kannst Du C++ Streams verwenden. Ich garantiere Dir aber, dass die modern UND keimend lahm sind ;)

    Schau an was CFile und CStdioFile machen. Dnan schaumal ins OS. Wie öffnet man eine Datei, wie schließt man eine Datei? Wie schreibt man?
    So und nun verrate mir, wie sich das in 20 Jahren geändert haben soll? Wenn schon das OS nichts neues kennt?

    ;)


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    • Als Antwort markiert Fire-Heart Dienstag, 17. September 2013 06:07
    Donnerstag, 15. August 2013 11:31
    Moderator
  • Hallo Martin

    Es beruhigt mich ungemein, dass die Dinge am "low Level" sich nicht verändert haben und dass man heutzutage zwar schnell mal als Freak angesehen wird, wenn man "ganz unten" herumprogrammiert, aber dann und wann kann man damit - wenn's um Performance geht - die "neuen Technologien" ganz schön alt aussehen lassen.

    Grüße

    FireHeart

    Dienstag, 17. September 2013 06:07