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

Windows Forms Discussion :

Lire un fichier texte formatté


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut Lire un fichier texte formatté
    Bonjour à tous,

    Je programme actuellement en c# .net (framework 2) et j'ai un problème pour lire des fichiers ascii.

    Je demande votre aide, mais je tiens à préciser que je veux que mon fichier reste un fichier ascii.

    Le fichier que je manipule est constitué de la façon suivante :
    n1 n2 n3 n4 ... n5 (où les nj sont des float)

    Afin d'écrire dans ce fichier, j'utilise le procédé suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.IO.StreamWriter strEcriture = new System.IO.StreamWriter(FichierDeSauvegarde);
    strEcriture.WriteLine("{0} {1} {2} {3}",n1,n2,n3,n4);
    Voilà cela fonctionne mais je souhaiterais lire ce même fichier de la même manière.
    En c++, on pourrait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf("%d %d %d %d",&n1,&n2,&n3,&n4);
    Là en c# .net pour lire cette ligne de fichier, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    string s = str.ReadLine();
    n1 = Convert.ToSingle(s.Substring(0, s.IndexOf(" ")));
    s = s.Substring(s.IndexOf(" ") + 1);
    n2 = Convert.ToSingle(s.Substring(0, s.IndexOf(" ")));
    s = s.Substring(s.IndexOf(" ") + 1);
    n3 = Convert.ToSingle(s.Substring(0, s.IndexOf(" ")));
    s = s.Substring(s.IndexOf(" ") + 1);
    n4 = Convert.ToSingle(s.Substring(0, s.IndexOf(" ")));
    Comme ça je lis une première valeur en recherchant le premier espace trouvé, ensuit je tronque cette première valeur et je réaffecte s ; puis je lis la deuxième valeur et ainsi de suite ...


    N'y aurait-il pas un moyen plus simple de faire cette opération de lecture un peu lourde alors que je sais qu'en c/c++ il est possible de faire plus simple.

    Merci d'avance à tous

    et @bientôt

  2. #2
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    En sérializant tes objets floats?

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Toi, tu ne connais pas Split ?

    String[] String.Split(char de séparation)

    Donc, apres avoir lu ta ligne dans ta String, tu fais un Split et tu recuperes
    automatiquement toutes les entrées séparées par le caractère (ou les caractères de séparation)

    ET apres, pour convertir tes string en float : Float.Parse(TaString);

    The Monz, Toulouse

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut Rep : pb de fichier formatté
    Merci theMonz31 ça à l'air d'être une bonne idée, je testerais ça ce soir et je te dirais si ça me convient comme choix, je pense que oui...

    En effet, je ne connaissais pas la méthode split

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut lire fichier formaté
    Merci ça m'a beacoup aidé même si en fait j'aurais voulu quelque chose qui marche en une seul ligne mais c'est pas mal je dois dire

    Merci @+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/12/2005, 15h57
  2. [Applet] lire un fichier texte
    Par lebesnec dans le forum Applets
    Réponses: 2
    Dernier message: 07/07/2005, 10h09
  3. Réponses: 1
    Dernier message: 24/11/2004, 16h54
  4. [Fichier] Lire un fichier texte long
    Par _Eric_ dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 18/08/2004, 15h22
  5. Réponses: 2
    Dernier message: 26/05/2004, 17h53

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