Hello,

je développe actuellement une appli de config d'un fichier .cfg

Pour lire les données dans le fichier, j'utilise un StreamReader :

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
	String^			o_ligne					= "";
	StreamReader^	o_streamFichier;
	ArrayList^		o_fichierLigneParLigne = gcnew ArrayList();
 
	OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
	if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
	{
		if ((openFileDialog1->OpenFile()) != nullptr )
		{
			o_streamFichier		= gcnew StreamReader(openFileDialog1->FileName);
			// traitement des données...
 
		o_streamFichier->DiscardBufferedData();
		o_streamFichier->Close();
		delete o_streamFichier;
		}
	}
ensuite, l'utilisateur peut faire des modifs via l'interface proposé et sauvegarde le tout dans le même fichier .cfg
J'utilise un StreamWriter pour écrire les données dans le fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
		String^			o_ligne = "";
		StreamWriter^	o_streamFichier;
		SaveFileDialog^ saveFileDialog1 = gcnew SaveFileDialog;
		if ( saveFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
		{
			o_streamFichier = gcnew StreamWriter(saveFileDialog1->FileName, false);
		// traitement des données
		o_streamFichier->Close();
		delete o_streamFichier;
		}
Malheureusement, cela ne fonctionne pas.
J'ai l'exception
The process cannot access the file 'D:\PROJET\config.cfg' because it is being used by another process.
au niveau de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
o_streamFichier = gcnew StreamWriter(saveFileDialog1->FileName, false);
J'ai essayé de mettre o_streamFichier->Dispose, mais j'ai une erreur de compilation m'indiquant que Dispose ne fait pas parti de la classe "StreamReader".

Quelqu'un aurait une idée pour résoudre ce problème ?
Merci.