IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Lecture/Ecriture dans un fichier


Sujet :

C++/CLI

  1. #1
    Membre chevronn� Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par d�faut Lecture/Ecriture dans un fichier
    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.

  2. #2
    Membre chevronn� Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par d�faut
    Pour ceux que �a int�resse, j'ai corrig� le probl�me :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Stream^	o_streamFichier;
    OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
     
    if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
    {
    	if ((streamFichier = openFileDialog1->OpenFile()) != nullptr )
    	{
    		// traitement des données...
    		streamFichier->Close();
    	}

  3. #3
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    En C++/CLI, si ma m�moire est bonne, nous disposons du Pattern "try{...}finally{...}".

    Donc mettez l'appel � "Close" dans la clause finally.

    A moins que le Pattern using du C#2.0 et sup�rieur existe aussi en C++/CLI, au quel cas, cela serait encore mieux que finally.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Lecture ecriture dans un fichier .mat avec C++
    Par WELCOMSMAIL dans le forum MATLAB
    R�ponses: 1
    Dernier message: 10/09/2007, 11h29
  2. [IO] lecture ecriture dans un fichier
    Par grabriel dans le forum Entr�e/Sortie
    R�ponses: 2
    Dernier message: 05/04/2007, 10h09
  3. probleme lecture ecriture dans des fichiers
    Par xman_genius dans le forum C
    R�ponses: 9
    Dernier message: 16/01/2007, 19h50
  4. Lecture ecriture dans un fichier binaire
    Par laetous dans le forum C
    R�ponses: 13
    Dernier message: 26/08/2006, 08h50
  5. ouverture/lecture/ecriture dans un fichier en mode binaire
    Par dirty_boy dans le forum D�buter
    R�ponses: 2
    Dernier message: 15/03/2006, 08h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo