Erweiterte Bibliothek



  • hallo leute,

    ich habe bisher bibliotheken geschrieben wo die funktionen in sich geschlossen waren. z.b. datei geöffnet, daten angehängt und datei wieder geschlossen.

    Gibt es eine Möglichkeit eine Bibliothek zu schreiben wo eine Datei öffne und den weiteren Teil offen lasse d.h. egal ob ich jetzt die datei lesen, beschreiben oder beides machen möchte.

    quasi wo ich nicht jede funktion einzeln anspreche sondern diesen teil dynamisch zuordnen kann.

    weiß jetzt nicht ob klar ist was ich meine.



  • normale bibliothek:

    bool datei öffenen(string a) {
    datei öffnen
    check datei exisitiert?
    ja`?

    return 1;
    }

    string lesen( string file) {
    datei öffnen;
    return data;
    }

    erweiterte bibliothek:

    bool datei öffnen;
    bool datei schließen;
    string lesen;

    bool datei öffen {
    check datei existiert?
    return 1;
    }

    strint lesen (string file) {
    if(this->öffnen) {
    return file; }

    }

    ganz grob...
    ich hoffe man versteht einigermaßen was ich meine....



  • ist pseudocode srii deswegen


  • Mod

    fstreams herum reichen oder persistenter fstream, der geteilt wird, je nachdem ob deine Funktionalität eher ausdrücken soll "ich tue etwas mit einer Datei" oder "ich habe eine Datei und damit mache ich etwas".



  • ? mir geht es darum code nicht wieder und wieder auszuführen der meistens fast ganz genau gleich aussieht an bestimmenten teilen.

    z.b. bei einer einer funktion datei lesen und datei schreiben.
    brauche ich ja eigentlich nur den mitleren teil verändern.

    aber setzte dafür immer eine eigene funktion ein



  • srii was ist ein persistenter fstream?



  • und was heißt teilen? mit templates?


  • Mod

    Ahh, ich glaube, ich hatte deine erste Problembeschreibung falsch verstanden. Ich glaube, die Lösung für dein Frage dürfte so ungefähr

    #include <fstream>
    

    sein.



  • chris01349 schrieb:

    ? mir geht es darum code nicht wieder und wieder auszuführen der meistens fast ganz genau gleich aussieht an bestimmenten teilen.

    z.b. bei einer einer funktion datei lesen und datei schreiben.
    brauche ich ja eigentlich nur den mitleren teil verändern.

    aber setzte dafür immer eine eigene funktion ein

    Grob gesagt sollten deine Funktionen Daten zurückliefern, die du den anderen als Daten zum Weiterarbeiten übergeben kannst.

    fstream Datei_öffnen();
    string Lesen(fstream);
    bool Schreiben(fstream, string);
    bool Datei_schließen(fstream);
    


  • Prinzipiell so, nur das man fstream nicht kopieren kann. Also muss man ihn per Referenz übergeben.



  • okai danke...

    wenn ich diese referenz jetzt einer funktion übergebe kann ich diesen fstream z.b. datei ganz normal schließen nur mit der bezeichnung oder wie funktioniert das?
    oder muss ich das dann auch über diese referenz beenden?

    srii referenzen und zeiger sind nicht ganz mein ding


Log in to reply