[c#] Exercice sur les traitements de string

Résolu
Creutzou Messages postés 655 Statut Membre -  
Creutzou Messages postés 655 Statut Membre -
Bonjour,

on m'a donné un petit exo à faire en c#.

Je part d'un fichier texte, et je dois en sortir un fichier Excel.
Le fichier excel devra contenir 3 colonnes ( Numéro index, désignation, prix)

Le fichier texte est construit de maniere suivante :
Numéro - Désignation prix €

Le problème est que je ne sais pas trop par quel coté commencer...

je pense lire le fichier ligne par ligne et lorsque je rencontre le "-" séparer la chaine en deux.
Mais concernant la séparation de la désignation et du prix, seul le symbole monétaire(€) est présent à chaque fois, mais à la fin de la ligne.

Auriez vous une idée car je commence à sécher un peu :/
Si vous avez besoin de plus de précision , n'hésiter pas.

En vous remerciant d'avance.

ps: je ne demande pas une résolution toute faites, loin de là ! je voudrais comprendre ce que je fais.

4 réponses

  1. Creutzou Messages postés 655 Statut Membre 30
     
    Je me casse vraiment les dents, je dois avoir un problème de méthodologie.

    J'ai oublié de préciser qu'il n'y a aucune taille fixe.
    0
  2. scriptiz Messages postés 1494 Statut Membre 425
     
    Il y a plusieurs façon de traiter du texte, la plus simple si tu es sur de ton coup, serait de faire des Split('-').

    Split(char) permet de diviser une chaîne à chaque fois que le caractère char apparaît. Ça renvoie donc un tableau des sous-chaînes.

    Une façon plus complexe mais bien plus puissante est l'utilisation d'expression régulières pour découper ta chaîne.

    Google tout ça si tu veux en apprendre plus :

    C# Regex
    C# Split string

    0
    1. Creutzou Messages postés 655 Statut Membre 30
       
      J'avais déjà trouvé la fonction Split. J'essayais de me dépatouiller avec ça.
      En revanche, jamais entendu parler des expressions régulières. Je m'y penche !

      Merci
      0
  3. Creutzou Messages postés 655 Statut Membre 30
     
    Les expressions régulieres sont un peu ...complexe je trouve.
    Pourrais tu me dire si je procède bien ?
    voici un exemple de mon fichier (il y a bien les retours à la ligne dedans )
    1 - « Arquebusier du XVI è siècle. »
    Gravure du XVIII è siècle. Planche provenant de
    l'ouvrage de Jacques de Gheyn, « Maniement d'armes,
    d'arquebuses, mousquets et piques ». 25 x 17,5 cm.
    Sous verre. Cadre en bois.
    100 / 150 €


    J'ai donc procéder au découpage comme ceci :
    * un caractère numérique [0-9]
    * un tiret - *-
    * une désignation [a-zA-Z0-9_+-+,+.]
    * des chiffres ( eventuellement un "/") avec d'autre chifres [0-9]*/[0-9]
    * un € *€


    Ce qui nous donnerais
    ^[0-9]? /s*-?/s[a-zA-Z0-9_+-+,+.]?/r?/n[a-zA-Z0-9_+-+,+.]?/s[0-9]*/[0-9]*€$


    Seulement je ne suis pas bien sure de moi.
    Qu'en penses tu ?
    0
    1. Creutzou Messages postés 655 Statut Membre 30
       
      je me suis basé la dessus pour la faire.
      0
  4. Creutzou Messages postés 655 Statut Membre 30
     
    Et bien en mélangeant Split et REGEX, ça fonctionne nickel ;)

    Mille merci !
    0