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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
clear nomrep liste calcul % effacement des données
pattern = '^P[A-Za-z]\d{6}$'; % format du nom des répertoires : 'PX123456'
liste = dir; % extrait la liste des fichiers et répertoires
matches = ~cellfun(@isempty ,regexp({liste.name}, pattern, 'match')); % sélectionne les répertoires de la forme 'PX123456'
nomrep = {liste( matches ).name};% contient le nom des répertoires du bon format
nbrepiece = numel(nomrep) ; % compte le nombre de pièces à traiter
% ouverture et modification du fichier AI.xlt
for i = 1:nbrepiece
nomfichier{i} = fullfile(pwd, nomrep{i}, nomrep{i}, 'AI.xlt'); % création du chemin complet du fichier
fid = fopen(nomfichier{i}, 'rt'); % ouverture du fichier
car = fread(fid);
data = strrep(char(car'), ',', '.'); % remplacement des ',' par des '.'
regexp(data, '\t', 'split'); % remplacement des tab pour séparer les colonnes
fichier{i}=[nomrep{i} '.csv']; % création des noms de fichiers .csv importable dans matlab
fid=fopen(fichier {i},'w'); % ouverture des fichiers .csv
fprintf(fid,data);% écriture des fichiers .csv
fclose(fid); % fermeture des fichiers
end
%préparation du fichier excel pour enregistrement des résultats
Excel = actxserver('Excel.Application');
Excel.Visible = true;
Workbook = Excel.Workbooks.Add;
nomfichierxls =[nomrep{1},'_',nomrep{nbrepiece},'.xls'];
nomcheminxls=fullfile(pwd,nomfichierxls);
Workbook.SaveAs(nomcheminxls);
sheet=Excel.Worksheets.Item(3);
xlWorksheet=-4167;
Excel.Sheets.Add([],sheet,1,xlWorksheet);
Excel.WorkSheets.Item(4).Name='donnees',
sheet=Excel.Worksheets.Item(4);
Excel.Sheets.Add([],sheet,1,xlWorksheet);
Excel.WorkSheets.Item(5).Name='donnees_K',
ActiveSheet=Excel.Worksheets.Item(4);
numlignedebfichier = 2; % Numéro de ligne du fichier excl écriture des résultats
Texte={'','','','','','','','','','','',''}; % ligne blanche pour séparer les résultats de chaque pièce
range=ActiveSheet.Range('A1:A1');
range.Value=nbrepiece;
% lancement de la macro courbes
Excel.Application.DisplayAlerts=0;
cheminmacro = fullfile(pwd, 'Macro_courbes_K.xlsm');
Fichier = Excel.Workbooks.Open(cheminmacro);
Excel.Run('Macro_courbes_K.xlsm!Macro2');
Fichier1=Excel.Workbooks.Open(nomcheminxls);
Excel.ActiveWorkbook.Save; |