我正在编写一个给定文件夹路径的函数,将从此URL下载所有FTP文件(在Chrome中打开),并且还将返回包含这些文件信息的结构或单元格数组。
到目前为止,我对大多数文件没有任何问题,但是那些拥有大量数据行的文件给我带来了麻烦(例如,'british.txt')。我无法从2000行及以上的文件中读取数据。对于那些较短的文件,我没有问题。
我的函数中使用文本扫描的相关部分是:
list_txt=dir('*.txt'); %After downloading the files, I list them by its extension.
txt_data=cell(numel(list_txt),8); %pre-allocation of cell array that will store all the info I need from the loop.
for kk=1:numel(list_txt)
fid=fopen(list_txt(kk).name,'rt');
txt_single=textscan(fid,'%s %s %s %s %s %f %f %s','Delimiter','|','headerLines', 2);
fclose(fid);
[m2,n2]=size(txt_single{1,1});
for jj=1:n2
txt_single{1,n2}(m2)=[]; %I want to get rid of the last row that says #EOF
end
txt_data(kk,1:8)=txt_single; %I go and store information of every file per row in this cell array
end
现在,我看到了这个post并尝试了一些方法,但我无法从中得到任何结果,也许我做错了。
如果有人可以帮我解决这个问题,我会很高兴的。
编辑:
有些文件没有完整阅读(英国,美国,瑞典和其他几个)。
所以我尝试在命令窗口中执行操作,使用此代码,比方说'british.txt':
blockSize=1000;
fid=fopen('british.txt','rt');
txt_single=textscan(fid,'%s %s %s %s %s %f %f %s',blockSize,'Delimiter','|','headerLines', 2);
fclose(fid);
结果甚至没有达到我想要的水平,即读取大约2000行信息。