[c#] Exercice sur les traitements de string

Résolu
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. 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.
    1. 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

      1. 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
    2. 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 ?
      1. je me suis basé la dessus pour la faire.
    3. Et bien en mélangeant Split et REGEX, ça fonctionne nickel ;)

      Mille merci !