Re: [討論] 讀取多檔txt倒數某行的值輸出txt(附P幣)

作者: s871526117 (安安)   2018-02-05 22:22:42
※ 引述《wavek (壞貓咪)》之銘言:
: 自信心大受打擊 當完兵變智障
: 現在對程式語言完全不熟QQ
: 有許多問題想請教
: 先描述我想做的東西
: (1)多檔讀取
: 總共有好幾個txt檔
: 檔案可能約4-16個
: 不過檔名有順序
: 譬如com1,com2,com3...
: 補充:
: 有好幾個txt檔
: 不過是分別在不同資料夾
: 但資料夾名稱是有順序
: 跟txt檔名一樣
: (2)
: 每個檔案開頭有固定行數
: 不重要的中英文字
: (3)
: 不重要的中英文字之後
: 每個檔案會有固定三欄 但不固定行數
: 但至少都是千行起跳
: 而我只需要倒數第二行 第三個的資料
: 在此先將此值稱為X
: (4)
: 輸出一個新的txt檔
: 內容是
: 1 X(com1)
: 1 X(com2)
: 1 X(com3)
: .
: .
: .
: https://i.imgur.com/GGj9Ttl.jpg
: 大概是這樣
: 然後我目前的進度..
: 遇到個小問題
: https://i.imgur.com/piR4TrB.jpg
: 我連想要隨便顯示一個值都沒辦法
: 不知道問題在哪裡><
: 已經有爬文了
: 不過弄了滿久都完全沒進展
: 故上來求救!!!
: 還有環境關係不方便(應該說不能)上網查資料
: 慘慘
: 求開示
: 修改1
: 發現是fopen問題
: 後來加上fopen後沒有fid undefined問題
: 但遇上其他問題 無法印出東西
: https://i.imgur.com/UTkHVO3.jpg
: 弄好久沒進展頭好痛QQ
: 希望有大大可以幫忙解決頭痛
: code可以完成任務的
: 願附上1000P聊表心意
clc;clear;
Files = dir(fullfile(pwd,'Com_*.txt'));
FileNames = {Files.name};
f=cellfun(@fopen,FileNames,'UniformOutput',0);
fout=fopen('Data.txt','w');
n=length(f);
cellfun(@frewind,f);
for i=1:n
while not(feof(f{i}))
s=fgetl(f{i});
if feof(f{i})
break
end
s1=s;
end
d=sscanf(s1,'%f');
fprintf(fout,'%d\t%f\r\n',i,d(end));
end
fclose('all');
%Com_*那邊改成你檔案的形式*是檔案編號的部分
%看看這樣能不能成功^^
作者: s871526117 (安安)   2018-02-05 23:07:00
如果說檔案很多的話可能要把fopen、frewind、fclose放進迴圈中
作者: wavek (狗貓貓 m(OvO)m)   2018-02-07 14:59:00
還是謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com