-
Parser: problème de type
Bonjour à tous.
J'ai un petit problème en matlab car je suis débutant.
je doit faire un parser de fichier générique.
Il doit lire un fichier et renvoyer certaines données.
Mon problème et que je ne sais pas comment distinguer les entier des chaine de charactère.
je doit parfois lire des string et parfoit des entier pour faire des additions.
Pour le moment j'utilise "textscan(tline,'%s%s');" ce qui me renvoie tout le temps des string. Comment faire pour obtenir et utiliser des entiers à partir de cette fonction??
Merci d'avance pour votre aide
-
Interroge toi sur la signification de ton '%s' et regarde par quoi tu pourrais le remplacer.
L'aide de textscan devrait pouvoir t'aider.
Si tu connais la structure de ton texte et si celle-ci est constante tout le long, tu devrais t'en sortir rapidement.
Edit: tu peux aller voir cette discussion qui relève du même problème.
-
le problème est que je dois prendre en conte les string aussi.
Je ne sais pas s'il existe un type générique, mais en tout cas je n'en ai pas trouvé...
-
en gros si tes lignes sont de la forme suivante :
'Date heure data1 data2 data3'
et que tu veux récupérer la date et l'heure en format string et tes trois données en format float, la textscan devra être le suivant:
textscan(tline,'%s %s %f %f %f');
-
En fait ce n'est pas tout à fait ça.
je dois lire un fichier de paramétre.
Donc les champs peuvent etre soit des string soit des chiffre, mais je ne sais pas à l'avance ce que ce sera.
-
Si les lignes ont des formats différents, une bonne solution consiste à lire le fichier ligne par ligne avec fgetl.
Après tu peux faire des tests (if/else) sur chaque ligne en utilisant les expressions régulières.
-
Merci pour vos réponses. je crois que je vais suivre vos conseils.