matlab 或 C++提取文本含特定字符行数据
如题,比如文件名为runlog,无后缀名。内容如下:|Hostname:123||DATA:07/02/14||deletenumber64307attime1numbe...
如题,
比如文件名为runlog,无后缀名。内容如下:
| Hostname : 123 |
| DATA : 07/02/14 |
|
delete number 64307 at time1
number 54307 at time1
delete number 63307 at time2
number 54387 at time3
delete number 128347 at time4
。
。
。
我需要将含有字符‘delete number’所有行中‘delete number’后面的数字提取出来,其他内容舍弃。然后在文本首末行加上特定字符,提取出的数字前加上’create,‘,最后得到的如下:
abc
def
create,64307
create,63307
create,128347
ghj
qwe
将提取出的内容生成新的reslut.dat文件。
最好用matlab ,能加上GUI界面
可发我邮箱:yeyuhan2013@163.com 展开
比如文件名为runlog,无后缀名。内容如下:
| Hostname : 123 |
| DATA : 07/02/14 |
|
delete number 64307 at time1
number 54307 at time1
delete number 63307 at time2
number 54387 at time3
delete number 128347 at time4
。
。
。
我需要将含有字符‘delete number’所有行中‘delete number’后面的数字提取出来,其他内容舍弃。然后在文本首末行加上特定字符,提取出的数字前加上’create,‘,最后得到的如下:
abc
def
create,64307
create,63307
create,128347
ghj
qwe
将提取出的内容生成新的reslut.dat文件。
最好用matlab ,能加上GUI界面
可发我邮箱:yeyuhan2013@163.com 展开
展开全部
参考代码:
[f,p] = uigetfile('*.*','选择输入文件','runlog');
if f==0, return, end
file = [p f];
fi = fopen(file, 'rt');
if fi == -1
error(['无法打开文件 ' file])
end
fo = fopen('reslut.dat', 'wt');
if fo == -1
error(['无法打开文件 reslut.dat'])
end
fprintf(fo,'abc\ndef\n');
ptn = 'delete number';
while ~feof(fi)
s = fgetl(fi);
inx = findstr(s, ptn);
if isempty(inx), continue, end
d = sscanf(s(inx(1)+length(ptn)+1:end),'%d');
fprintf(fo,'create,%i\n',d);
end
fprintf(fo,'ghj\nqwe\n');
fclose(fi);
fclose(fo);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询