用matlab读取txt文件,txt文件的内容如下:
2013年01月25日12时03分07秒
00 00 00 00 02 53 30 3B 41 30 3B 43 30 30 3B 4D 30 30 3B 50 30 30 31 30 30 31 30 30 31 3B 52 30 30 31 3B 54 30 30 30 30 3B 3B 31 36 03 0D 44 37 00 01 01 02 30 30 30 43 30 53 33 03 0D 02 30 30 35 43 30 53 33 03 0D 02 30 31 30 43 30 53 33 03 0D 02 30 31 31 43 30 53 33
等等, 第一行是时间中文,后面是ascall码,如3B对应;等,
这里想请教下用读取这个文件后将ascall码原封不动保存在数组data中,该如何读取??
请注意,这里仅有2行,第一行是时间,第二行是ascall码,很长~~
谢谢了!
大哥,能否注释下,我菜鸟一枚~~
我运行了下代码,有错误哦,说是i使用有问题
fid=fopen('a.txt','r');%打开数据文件
i=1;
while ~feof(fid)
templine{i}=fgetl(fid);
a=i;
i=i+1;
end
%读取数据
fidout=fopen('b.txt','w');%创建并打开一个输出文件,名为b.txt
for i=1:a;
fprintf(fidout,'%s\n',templine{i});
end
%输出文件
fclose(fid)
fclose(fidout)
你先把这些数据放到a.txt文件下
大哥,不好意思,我要读取的是第二行的ascall码对应的数据,保存在另一个数组里,然后我要分析这些数据,能否指点一下?
按照你的代码得不到结果哦~~
我写的是把这些全部输出到另一个txt文档
你要是只要第二行的话
templine{i}已经得到第一行和第二行的数据
你在workspace里面能看到,templine{i}已经给你列出来了
你可以把templine{2}赋给一个数组,然后分析吧
最重要的是你要把数据文件放在当前目录下,不然程序永远打不开
fid=fopen('a.txt','r');%打开数据文件
i=1;
while ~feof(fid)
templine{i}=fgetl(fid);
a=i;
i=i+1;
end
A=templine{a}
其中a.txt一定要放在current folder下
给你看一下我运行的结果
>> fid=fopen('a.txt','r');%打开数据文件
i=1;
while ~feof(fid)
templine{i}=fgetl(fid);
a=i;
i=i+1;
end
A=templine{a}
A =
00 00 00 00 02 53 30 3B 41 30 3B 43 30 30 3B 4D 30 30 3B 50 30 30 31 30 30 31 30 30 31 3B 52 30 30 31 3B 54 30 30 30 30 3B 3B 31 36 03 0D 44 37 00 01 01 02 30 30 30 43 30 53 33 03 0D 02 30 30 35 43 30 53 33 03 0D 02 30 31 30 43 30 53 33 03 0D 02 30 31 31 43 30 53 33
汗啊~~~我还没开窍~~无法把templine{2}赋值出来哦,能给实验下,举个例子看看?
这样不行,txt文件的第一行是时间信息,第二行才是ascall码对应的数据,我要读取的是第二行的ascaii码数据,怎么读取?
追答>>dt = textread('00.txt','%s');
n = length(dt);
dd = cell(n-1,1);
for k = 2:length(dt)
dd{k-1} = dt{k};
end
disp('第 6 个数据,16 进制');
d6 = dd{6};disp(d6);
disp('第 6 个数据,10 进制');
p6 = hex2dec(d6);disp(p6);
matlab读取txt文件,文件第一行是中文,之后是ascall码。
finout=fopen('b.txt','w');printf(findout,'%s\\r\\n',templine{i});fclose(fid)fclose(fidin)