24小时热门版块排行榜    

查看: 471  |  回复: 1

carton06

银虫 (小有名气)


[交流] 【求助】asv文件转化

最近要写一个处理csv文件的程序,csv文件例子在附件中,网上下载了一个转化的m文件,使用不成功,textscan报错,格式不匹配。好像是因为有双引号的原因。求助各位大侠能够帮忙解决一下这个问题。目标是能把示例中的asv文件转换成纯数值数据的文件。谢谢!超多金币回报!
示例http://d.namipan.com/d/e8f3bc23b ... 806c6932f0999940000
转化程序http://d.namipan.com/d/bad84d1e3 ... 99ac2d1fe7653070000
回复此楼

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
robert2020(金币+2):鼓励应助! 2010-12-03 08:45:19
carton06(金币+20):非常感谢! 2010-12-07 13:40:50
引用回帖:
Originally posted by carton06 at 2010-12-02 18:26:04:
最近要写一个处理csv文件的程序,csv文件例子在附件中,网上下载了一个转化的m文件,使用不成功,textscan报错,格式不匹配。好像是因为有双引号的原因。求助各位大侠能够帮忙解决一下这个问题。目标是能把示例中 ...

只针对示例有效,即只有第一行是文本,其余为数值,返回的全部数据,可根据需要保存为txt文件或mat文件。
CODE:
function Data = mycsvread( fileName )

% fileName = 'K02-G-4-60.CSV';

% Get Filename
if ~ischar( fileName )
    error( 'mycsvread:InvalidInputType','Filename must be a string.' );
end
% Open the file
[fid message] = fopen( fileName );
if fid < 0
        error( 'mycsvread:FileNotOpened', 'The file ''%s'' could not be opened because: %s', filename, message );
end

% Start reading the data
tline = fgetl(fid); % Get rid of the first line
tline = fgetl( fid );

i = 1;
while ischar( tline )
   tline = tline( tline ~= '"' ); % Get rid of any spaces
   commaLocs = findstr( ',', tline ); % find the commas
   start = 1;
   for colIdx = 1 : length( commaLocs )
        Data{ i, colIdx }=tline( start : commaLocs( colIdx ) - 1 );
        start = commaLocs( colIdx ) + 1;
    end
   tline = fgetl( fid );
   i = i + 1;
end

fclose( fid );

2楼2010-12-03 00:31:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 carton06 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见