| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5170 人关注过本帖, 1 人收藏
标题:TXT文件分割器的问题(高手请进)
只看楼主 加入收藏
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏(1)
 问题点数:0 回复次数:9 
TXT文件分割器的问题(高手请进)

我自己用C语言编了一个

TXT文件分割器的核心部分

但是解决不了缓冲区不够的问题

新生成的TXT文件有时只有预料的一半

那么

怎样判断缓冲区将要溢出了呢

请高手们指教

谢谢

搜索更多相关主题的帖子: TXT文件 缓冲区 核心 C语言 
2004-06-15 22:29
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
如果可以,程序贴出来看看啊.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-06-15 23:07
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 
#include <stdio.h>
main()
{
FILE *fp1,*fp;
char ch1,ch2;
int i;
char filename[]="L100";
if((fp1=fopen("A","r"))==NULL)
{
printf("Can not open this file!\n");
exit(0);
}
ch1=fgetc(fp1);
i=0;
for(i=0;i<20;i++)
{
if(ch1==EOF)break;
filename[2]=i/10+'0';
filename[3]=i%10+'0';
if((fp=fopen(filename,"w"))==NULL)
  {
  printf("Can not open this file!\n");
  exit(0);
  }
while(ch1!=EOF)
{
ch2=fgetc(fp1);
if(ch1=='\n'&&ch2=='A')
{
ch1=fgetc(fp1);
break;
}
fputc(ch1,fp);
ch1=ch2;
}
fclose(fp);
}
fclose(fp1);
}
2004-06-16 22:07
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

如上即是我编写的文本分割器

是改进过的版本

现在如我所料的运行

不知是否还会有出错的地方

敬请高手们指教

2004-06-16 22:11
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

我的目的就是想按内容分割文本文件

我曾下载了一些文本文件分割器

但是它们都只能按字数、字节数或行数简单的进行分类

不是我想要的

于是我只好自己编写

2004-06-16 22:16
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

我下载了一部《二十五史》

但是每部历史都在一个巨大的文本文件里

每次的打开和修改都要花费很长时间

于是我决定把它们分解

然而手工去做太花费时间了

所以我要自己做一个文本分割器

2004-06-16 22:20
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

我首先拿《清史》开刀

正史的特点就是体例规整

而且里面不会有英文字符

我要在每篇本纪、志、表、或列传的地方分割文件

为了避免在源程序中涉及汉字

我事先在要分割处加上一个大写字母A

到时候程序运行时以它作为分割标志

又因为A前面必有转行

所以分割标志扩展为"\nA"

每次要打开的文件名也是有规律的

比如我用"L120"表示"列传一百二十"

最后反复调试

我终于成功了

虽然功能还较少

而且没有外壳

现在也没有在预料之外的地方被分割的情况出现

但是会不会出现新的错误呢

2004-06-16 22:32
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

我很想把它的流程图画出来给大家分析

但是这样编辑不方便

不知谁有流程图的编辑软件

如果找不到

看来只有自己做了

2004-06-16 22:35
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

你说的缓冲区不够是什么意思????

C关于文件处理有一个默认的缓冲区,是512个字节,不过和你这个好象没有关系!!


差点把你忘了...
2004-06-17 09:01
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

看来也是

不过我不明白原来的程序为什么会在预料之外的地方分割文件

我只好把原来的程序推倒重做

就是上面的程序

是如我所料的运行

原来的程序已被删除

无法分析了

2004-06-17 14:54
快速回复:TXT文件分割器的问题(高手请进)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053879 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved