zeilenanzahl



  • Hallo zusammen,

    ich habe mir mal eine funktion geschrieben, mit der ich eine datei einlesen kann.

    vector<string> ReadFile(string filepath, int *lines) {
    
    //hier der ganze code
    
    }
    

    das innere von der Funktion ist mir jetzt eigentlich garnicht so wichtig.

    allerdings wollte ich mal wissen ob es möglich ist, aus der funktion schon während des auslesens der datei, die zeilenanzahl gleich weiterzugeben?

    was ich damit meine:

    ich habe mir ja einen zeiger einer variable als ausgabe erstellt.
    definiere ich nun eine variable auserhalb der funktion und setzte sie als parameter, wird ja diese sofort bei jedem zeilendurchlauf einer schleife in meiner funktion um 1 erhöht.

    allerdings wenn ich diesen wert erst danach auslese, bekomme ich ja nur das endergebnis zurück und keine zwischenwerte der zeilenanzahl.

    also dann so:

    vector<string> f;
    int test;
    
    f = ReadFile("pfad zu der datei", &test);
    
    cout << test;
    

    ich möchte das irgendwie für einen statusbalken benutzen, aber eben das objekt des statusbalken nicht in meine funktion mit einbringen.

    ist das irgendwie möglich?

    gruß anno



  • So etwas geht am besten mit WinApi über Nachrichten. Aber lohnt sich das, wenn das Lesen der Datei ratz-fatz fertig ist?



  • Das bringt dir sowieso nur etwas, wenn du mit Threads arbeitest. Einer der sich um die GUI und einer der sich um das Auslesen kümmert.



  • @ Fellhuhn
    Nein, Threads braucht man dafür nicht, nur geeignete Nachrichten!



  • Wenn der Empfänger der Nachrichten denn in einem eigenen Thread läuft. Da hier nicht erwähnt wurde was für eine GUI verwendet wird, ist das schon relevant.



  • berniebutt schrieb:

    So etwas geht am besten mit WinApi über Nachrichten. Aber lohnt sich das, wenn das Lesen der Datei ratz-fatz fertig ist?

    naja so ratz fatz geht das nicht^^.

    das sind über 2 mio zeilen.

    wie funktioniert das mit den nachrichten?

    ich nutze borland builder 2006.



  • 2 Mio Zeilen sind schon eine Menge, nicht mehr ratz-fatz. Mein Vorschlag: das Programm für Windows mit WinApi programmieren. Dort gibt es ohne grosse Mühe die Möglichkeiten, z.B. nach jeder tausendsten Zeile eine Nachricht an eine andere Stelle des eigenen Programmes zu senden. Ohne Windows geht es aber auch mit einer simplen Variable, die von der Lesefunktion fortgeschrieben wird und die Funktion des Statusbalkens aufruft, wann immer die Lesefunktion dies für erforderlich hält.


Anmelden zum Antworten