- 论坛徽章:
- 0
|
我想编写一个批量文本解析的函数,假设文本都按规定格式定义,且以预约的分割符分隔
struct stru_txt
{
char a[3];
char b[4];
char c[5];
}
main()
{
struct stru_txt stMx;
...
fp=fopen(sTxtname,"r")
fopen(fp)
while(fget(fp,500,sline)!=NULL)
{
sub(sline,stMx);
... ...
}
}
sub(sline,stTxt)
char *sline;
struct stru_txt *stTxt;
{
int i,j,k;
char cDeli; /**分割符 **/
cDeli=',';
j=0;
k=0;
for (i=0;i<=strlen(sline);i++)
{
if (sline != cDeli)
{
switch (k)
{
case 0:
a[j]=sline;
break;
case 1:
b[j]=sline;
break;
case 2:
c[j]=sline;
break;
}
j++;
}
else
{
switch(k)
{
case 0:
a[j]='\0';
break;
case 1:
b[j]='\0';
break;
case 2:
c[j]='\0';
break;
}
j=0;
k++;
}
}
}
但若结构str_txt变化时(比如增加个成员)就要修改sub函数,想写个通用些的sub函数,但不知道有无函数可获得stru_txt的成员名称(如struname(stru_txt,1)可返回'a'再进行赋值),请高手指教
[ 本帖最后由 qiuf 于 2005-11-30 11:43 编辑 ] |
|