salut
j'ai un fichier .csv qui contient 27000 ligne et je veux suprrimer les ligne 4,5,6
ça fonction avec le code que j'ai mais ça prend presque 2min pour s'exécuté
y'a t'il unmoyenne pour minimiser le temps de l'execution

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
24
25
26
27
28
29
30
31
32
33
34
 
#include <string> 
#include <fstream> 
 
void Erase_Line1(char* z, int Line_to_Erase) 
{ 
std::string Buffer = ""; //Variable contenant le texte à réécrire dans le fichier 
std::ifstream ReadFile( z); 
if (ReadFile) //Si le fichier est trouvé 
{ 
std::string line; 
int Line = 0; 
while ( std::getline( ReadFile, line ) ) //on parcours le fichier et on initialise line à la ligne actuelle 
{ 
Line++; 
if(Line != Line_to_Erase) //Si la ligne atteinte est différente de la ligne à supprimer... 
Buffer += line + "\n"; //On ajoute le contenu de la ligne dans le contenu à réécrire 
} 
} 
ReadFile.close(); //On ferme le fichier en lecture 
 
std::ofstream WriteFile( z); //On ouvre ce même fichier en écriture 
WriteFile << Buffer; //On écris le texte dedans 
WriteFile.close(); //et on ferme le fichier 
} 
 
int main() 
{ 
Erase_Line1("z.txt", 4); 
Erase_Line1("z.txt", 4); 
Erase_Line1("z.txt", 4); 
 
return 0; 
}