テキストコンテンツから有効な情報を抽出
6250 ワード
a.txt
$ABC,eqwe,0123,N,we23,E,234
$ABD,fkjd,2454,N,fwer,E,456
$AB,fhew,9478,N,wewf,E,rnju
$ABC,wefn,9834,N,riwqj,E,42
要件:
抽出された有効な情報は
eqwe,0123,we23
wefn,9834,riwqj
コード実装:
#include
#include
#include
#include
#include
int
i=0;
//
int
main(){
int
fd=open(
"a.txt"
,O_RDONLY,0644);
char
c;
//
ssize_t bytes;
char
xinxi[256];
//
if
(fd==-1)
{
perror
(
"open"
);
return
-1;
}
//
while
(bytes=(read(fd,&c,
sizeof
(c)))>0)
{
if
(c==
'$'
)
{
//
read(fd,&c,
sizeof
(c));
if
(c==
'A'
)
{
read(fd,&c,
sizeof
(c));
if
(c==
'B'
)
{
read(fd,&c,
sizeof
(c));
if
(c==
'C'
)
{
read(fd,&c,
sizeof
(c));
//
read(fd,&c,
sizeof
(c));
//
if
(c!=
','
){
while
(c!=
'N'
)
//
{
{xinxi[i]=c;
//
++i;
read(fd,&c,
sizeof
(c));}
}
read(fd,&c,
sizeof
(c));
//
if
(c!=
','
)
continue
;}
}
else
{
while
(c!=
'
'
)
read(fd,&c,
sizeof
(c));
continue
;
// while ,
}
}
}
}
else
if
(c!=
'E'
&&c!=
','
)
{
xinxi[i]=c;
++i;
}
else
{
while
(c!=
'
'
)
read(fd,&c,
sizeof
(c));
continue
;}
}
//
if
(bytes==-1)
{
perror
(
"read"
);
return
-1;
}
int
m;
for
(m=0;xinxi[m];++m)
printf
(
"%c"
,xinxi[m]);
printf
(
"
"
);
return
0;
}