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# Discussion :

comment faire d'ecrire et lire dans un fichier en meme temps


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Points : 67
    Points
    67
    Par défaut comment faire d'ecrire et lire dans un fichier en meme temps
    Bonjour,

    je veux tout simplement créer deux flux pour une même fichier en meme temps car lorsque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    W=new StreamWriter("c:/monfichier.txt",false,System.Text.Encoding.Default);
    R=new StreamReader("c:/monfichier.txt",System.Text.Encoding.Default) ;
    il me déclenche une exception Le processus ne peut pas accéder au fichier "c:\monfichier.txt", car il est en cours d'utilisation par un autre processus.

    donc est ce qu'il y ' a une méthode optimale pour créer deux flux pour même fichier?

    et merci pour votre aide.

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 90
    Points
    90
    Par défaut
    salut

    j'avais le même problème quand j'ai essayer de sérialiser et de déserialiser un objet, alors je pense qu'on a doit mette tous les oeufs dans le même panier.
    d'abord tu fait ouvrir un flux d'écriture (StreamWriter.Open()), puis tu ferme le flux (streamWriter.close()) après t'as le droit de lire ce que tu viens juste d'écrire , on ouvre un nouveau StremReader.open(), et tu le ferme.

    comme la vitesse est assez rapide, le tout exécute d'uen manière simultanée.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    le seul moyen de mettre tes oeufs dans le meme panier est de gérer les accès aux fichiers directement sans passer par StreamReader et StreamWriter...

    FileStream !
    mais c'est pas pratique mais il va te permettre à priori d'ouvrir un fichier en mode lecture/ecriture et donc faire les deux opérations.

    StreamReader ouvre le flux en mode lecture (je ne sais pas s'il autorise le partage ou pas)
    et StreamWriter ouvre le flux en mode écriture (en mode écriture il ne peut pas y avoir de partage)

  4. #4
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    et si tu faisais un File.Open() en spécifiant bien que une fois tu l'ouvres en lecture et l'autre en écriture??

    http://msdn2.microsoft.com/fr-fr/lib...25(VS.80).aspx

    La première fois tu ouvres en écriture,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileStream Fswrite = new FileStream("file", FileMode.Open, FileAccess.Write, FileShare.Read); //ceci ouvre le fichier en ecriture et autorise l'ouverture en lecture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FileStream Fsread = new FileStream("file", FileMode.Open, FileAccess.Read, FileShare.Read);

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    Salut,

    En même temps = > Traitement asynchrone.

    Il faut creer un thread pour chaque traitement mais faut faire attentention à leur synchro sinon l'un ne va lire des choses que l'otre aura écrit...

    Bon Courage.

Discussions similaires

  1. [Talend] comment faire 1 row = 2 lignes dans un fichier
    Par a_vaio dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 20/02/2008, 00h33
  2. Réponses: 5
    Dernier message: 26/06/2007, 17h24
  3. Ecrire et lire dans un fichier
    Par Hypollite76 dans le forum Delphi
    Réponses: 6
    Dernier message: 27/02/2007, 18h45
  4. [VC++] creer, ecrire et lire dans des fichiers .ini
    Par ksoft dans le forum Visual C++
    Réponses: 11
    Dernier message: 06/09/2006, 11h18
  5. Ecrire et lire dans un fichier texte
    Par podz dans le forum C
    Réponses: 3
    Dernier message: 25/10/2005, 17h57

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