char name_a[] = "Svg_ph";
char name_b[] = ".txt";
char name[256];
sprintf(name, "%s%s%d", name_a, name_b, cpt);
This is going to create files named Svg_ph.txt0, Svg_ph.txt1, Svg_ph.txt2, Svg_ph.txt3, Svg_ph.txt4, etc.
Probably not what you want.
You can simplify that code:
char name[256];
sprintf(name, "Svg_ph%d.txt", cpt);
(Or wherever you actually want the numeric portion to be.)
unsigned long taille_cph_MAX = myFile.size();
Where was myFile initialized? Why is the size of that file in bytes relevant?
while(taille_cph <= taille_cph_MAX)
{
}
When is this loop ever going to end? taille_cph never changes, so 0 will always be less than another value, as long as that other value is greater than 0.