Stream leeren



  • Hallo,

    ich lese in einen ifstream eine Textdatei zeile für zeile ein. Wenn die Textdatei dabei sehr viele Zeilen hat kann man unter windows verfolgen das die Auslagerungsdatei und der RAM immer voller werden, also zugemüllt.

    Die Zeilen aus dem Stream werden im Programm dargestellt, und brauchen im Stream nach der verarbeitung eigentlich nicht mehr zur Verfügung stehen.

    Ich dachte vielleicht das man den Stream vielleicht irgendwie "leeren" lassen kann und damit der RAM auch nicht so überlastet wird? geht ja alles auf die performance..

    danke euch!



  • ach ja, ich poste hier und nicht in "C++" weil ich als IDE den BCB6 verwende.



  • Wenn es eine TxT ist, warum benutzt dann nicht

    TStringList->LoadFromFile
    

    oder

    Memo->Lines->LoadFromFile
    

    << Wenn du es eh darstellst

    mfg



  • geht das vielleicht mit Stream.flush() ?



  • Also das einfache einladen in eine TStringList erfüllt nicht den Zweck. Schließlich werden die Texte ja im Stream bearbeitet.

    flush() hab ich jetzt mal testweise ausgeführt, soll da was passieren / die Auslagerungsdatei wächst trotzdem kontinuierlich...

    😞



  • hast du den Stream nach der Verwendung geschlossen (close())?

    alternativ bietet sich vielleicht TFileStream an

    eine Bemerkung am Rande: auch die Texte in der TStringList kann man bearbeiten



  • string aktuelleZeile;
    //ifstream Stream(dateiName);        // Datei öffnen
    fstream Stream(dateiName);           // fstream um flush zu testen, ifstrem kennt das ja net
    
    while( getline(iStream, aktuelleZeile) )
    {
      //bearbeitungen, die funzen alle soweit
      //nur wird halt die Auslagerungsdatei stetig größer und größer...
      //deswegen hier den Stream leeren
      iStream.flush();
    }
    iStream.close();
    

    Aber die Auslagerungsdatei wächst unbeinflusst weiter.
    Wer kann helfen?



  • keine ne idee?

    *push*



  • Bist du dir sicher, dass es an dem Stream liegt? Hast du mal den ganzen restlichen Code auskommentiert und geschaut was dann passiert?



  • Hallo

    Da es doch um ein C++ Problem ohne spezielle Builder-Eigenheiten geht verschieb ich dich mal. Vielleicht gibt es dort noch andere Idden.

    bis bald
    akari



  • Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • du machst da was falsch wenn du einen text im speicher hältst


Log in to reply