字符流处理!急!!

touchup 2003-08-28 02:30:12
金银锡 11019520713 222426 00工 00000000002224030032410031057 000000 2224260022240319520713621X1988120120060201690粮农 000大安村 00000000000 000000000000 00000000 00 003088212安昌顺 21019540214 222403 00工 00000000002224030032410031057 000000 222403002224031954021462611988120120050201580粮农 000大安村 00000000000 000000000000 00000000 00 003088222金吉哲 11019750104 220221 00工 00000000002224030032410031057 000000 222403002224031975010462300000000000060101703学生 //截取数据一部分

上面是存储在文件中的一组数据,以字符流的形式存储,从开头起的2020个字节才是有用信息,每隔 656个字节是一个人的信息,每个人的信息由若干字段组成,比如户号(6字节),姓名(30字节),等等,这些字段共656字节,为一个人的信息。
如何从2020字节开始取数据,把这些人的信息按字段提取出来,并以文本形式存储在另一个文件中。(原数据流文件s.hdb ,目标文件d.txt)
...全文
49 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SuperSuperLéon 2003-08-29
  • 打赏
  • 举报
回复
c库上说: fseek只能用于二进制文件。如果用于文本文件,则第三个参数必须为

SEEK_SET。

该函数原型:
int fseek(FILE *stream,long int offset,int origin);

//移动s.hdb文件指针
fseek(fpsrc,SEEK_SET,2020); //注意这里一定要使用SEEK_SET

这句应当这样写:
fseek(fpsrc,2020,SEEK_SET); //注意这里一定要使用SEEK_SET

我好久不写,都忘了。呵呵。不好意思让大家见笑。
Cocoky 2003-08-28
  • 打赏
  • 举报
回复
//移动s.hdb文件指针
fseek(fpsrc,SEEK_SET,2020); //注意这里一定要使用SEEK_SET
为什么要用SEEK_SET
SuperSuperLéon 2003-08-28
  • 打赏
  • 举报
回复
哎,好笨笨呀,这里也敲错了

//定义一个656字节的结构
typedef
struct _Info
SuperSuperLéon 2003-08-28
  • 打赏
  • 举报
回复
胃疼,要去吃东西,敲错了这里:

//将InfoBuff写到d.txt中
fwrite(&InfoBuff,sizeof(INFO),1,fpdest);

好久不coding了,快忘光光了,惭愧!
SuperSuperLéon 2003-08-28
  • 打赏
  • 举报
回复
//定义一个656字节的结构
typedef _Info
struct
{
char Id[6];
char Name[30];
char Other[656 - 30 - 6];

}INFO,*PINFO;

//转存buff
INFO InfoBuff;

//
FILE *fpsrc;
FILE *fpdest;

//打开文件
fpsrc = fopen(s.hdb);
fpdest = fopen(d.txt);

//移动s.hdb文件指针
fseek(fpsrc,SEEK_SET,2020); //注意这里一定要使用SEEK_SET

//循环转移数据
while( feof(fpsrc) != EOF )
{
//从s.hdb文件读信息到InfoBuff
fread(&InfoBuff,sizeof(INFO),1,fpsrc);

//这里可以做各种转换
//...

//将InfoBuff写到d.txt中
fread(&InfoBuff,sizeof(INFO),1,fpdest);
}

fclose(fpsrc);
fclose(fpdest);

ok!

注意,上面没做任何差错处理。

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧