Error in mergint .txt files

2 次查看(过去 30 天)
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