Extraction de données dans un fichier texte
Bonjour à tous,
Merci par avance de l'aide que vous pourrez m'offrir.
J'aimerais extraire des données d'un fichier texte de 150 000 lignes. Je sais c'est une question posée souvent.
J'ai déjà réussi à extraire certaines informations, les informations suivantes se reproduise plusieurs avec des valeurs différentes:
Code:
1 2 3 4
| EVODRV: SAVE INFORMATION RELATED TO TIME 8.6400E-04 E+8 S ( 1.0000E+00 DAY) ON LCM DIRECTORY NAMED 'DEPL-DAT0002'.
-> FINAL BURNUP AT TIME = 1.000000E+00 DAYS
FUEL BURNUP = 3.309378E+01 MW*D/TONNE
NEUTRON EXPOSURE = 2.273049E-02 N/KB |
Dans cette partie je voulais récupérer les valeurs de BURNUP et de TIME, j'ai donc exécuté le script suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| fid=fopen('pincell_uo2_burnup.result','rt');
tline = fgetl(fid);
BURNUP = [0];
TIME = [0];
while ischar(tline)
a = strread(tline,'%s');
if ~isempty(a) && strcmp(a{1},'FUEL') && strcmp(a{2},'BURNUP')
BURNUP = [BURNUP; str2double(a{4})];
end
if ~isempty(a) && strcmp(a{1},'->') && strcmp(a{3},'BURNUP')
TIME = [TIME; str2double(a{7})];
end
tline = fgetl(fid);
end
fclose(fid);
BURNUP
TIME |
J'ai réussi grâce à d'autres posts sur ce même forum. Je vous en remercie d'ailleurs.
---Dorénavant j'aimerais récupérer la valeur du KINF:
Code:
++ TRACKING CALLED= 6 TIMES FINAL KINF=1.362294E+00 FINAL KEFF=1.000000E+00 B2= 6.16706E-03 PRECISION= 1.31E-07
Je ne peux pas procéder de la même manière car il n'y a pas d'espace entre le KINF et sa valeur.
---J'aimerais également récupérer les valeurs des "NUMBER DENSITY", le problème étant que le script énoncé plus haut ne travail que ligne par ligne, or ici il me faudrait, par exemple, uniquement la valeur pour l'U235 (qui se trouve deux lignes après).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| CROSS SECTION OF MERGED/CONDENSED ISOTOPE 'O16 0001':
NUMBER DENSITY = 4.6455E-02
CROSS SECTION OF MERGED/CONDENSED ISOTOPE 'U235 0001':
NUMBER DENSITY = 1.1745E-03
CROSS SECTION OF MERGED/CONDENSED ISOTOPE 'U238 0001':
NUMBER DENSITY = 2.2051E-02 |
Merci beaucoup.