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 :

Remplacer un caractère dans un StreamReader


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut Remplacer un caractère dans un StreamReader
    Hello,

    J'ai codé un gros morceau de code qui traite un fichier de données numériques, dont une grande partie est constituée de valeurs décimales.

    Je pensais initialement que le séparateur décimal dans ces fichiers ne pourrait être qu'un point. Or, il s'avère que certaines fichiers utilisent la virgule. Je voudrais donc faire une conversion brutale dès le début : remplacer toutes les virgules par des points.

    Apparemment, il faudrait convertir mon StreamReader en grosse chaîne, et lui appliquer ensuite un Replace(). Problème : tout le code qui suit repose sur un StreamReader (opérations ReadLine()).

    Existe-il un moyen d'appliquer un remplacement de caractère à un StreamReader plutôt qu'à un String ?

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Personellement je trouve qu'il est beaucoup plus prudent et judicieux d'ajouter un traitement adequat apres le readline !

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Pourquoi ? Cela fait des milliers d'appels de fonction, qui seront la plupart du temps inutile.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par oodini Voir le message
    Pourquoi ? Cela fait des milliers d'appels de fonction, qui seront la plupart du temps inutile.
    Le concept de remplacement de caractéres sur un reader n'a pas de sens. Ca a du sens sur un fichier (et au final, ça fera aussi des milliers d'appels inutiles sauf que ils ne seront pas fait par ton code, mais "plus bas") ,mais sur un reader qui par définition et contrairement à un fichier ne dispose pas de données et constitue juste un accès aux données, ça n'en a aucun.

    Est ce que tes données sont homogènes au sein d'un même fichier ? si oui, il suffit de faire la conversion en culture française (donc avec ",") sur les fichiers en question et en culture invariante sur ceux avec ".".

    Dans tous les cas, tu as aussi la solution consistant à faire un indexOf('.') (ou Indexof(",")) pour déterminer la culture à appliquer à la conversion et cela me semble plus efficace que remplacer indicernement.

    Tu as une valeur par ligne je suppose ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Les données sont homogènes, mais il y a une préface avec un nom de fichier qui comporte un point. Il faut donc déterminer si je rencontre au moins deux occurrences.

    Deux IndexOf() devraient donc faire l'affaire pour déterminer dans quelle configuration je me trouve.

Discussions similaires

  1. Comment remplacer plusieurs caractères dans une chaîne?
    Par Antigonos Ier Gonatas dans le forum Général Python
    Réponses: 5
    Dernier message: 16/06/2006, 16h04
  2. [PERL]Remplacer un caractère dans on a le code ASCII
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2005, 15h13
  3. Réponses: 3
    Dernier message: 27/06/2005, 16h24
  4. Réponses: 5
    Dernier message: 25/01/2005, 14h26
  5. [CR] Chercher et remplacer un caractère dans 1 chaine
    Par franck.cvitrans dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 29/09/2004, 16h42

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