Richtige Zeigerübergabe



  • Hallo zusammen,
    wie müssen Zeiger für einen ofstream richtig an eine Funktion übergeben werden ?
    Nachdem der Button Start geklickt wird, soll eine Datei Test.dat angelegt und in der Funktion Write_Data() Daten hineingeschrieben werden. Später sollen in weiteren Unter-Funktionen weitere Daten in diese Datei geschrieben werden.

    void __fastcall TForm1::StartClick(TObject *Sender)
    {
      ofstream outfile("Test.txt",ios::binary);
      Write_Data();
      outfile.close();
    }
    void TForm1::Write_Data(void)
    {
      int x=0xab;
      outfile <<"Hallo";
      outfile.write((char*)&x,sizeof(int));
    }
    

    Wenn ich die Zeile:

    ofstream outfile("Test.txt",ios::binary);
      outfile.close();
    

    innerhalb der Funktion Write_Data() habe, dann geht es, aber da ich aus verschiedenen Funktionen heraus Daten in diese Datei schreiben möchte, muss ich die Datei an anderer Stelle öffnen und wieder schliessen.

    Würde mich über Hilfe freuen,

    Gruß, Terry



  • Hallo

    Hier brauchst du keine Zeiger, sondern es reicht eine Referenz als Parameter.

    void __fastcall TForm1::StartClick(TObject *Sender)
    {
      ofstream outfile("Test.txt",ios::binary);
      Write_Data(outfile);
      outfile.close();
    }
    void TForm1::Write_Data(ofstream& outfile)
    {
      int x=0xab;
      outfile <<"Hallo";
      outfile.write((char*)&x,sizeof(int));
    }
    

    bis bald
    akari



  • Hey Super !!!
    🙂
    Vielen Dank für die schnelle Antwort. Das war genau das was ich suchte.

    Jetzt kann's weitergehen.
    Gruß

    Terry


  • Mod

    Hallo

    oder:

    void __fastcall TForm1::StartClick(TObject *Sender)
    {
      Write_Data("test.txt");
    }
    void TForm1::Write_Data(AnsiString FileName)
    {
      int x=0xab;
      fstream outfile(FileName.c_str(),ios::binary);
      outfile <<"Hallo";
      outfile.write((char*)&x,sizeof(int));
      outfile.close();
    }
    

    Wobei besser waere hier noch Fehler abzufangen - zurueckzugeben usw

    Mfg
    Klaus



  • Hallo Klaus,
    danke für deine Antwort aber ich wollte das Hineinschreiben in die bereits geöffnete Datei von verschiedenen Unter-Funktionen aus machen und dazu muss ich der Unter-Funktionen irgendwie mitteilen wohin sie die Daten schreiben soll. Das geht wunderbar nach dem Vorschlag von akari.

    Trotzdem vielen Dank.

    Gruß,
    Terry


Anmelden zum Antworten