文件里以‘\t’分隔的记录怎样分析?

wennier 2006-04-21 09:22:16
文件里记录:0001 01 20060420121212 0A1 001 4
是以TAB健分隔的,有多行,格式一致,现在要分析文件,0001和01等信息取出来,怎么分析呀?
...全文
289 12 点赞 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
simulationz 2006-04-21
简单,看看文件中的值,识别一下,就可以编程实现了
  • 打赏
  • 举报
回复
BaiYangSpirit 2006-04-21
我会。
用fgets(),strstr(),就行了。
or
也可以自己写个]函数而不用strstr()或者strtok()之类的,只需要两个指针就行了,一个指向当前位置,另一个指向下一个字符'\t'(0x09),取出两个指针之间的值,循环之,ok
  • 打赏
  • 举报
回复
wind19 2006-04-21
先读到缓冲区里,然后判断是否是'\t',分割
  • 打赏
  • 举报
回复
nowhere_man 2006-04-21
关注
  • 打赏
  • 举报
回复
关注一下
  • 打赏
  • 举报
回复
wennier 2006-04-21
我试了用strtok(你读入字符串, torkc);
可以分析程序里写的“char *s="Golden\tGlobal\tView";”但是不能分析从文件里读出来的行,不知道是为什么?从文件读出来的“\t”貌似全部转换成了空格,而且不是一个空格(空格的多少和文本编辑器设定有关)。
  • 打赏
  • 举报
回复
jixingzhong 2006-04-21
行读取,
存入缓冲,
然后分割字符串 ....

如果楼主说的格式一致包括数据的位数都一致的话,
用 fread 也可以 ...
  • 打赏
  • 举报
回复
hazuki9902 2006-04-21
\t的ASCII码是9,楼主在循环中判断这个就可以了.哈哈
  • 打赏
  • 举报
回复
jixingzhong 2006-04-21
分割符号确定的情况下,
可以用 strtok :

函数名: strtok
功 能: 查找由在第二个串中指定的分界符分隔开的单词
用 法: char *strtok(char *str1, char *str2);
  • 打赏
  • 举报
回复
goodluckyxl 2006-04-21
strtok来分割以\t的字符串
char torkc[] = "\t";

char* token ;

token = strtok(你读入字符串, torkc);
循环处理只到结束返回NULL
可以分割字符串

  • 打赏
  • 举报
回复
RainWindy 2006-04-21

while(*pbuff)
{
char ch = *pbuff;
if (ch == 0xD)
{
if (*(pbuff+1) == 0xA)
pbuff++;
//新行
...
}
else if (ch == 0xA)
{
// 新行
...
}
else if (ch == '\t')
{
//新段
...
}
else
{
// 加入到当前段
...
}
pbuff++;
}
  • 打赏
  • 举报
回复
wennier 2006-04-21
哎,文件里的TAB被解析出来后是空格哎,而且个数根据文本编辑器的设定不同而不同,可能是2个空格,也有可能是4个甚至是8个。


  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2006-04-21 09:22
社区公告
暂无公告