Bonjour à tous.
Mon problème est le suivant :
J'aimerais écrire une CString à une ligne donnée : pour cela, je fais ceci :
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
 
bool CCalibFile::WriteString(CString string, int line)
{
	CStdioFile f_calib;
	char nom[20];
	int i;
	CString str;
 
	f_calib.Open("calib.txt",CFile::modeWrite |CFile::modeRead | CFile::shareDenyWrite |CFile::typeText);// | CFile::modeNoTruncate);
	f_calib.SeekToBegin();
	for (i=1;i<line;i++) {
		f_calib.ReadString(str);
	}
	f_calib.WriteString(string);
	f_calib.Close();
	return true;
}
Le principe est simple : je saute de ligne le nombre qu'il faut, puis j'écris à ce niveau.

Ce que je ne comprend pas, c'est pourquoi le programme plante sur le ReadString au deuxième passage de la boucle...
Est-ce parceque on n'a pas le droit de réécrire sur la CString str ?

Même planté, je "force", et je vois qu'il a écrit au debut de la première ligne.
Mais Keskessaveudirequessa?

Merci pour vos réponses éclairantes comme toujours