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 :

Optimisation : remplacement dans un fichier


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 421
    Par défaut Optimisation : remplacement dans un fichier
    Salut,

    je cherche à virer un caractère dans un fichier contenant de nombreuses lignes. (en fait je veux virer les guillemets d'un fichier csv)

    Mise à part ouvrir le fichier ligne par ligne et faire un String.Replace(), quel serait le moyen le plus adéquat (et performant) ?

    Ouvrir le fichier en hexa ? Lire un stream sans s'occuper du format du fichier ? ...


  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Alors moi je dirais que y'a pas de moyen meilleur qu'un autre.

    Dans tous les cas tu aura un accès sequentiel et une modification une à une.

    Après peut-être que lire le fichier ligne par ligne, supprimer les " et recopier dans un nouveau fichier est moins couteux, puisque à chaque fois tu ne dois pas tout décaler dans ton fichier.

  3. #3
    Membre éclairé
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 421
    Par défaut
    J'étais parti sur un stream :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                    StreamReader read = new StreamReader(File.OpenRead(FicApplis));
                    string data = read.ReadToEnd();
                    read.Close();
     
                    data = data.Replace("\"", string.Empty);
     
                    StreamWriter write = new StreamWriter(FicApplis, false);
                    write.Write(data);
                    write.Flush();
                    write.Close();
    mais je risque peut-être de tout exploser si le fichier est trop grop, vu que je le charge en entier dans le string data ? (je peux le découper en quelques morceaux)

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    un string ne peut pas exploser je pense

    sinon la classe system.text.stringbuilder est un genre de string amélioré et beaucoup plus performant (pas pareil à utiliser, append permet de rajouter des caractères, tostring te retourne la valeur as string)
    son replace est ptete mieux ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 421
    Par défaut
    OK, je regarderai ça demain.

  6. #6
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Je pense qu'il faudrait mieux lire ligne par ligne (ou morceau de taille fixe par morceau de taille fixse) si le fichier peut avoir une taille qui dépasse les quelques dizaines de Mo (car là, ton programme va le sentir le string ...), par contre si tes fichiers ne dépassent jamais 5 Mo ce n'est même pas nécéssaire ...

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2009, 17h49
  2. programme qui plante. chercher/remplacer dans des fichiers.
    Par [Hugo] dans le forum Général Python
    Réponses: 2
    Dernier message: 31/10/2006, 17h10
  3. remplacement dans un fichier texte
    Par ciberju dans le forum C
    Réponses: 5
    Dernier message: 25/08/2006, 09h36
  4. Afficher, rechercher et remplacer dans un fichier
    Par lynal dans le forum Langage
    Réponses: 1
    Dernier message: 13/06/2006, 21h24
  5. Remplacement dans un fichier .txt
    Par sebtoto62 dans le forum Langage
    Réponses: 4
    Dernier message: 28/07/2005, 13h15

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