Coucou,
Je dois faire un logiciel, sous Windows, qui en fait... Bon, j'explique.
Nous avons des fichiers, sous divers formats, qui doivent suivre une certaine nommenclature.
Ce que fait le logiciel est simple: on importe les fichiers dans le logiciel, et le logiciel doit vérifier si les fichiers sont correctement nommés.
Cependant, du la variation des variables dans le nommage (des codes, du type de contenu, etc), j'ai assez difficile à créer un Parser correct.
La nommenclature est déjà là, je ne peux pas la changer, je dois créer un soft capable de parser ces noms, et de dire ceux qui sont nommés de manière incorrecte.
Le nommage s'effectue selon un schéma déjà défini:
F = Falcultatif, mais peut très bien être là. Sachant que si le premier facultatif est là, ben le reste des facultatifs doit être aussi présent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 FFFFXAX_X_F...F_T...T_A_AX.ext
A = Lettre
X = Chiffre
T...T = Type, longueur indéfinie. Alpha-numérique.
F...F = Totalement facultatif, ce sont des détails.
ext = extension.
J'utilise principalement des std::string pour mes logiciels. Mais là, je vois pas trop comment, sachant que je n'ai encore pas vraiment fait de parsing.
Vala vala, des conseils pour commencer, des erreurs à ne pas faire ?
Car bon, substr, c'est bien, mais moi, je n'ai aucune information sur la longueur de chaque segment :\
Pensez-vous qu'un "explode" serait secure ? (comme la fonction PHP, c'est à dire créer un tableau où chaque entrée est un segment précédé ou suivi d'un token donné, tel que dans notre cas par exemple, ce token serait '_')
Le problème est au niveau de la vérification des données. En effet, vu que certains segments contiennent nombres ET lettres, surtout que je ne peux pas savoir combien de chiffres il y a (à part vérifier la longueure totale du segment, mais bon, vraiment), comment je fais pour différencier une lettre d'un chiffre dans un string ? A part en essayant de convertir chaque caractère vers un short int mais trop fastidieux, je suis sûr que quelque chose de mieux existe).
En vous remerciant d'avance,
Partager