Dateien lesen und dynamischer Speicher



  • Hallo Forum,
    Folgende Situation.
    Eine Klasse "neueDatei", die Dateien auslist hat als Rückgabe per Referenz
    einen Datenbuffer und Buffersize. Etwa so:

    neueDatei Datei;
    Datei.Dateilesen(Dateinname, Datenbuffer, Buffersize);
    

    In meinem Programm werden mehrfach Dateien gelesen.
    Also brauche ich dynamischen Speicher, den ich bisher so erzeugt habe:

    char *Datenuffer;
    unsigned int Buffersize;
    Datei.Dateilesen(Dateinname, Datenbuffer, Buffersize);
    Buffer = new char [Buffersize];
    Datei.Dateilesen(Dateinname, Datenbuffer, Buffersize);
    

    Das funktioniert auch prima, ist aber nicht sehr elegant.
    Ich muß hier "Dateilesen" immer zwei mal ausführen.
    Beim ersten mal lese ich die Buffersize, dann reserviere
    ich den Speicher und kann jetzt erst den Datenbuffer auslesen.

    Gibt es eine bessere Möglichkeit?

    Danke
    Laserandi



  • Laserandi schrieb:

    Gibt es eine bessere Möglichkeit?

    Womit liest du Dateien ein? Bei den Streams hast du standardmässig einen Puffer dabei, der für dich die Arbeit übernimmt. Aber ansonsten: Wie wärs mit zwei Methoden, von denen eine die Puffergrösse liest und die andere den restlichen Inhalt?

    Und hast du an delete[] gedacht? Wieso heisst die Klasse eigentlich neueDatei und nicht Datei oder etwas Aussagekräftigeres? 😉


Anmelden zum Antworten