Bonjour à tous!
J'ai encore des difficultés avec un programme...
Je cherche à faire un programme qui me modifie plus de 2000 fichiers textes (qui ont la même structure)
Les fichiers se présentent sous la forme : 2000041200-2000041300.txt (=du 12/04/2000 à 00/00 au 13/04/2000 à 00/00).
et :
etc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 latitude, longitude, swath_count, wind_speed, zonal_wind_speed, meridional_wind_speed, wind_stress, quality_flag 45.25, -3.25, 2, 722, 651, 260, 75, 0 45.25, -2.75, 2, 683, 601, 246, 66, 0 45.25, -2.25, 2, 660, 581, 260, 61, 0 45.25, -1.75, 2, 610, 533, 230, 50, 0 45.25, -1.25, 0, 574, 476, 234, 44, 0 45.25, -0.75, 0, 560, 436, 250, 42, 0 45.25, -0.25, 32767, 32767, 32767, 32767, 32767, 2 45.25, 0.25, 32767, 32767, 32767, 32767, 32767, 2 45.25, 0.75, 32767, 32767, 32767, 32767, 32767, 2 44.75, -3.25, 2, 603, 544, 184, 50, 0 44.75, -2.75, 2, 565, 504, 176, 42, 0
et j'aurais besoin de faire différentes transformations pour integrer ensuite les fichiers txt dans un autre programme :
1)enlever la première ligne
2) retirer les lignes ou les valeurs sont 32767
3) enlever les virgules
- J'ai fait un programme (pas tres beau je sais) qui me permet d'effacer les lignes comportant les 32767 et les virgules mais je n'arrive pas à le reécrire dans un autre fichier txt (je pense que ma fonction fprintf n'est pas bonne).
- J'ai également du mal à faire la boucle appelant tous les fichiers (de 2000 à 2007) du fait du format des fichiers txt de base : 2000041200-2000041300.txt car je ne trouve pas le format équivalent sous matlab (0-0???)
Voici mon code
Merci encore à tous ceux qui pourront m'aider à avancer!
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
31
32
33
34
35 function TexteVent2 d=datenum('01/01/2000',23):datenum('12/31/2007',23) for n=1:numel(d); file=datestr(d(n),0-0); file=[strrep(file,'/','') '.txt']; if exist(file,'file')==2 fid=fopen('file','r'); fgetl(fid); % Saute la première ligne at(1,:)=fgetl(fid) %recupere la ligne suivante att(1,:)=strrep(at(1,:),',','') at(2,:)=fgetl(fid) %recupere la ligne suivante att(2,:)=strrep(at(2,:),',','') at(3,:)=fgetl(fid) att(3,:)=strrep(at(3,:),',','') at(4,:)=fgetl(fid) att(4,:)=strrep(at(4,:),',','') at(5,:)=fgetl(fid) att(5,:)=strrep(at(5,:),',','') at(6,:)=fgetl(fid) att(6,:)=strrep(at(6,:),',','') fgetl(fid); fgetl(fid); fgetl(fid); at(10,:)=fgetl(fid) att(10,:)=strrep(at(10,:),',','') at(11,:)=fgetl(fid) att(11,:)=strrep(at(11,:),',','') fclose(fid) resultat=fopen('vent2.txt','wt'); for i=1:length(att(:,1)) fprintf(resultat,'%6.2f %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f\n',att(i,:)); end
Partager