Error in mergint .txt files

조회 수: 1 (최근 30일)
Ivan Mich
Ivan Mich 2020년 11월 29일
댓글: Ameer Hamza 2020년 11월 29일
I am using this code in order to merge vertically .txt files. Command error shows me that:
Error using fscanf
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in test_V2 (line 51)
data = fscanf(fid_t,'%c');%read data
My code is:
fid_p = fopen('FINale.txt','w'); % writing file id
x= dir ('Fin*.txt');
for i =1:length(x)
filename = ['Fin',num2str(i),'.txt'];%filename
fid_t=fopen(filename,'r');%open it and pass id to fscanf (reading file id)
data = fscanf(fid_t,'%c');%read data
fprintf(fid_p,'%c',data);%print data in File_all
fclose(fid_t);% close reading file id
fprintf(fid_p,'\n');%add newline
end
fclose(fid_p); %close writing file id
Could you help me please?

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 11월 29일
You are probably creating the filename incorrectly in the line
filename = ['Fin',num2str(i),'.txt'];%filename
Try the following code
fid_p = fopen('FINale.txt','w'); % writing file id
x = dir('Fin*.txt');
for i =1:length(x)
filename = fullfile(x(i).folder, x(i).name);%filename
data = fileread(filename);%read data
fprintf(fid_p,'%s\n', data);%print data in File_all
end
fclose(fid_p); %close writing file id
  댓글 수: 2
Ivan Mich
Ivan Mich 2020년 11월 29일
Thank you. I have tried your code and it works. But there is a problem. Between each line there is an empty line without data. I would like to "remove" this line. How could I make it?
Ameer Hamza
Ameer Hamza 2020년 11월 29일
Try writing without the newline character at the end. For example, change the fprintf() call to
fprintf(fid_p,'%s', data);%print data in File_all

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by