Merging text files according to time
    조회 수: 7 (최근 30일)
  
       이전 댓글 표시
    
Hi,
I am using the following code to merge data from several text files in the directory into a single file
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);
How do i megre text files according to the time it was created. For instance i have 4 files in a directory and in the merged texted file the first data should be from the 1st file created, the second is the second file created and so on....
댓글 수: 0
답변 (1개)
  Astik Sachan
 2019년 8월 8일
        Hi Shreenath,
What you want is to sort the files (variable) on the basis of Time
Here is the code to do that
files   = dir('*.txt')
files   = struct2cell(files)
files   = files'            % to transpose the cell created
[S , I] = sort(files(:,3)); % make sure if '3' is your Time Field 
files   = files(I,:)        % sorted variable files
Enjoy your day!
Thanks 
댓글 수: 3
  Astik Sachan
 2019년 8월 9일
				
      편집: Astik Sachan
 2019년 8월 9일
  
			Try This then 
files   = dir('*.txt')
files   = struct2table(files)
[S , I] = sort(files.datenum);
files   = files(I,:)   
This is based on Datenum that is a timestamp in Numeric Form.
참고 항목
카테고리
				Help Center 및 File Exchange에서 File Operations에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!