Bonjour à tous,

Débutant...Désolé

J'ai un fichier texte qui peut atteindre près de 1 million de ligne. Ce fichier texte est lisible ligne par ligne (ifstream(getline...). Je cherche à modifier certaines lignes. Par modification j'entends ajout, modification, suppression de lignes ou de sous-chaines ou de caractères dans une ligne. Les lignes, sous-chaines ou caractères peuvent être situés n'importe où.
J'arrive à ouvrir le fichier en lecture, modifier des lignes, mais les modifs ne sont pas sauvegardées (normal pas de ofstream). Comment enregistrer les modifs ?

Mon code fait le travail (ici remplacement de virgule-espace-virgule par virgule) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
{
    string const nomFichier("fichier.txt");
    fstream monFlux(nomFichier.c_str());
    if (monFlux)
    {
        string ligne;
        while (getline(monFlux, ligne))
        {
                regex pattern { ", ," };
                string target { ligne };
                string replacement { "," };
                string result = regex_replace(target, pattern, replacement);
                cout << result << endl;
        }
        monFlux.close();
    }
    else
    {
        cout << "Erreur : Impossible d'ouvrir le fichier !" << endl;
    }
    return 0;
}
Le problème est dans la sortie cout de result

Si quelqu'un pouvait éclairer ma vue basse...

Merci

P.