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 :

[I/O] Ecriture intercalé, sans écraser


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Par défaut [I/O] Ecriture intercalé, sans écraser
    Bonjour,

    Connaitriez-vous un moyen simple d'écrire dans un fichier, à une certaine position, sans écraser les données déja présentes à cet endroit ? A l'instar de ce qui se produit dans un logiciel traitement de texte.
    La seule solution que j'ai trouvé est de décaler tout ce qui se trouve après la position du curseur, d'un nombre de bytes égale à la longueur du texte à intercaler, et de l'y insérer dans cet éspace.

    Seulement, j'ai peur que sur de gros fichiers, nécessitant une telle opération répété à interval de temps très court, cela pose un problème de performances.

    Est-ce la seule solution possible, ou existe-t-il un autre moyen ?

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Il n'y a rien de prévu pour l'insertion des données au milieu d'un fichier. La méthode pour le faire est simple par contre.

    On peut lire le fichier source (fichier à modifier) et recopier les données dans un autre fichier, en insérant au passage les nouvelles données à l'endroit voulu. Une fois l'opération finie on remplace le fichier d'origine avec le nouveau.

    On peut également charger le contenu du fichier en mémoire, modifier ces données et réécrire le fichier. Cela évite de passer par un fichier intermédiaire, mais cela utilise plus la mémoire.

    Pour finir, on peut ouvrir un flux en lecture écriture sur le fichier et en jouant sur la position dans le flux insérer les données en décalant les données existante (ce qui correspond à ce que tu fais actuellement à priori).

    Bien évidemment, plus le fichier de départ est gros, plus l'opération est longue.

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

Discussions similaires

  1. Ajouter une ligne en fin de fichier sans écraser le fichier
    Par Premium dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 05/04/2007, 13h07
  2. [TImage]Dessiner sans écraser ?
    Par Bleys dans le forum Delphi
    Réponses: 7
    Dernier message: 22/03/2007, 14h12
  3. [VBA-E] Ecrire dans une cellule sans écraser son contenu
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/02/2007, 15h43
  4. Réponses: 10
    Dernier message: 01/01/2006, 17h20
  5. Réponses: 6
    Dernier message: 23/12/2005, 18h24

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