Merging Multiple text files
显示 更早的评论
I have 1505 text files, each 96x6. I want to be able to merge them such that file 2 is below file 1, file 3 is below file 2 etc all in the same text file.
I was previously given this code
files=dir('*.txt');
fileout='merged.txt';
fout=fopen(fileout,'w');
for cntfiles=1:length(files)
fin=fopen(files(cntfiles).name);
while ~feof(fin)
fprintf(fout,'%s %d\n',fgetl(fin),cntfiles);
end
fclose(fin);
end
fclose(fout);
At first it seemed to work but I found it jumbles the data a bit and I cannot use it.
Are there any alternatives?
采纳的回答
更多回答(2 个)
Joseph Cheng
2015-5-27
Since you're just doing a complete copy and paste of the text files just read it in as binary and write it all. I had to put a \n after writing all the data for each file as i didn't have one at the last line of my file. Such that it would merge the last line of previous file with the first line of the current file.
files=dir('txt*.txt'); %additional filter so i didn't read in my merged file
fileout='merged.txt';
fout=fopen(fileout,'w');
for cntfiles=1:length(files)
fin=fopen(files(cntfiles).name);
temp = fread(fin,'uint8');
fwrite(fout,temp,'uint8');
fprintf(fout,'\n');
fclose(fin);
end
fclose(fout);
4 个评论
Robert
2015-5-27
Joseph Cheng
2015-5-27
Ahh i misunderstood what you were saying about jumbling of data.
Astik Sachan
2019-8-8
Follow below answer for the sorting of the files based on Name or Time or any other File Information
Shreenath Krishnamurthy
2019-8-5
0 个投票
I have a follow up question on this thread. I am using the code given above by Robert to merge multiple text files in a directory. I want to have one single file that writes the 1st created file as first 2nd created file as 2nd data and so on ?
类别
在 帮助中心 和 File Exchange 中查找有关 Data Import and Export 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!