string von datei einlesen u. ersetzen



  • Morgen...

    iss es möglich, dass ich ne datei öffne, über ne schleife nach einem bestimmten string oder char (dumme frage: was issen eigentlich der unterschied?) suche, diesen dann durch einen anderen ersetze und danach die datei unter dem gleichen namen wieder abspeicher?
    Ich habs schon probiert über ifstream unn ofstream, aber beim ofstream überschreibt er mir gleich den ganzen inhalt der datei 😞

    Thanks im voraus...

    EOF



  • Ein char ist ein einzelnes Zeichen, ein C-String ist ein Array von chars, ein std::string ist eine Klasse die intern einen C-String verwaltet, aber wesentlich komfortabler ist.

    Für Befehle wie suchen (std::string::find) und ersetzen (std::string::replace) schaust du auf www.cppreference.com

    Wenn ich dich recht verstehe, dann willst du doch die Datei mit dem neuen Inhalt überschreiben?



  • Hallo

    Ein string ist eine Zeichenkette "abcd12242453!" und ein char nur ein einzelnes Zeichen.

    Am besten ist du speicherst die komplette datei in einem string Array oder Vektor (vector<string> v1) und tauscht dein string aus und schreibst die datei neu.

    ifstrem datei;
         string str1;
         Datei.open("c:\t.txt")
         if(datei)
         {
             while(getline(datei,str1)
             {
                 v1.pushback(str1);
             }
         }
    

    Auf den vektor kannst du mit v1[index] zugreifen. und ersetzen.



  • Ja es iss so, dass in der datei lauter zahlen aber auch wörter drin stehen.
    Also z.B.

    Shaper,Crate,0,1,0 dann kommt ein zahlenblock, dann wieder
    Shaper,Crate,0,1,1 usw.

    Jetzt muss ich das aber ersetzen durch (die zahlen müssen bleiben)

    Card,1,0
    Card,1,1 usw.

    Das hab ich bisher immer mit dem wordpad über suchen & ersetzen gemacht. Die datei muss halt wieder unter dem gleichen namen abgespeichert werden! Es iss halt sehr aufwendig (sind sehr viele dateien...und jede einzeln von hand umschreiben iss auch ätzend)
    Deshalb wollt ich das über ne routine machen, die mir die dateien nacheinander öffnet, die strings absucht, erstezt und wieder abspeichert..

    Danke das mit dem replace hört sich nich schlecht an...guck glei mal nach und mach mich schlau


Anmelden zum Antworten