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 :

[C# 1.1] Comment ecrire à l'envers dans un fichier ?


Sujet :

C#

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Par défaut [C# 1.1] Comment ecrire à l'envers dans un fichier ?
    Bonjour,

    J'ai un soucis et je trouve pas comment faire dans la MSDN !
    J'ai un fichier de log, et je souhaite que les informations que j'ecris (ligne par ligne grâce à la methode WriteLine() ) soit toujours inseré au début du fichier. Les informations les plus récentes doivent être toujours au début du fichier.

    Comment faire avec les classes de base du Framework ?

    Merci d'avance !

  2. #2
    Membre chevronné
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Par défaut
    j'ai voulu faire la même chose que toi et j'ai même posté un sujet simulaire dans le temps.

    On ne peut écrire dans un fichier à l'envers, c'est à dire que le stream ne peut pas décaler tout le fichier d'une ligne et écrire à la ligne 0
    il faut lire le fichier et l'inverser par programmation chose fastidieuse à faire pour un fichier log (nombre de lignes important).
    Donc, le plus simple est d' écrire à la fin du fichier (mode normal) surtout qu'un fichier log sera destiner à des techniciens ou des connaisseurs et pas à des simple utilisateurs.

  3. #3
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Utilise un FileStream.
    Avec la méthode Seek tu peux revenir à l'offset que tu veux.

    De mémoire, tu risques d'avoir des problèmes de formattage de chaîne (les accents risquent de ne pas passer), falloir jouer un peu avec l'encodage.

  4. #4
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par Mose
    Utilise un FileStream.
    Avec la méthode Seek tu peux revenir à l'offset que tu veux.

    De mémoire, tu risques d'avoir des problèmes de formattage de chaîne (les accents risquent de ne pas passer), falloir jouer un peu avec l'encodage.
    oui Mose mais tu semble ne pas avoir compris que Morsi a bel et bien déjà répondu car l'utilisation du positionnnement du flux n'empêchera pas de devoir réécrire tout le fichier log donc ....

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 104
    Par défaut
    Merci les gars ! .Net, c'est génial mais ya quand même quelques oublis, les trucs les plus bêtes en + ...

  6. #6
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Citation Envoyé par neguib
    oui Mose mais tu semble ne pas avoir compris que Morsi a bel et bien déjà répondu car l'utilisation du positionnnement du flux n'empêchera pas de devoir réécrire tout le fichier log donc ....
    Ahhhhhhhhhhhh... je vois.
    Ouais, c'est sûr que décaler le contenu d'un fichier sur le disque c'est complètement con
    Vaut mieux tout lire (myStreamWriter.ReadToEnd())
    concéténer sa propre chaine au début
    et tout réécrire...

    Citation Envoyé par pi05
    Merci les gars ! .Net, c'est génial mais ya quand même quelques oublis, les trucs les plus bêtes en + ...
    Bah... quelque part, si on y réfléchi bien, c'est vrai que c'est idiot de vouloir décaler le contenu d'un fichier. Ca veut dire que chaque fois que tu le fais, y'a une usine à gaz qui va lire tout ton fichier en commençant par la fin pour le réécrire un peu plus loin sur le disque... Super...

  7. #7
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par Mose
    Vaut mieux tout lire (myStreamWriter.ReadToEnd())
    ...
    je suppose que tu voulais dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myStreamReader.ReadToEnd()

  8. #8
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    lol, non regarde la déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamReader myStreamWriter = new StreamReader(...);
    Bon ok, je sors...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/03/2008, 18h37
  2. comment ecrire une variable dans une formule ?
    Par Djohn dans le forum Excel
    Réponses: 12
    Dernier message: 10/10/2007, 12h55
  3. Réponses: 2
    Dernier message: 22/10/2006, 21h04
  4. comment ecrire en dur dans champ
    Par michka999 dans le forum Requêtes
    Réponses: 11
    Dernier message: 16/08/2006, 17h41
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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