How can Looping (open text files, processing and save as Excel file) for multi times ?

1 回表示 (過去 30 日間)
Hi , Please , i have multi text files , i need looping : open ,processing, saving the results as excel file . repeat this process multi times based on number of text files , i have the code for open , processing , and save, process and save as excel for one file each time! so i should change text file name and excel file name munally each time !.
% How can repeat this process for multi text files ?
fid = fopen('stats1.txt','r');
strData = textscan(fid,'%s','Delimiter','\r\n');
strData = strData{1};
fclose(fid);
% Eliminate empty line(s) and the line(s) which contains '--'
idx1 = cellfun(@isempty,strData);
idx2 = contains(strData,'--');
strData = strData(~idx1 & ~idx2);
% Insert space before '#'
strData = replace(strData,'#',' #');
% Replace 3 or more consecutive spaces to 2 consecutive spaces
strData = regexprep(strData,'\s{3,}',' ');
% Prepare the output cell array
outData = cell(size(strData,1),6);
% Split each line with 2 consecutive spaces
for kk = 1:size(strData,1)
c = strsplit(strData{kk},' ');
outData(kk,[1:numel(c)-1, end]) = c;
end
% Save as Excel file
writecell(outData,'result1.xlsx');

採用された回答

Furat Alobaidy
Furat Alobaidy 2019 年 11 月 28 日
Still i have problem with this insturaction : how can avoid that ?Please
%% Save result file
xlswrite(result,strcat(outDirectory,text_files(i).name));
Error using xlswrite:
File name must be a string scalar or character vector.
Error in:
xlswrite(outData,strcat(outDirectory,text_files(i).name));
  1 件のコメント
Image Analyst
Image Analyst 2019 年 11 月 28 日
Try it this way:
%% Save result file
fullFileName = fullfile(outDirectory, text_files(i).name)
xlswrite(result, outDirectory,text_files(i).name);

サインインしてコメントする。

その他の回答 (4 件)

KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 11 月 28 日
text_files=dir('C:\complete path....\folder_name\*.txt');
outDirectory='C:\complete path....\folder_name\';
for i=1:length(text_files)
text_file=strcat('C:\complete path....\folder_name\',text_files(i).name);
text_data=(textscan(text_file));
%% Do operation say result
%% Save result file
xlswrite(result,strcat(outDirectory,text_files(i).name));
end

Furat Alobaidy
Furat Alobaidy 2019 年 11 月 28 日
編集済み: Furat Alobaidy 2019 年 11 月 28 日
thanks for your help , but its gave me error :
Error using xlswrite (line 170)
File name must be a string scalar or character vector.
Error in test2 (line 26)
xlswrite(outData(i),strcat(outDirectory,text_files(i).name));
outDirectory='C:\Users\...\1-FromStatstoExcel\';
txtpattern = fullfile(outDirectory, '*.txt');
text_files = dir(txtpattern);
for i=1:length(text_files)
fid=strcat('C:\Users\...\1-FromStatstoExcel\',text_files(i).name);
strData=textscan(fid,'%s','Delimiter','\r\n');
strData = strData{1};
% Eliminate empty line(s) and the line(s) which contains '--'
idx1 = cellfun(@isempty,strData);
idx2 = contains(strData,'--');
strData = strData(~idx1 & ~idx2);
% Insert space before '#'
strData = replace(strData,'#',' #');
% Replace 3 or more consecutive spaces to 2 consecutive spaces
strData = regexprep(strData,'\s{3,}',' ');
% Prepare the output cell array
outData = cell(size(strData,1),6);
% Split each line with 2 consecutive spaces
for kk = 1:size(strData,1)
c = strsplit(strData{kk},' ');
outData(kk,[1:numel(c)-1, end]) = c;
end
xlswrite(outData(i),strcat(outDirectory,text_files(i).name));
end

Image Analyst
Image Analyst 2019 年 11 月 28 日
If you still have trouble with your adaptation of the FAQ code, include it in your reply.

Furat Alobaidy
Furat Alobaidy 2019 年 11 月 28 日
Thanks for all about this helping .
its running now .

カテゴリ

Help Center および File ExchangeSpreadsheets についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by