Bonjour,
Je traite actuellement des fichiers de données sous un format txt (exemple:920107.ech). Mon programme est constitué de sorte que j'ouvre une liste contenant le nom de mes fichiers à la suite ce qui me permet ensuite de les ouvrir un par un dans une boucle for et donc je peux les traiter. Cependant j'aimerai connaitre l'année de chacun de mes fichiers qui se trouve sur les 2 premiers caractères du nom du fichier (ex: pour le fichier 920107.ech l'année est 92 donc 1992). J'ai donc utilisé fscanf pour lire dans ma liste les 2 caractères qui m’intéresse. Pour i=1, c'est nickel ! par contre dés que i passe à 2,3, ...87 la lecture de la liste ne se fait plus. Comme si le fait d'avoir lu sur la liste la 1ère ligne l'année empêche de lire la suite. Je vous joint mon code si vous pouvez m'éclairer. Merci.
Code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 %Ouverture fichiers ".ech" liste1='liste1.m'; filepath=['C:\Users\tahina\Documents\MATLAB\SONDAGES RUN\Avant 98\']; filelist=[filepath liste1]; fid=fopen(filelist); % Lecture des fichiers un par un for i=1:87 filename1=fgetl(fid); file1=[filepath filename1]; fid1=fopen(file1,'r'); %Lecture des donnees du fichier i donnee1=fscanf(fid1,'%f',[5 inf]); donnee1=donnee1'; alt1=donnee1 (:,1); press1=donnee1 (:,2); temp1=donnee1 (:,3); hum1=donnee1 (:,4); ozon1=donnee1 (:,5); %lecture de l'année du fichier i an=fopen(fid,'%c',2); annee=str2num(an); end fclose('all');
Partager