热烈庆祝本人受关注人数即将突破14000大关!散分!!+超大文件排序源代码

赵4老师 2017-12-05 02:17:49

L2B.c:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
int MAXLEN=1000;
char *ln,*ln1;
FILE *fi,*fo;
int i;
int b,n,L,maxL;
char fullpathi[_MAX_PATH];
char fullpatho[_MAX_PATH];
int main(int argc,char **argv) {
if (argc<3) {
printf("Usage:L2B Line_filename.ext Block_filename.ext\nConvert Line file to Block file.\n Line file: Length difference per line.\n Block file: Fixed length of all line with space appended.");
return 1;
}
if (NULL==_fullpath(fullpatho,argv[2],_MAX_PATH)) {
printf("Can not get fullpath of %s!\n",argv[2]);
return 2;
}
fo=fopen(fullpatho,"r");
if (NULL!=fo) {
fclose(fo);
printf("File [%s] is exists!\n",argv[2]);
return 3;
}
if (NULL==_fullpath(fullpathi,argv[1],_MAX_PATH)) {
printf("Can not get fullpath of %s!\n",argv[1]);
return 4;
}
fi=fopen(fullpathi,"r");
if (NULL==fi) {
printf("Can not open file [%s]!\n",argv[1]);
return 5;
}
ln=(char *)malloc(MAXLEN);
if (NULL==ln) {
fclose(fi);
printf("Can not malloc(%d)!\n",MAXLEN);
return 6;
}
n=0;
maxL=0;
ln1=NULL;
while (1) {
if (NULL==fgets(ln,MAXLEN,fi)) break;
if (ln1) {
ln=ln1;
MAXLEN*=2;
ln1=NULL;
}
L=strlen(ln);
if ('\n'==ln[L-1]) {
if (maxL<L) maxL=L;
n++;
if (0==n%1000) cprintf("\r%d",n);
} else {
ln1=(char *)realloc(ln,2*MAXLEN);
if (NULL==ln1) {
free(ln);
fclose(fi);
printf("Can not realloc(%p,%d)!\n",ln,2*MAXLEN);
return 7;
}
ln=ln1+MAXLEN-1;
}
}
fo=fopen(fullpatho,"w");
if (NULL==fo) {
free(ln);
fclose(fi);
printf("Create File [%s] error!\n",argv[2]);
return 8;
}
rewind(fi);
for (i=0;i<n;i++) {
if (NULL==fgets(ln,MAXLEN,fi)) break;
L=strlen(ln);
if (maxL>L) memset(ln+L-1,' ',maxL-L);
ln[maxL-1]=0;
fprintf(fo,"%s\n",ln);
if (0==i%1000) cprintf("\r%d/%d",i,n);
}
fclose(fo);
free(ln);
fclose(fi);
cprintf("\r");
printf("%d lines width %d per line total %I64u bytes write to Block file:[%s]\n",n,maxL+1,(unsigned __int64)n*(maxL+1),argv[2]);
return 0;
}

...全文
2092 58 打赏 收藏 转发到动态 举报
写回复
用AI写文章
58 条回复
切换为时间正序
请发表友善的回复…
发表回复
南瓜猴 2018-03-23
  • 打赏
  • 举报
回复
Hi,老师,我现在碰到一个问题,就是如何修改拖曳文件的打开顺序,毫无头绪现在。求老师解答。 现有思路:修改HDROP指向的内存内容,但不知道如何操作。想要用PostMessage模拟WM_DROPFILES消息,但是不知怎么构造参数 帖子地址:https://bbs.csdn.net/topics/392345182 私信功能不行了,只能来这里找您了
  • 打赏
  • 举报
回复
谢谢分享,赵老师
赵4老师 2018-02-08
  • 打赏
  • 举报
回复
引用 55 楼 flagoop 的回复:
千万中取首,如梭,如风,如闪电


flagoop 2018-01-21
  • 打赏
  • 举报
回复
千万中取首,如梭,如风,如闪电
MiyawakiSakura 2018-01-17
  • 打赏
  • 举报
回复
试试
csdn967 2018-01-03
  • 打赏
  • 举报
回复
【让窗体永远在前面】 有时候你希望某个窗体永远在前面,使用【csdn967】程序能够帮你做到! 求你们也去关注一下me===CSDN967
zhh_crazy 2017-12-29
  • 打赏
  • 举报
回复
好厉害,膜拜尼古拉斯·赵老师
球磨川禊 2017-12-24
  • 打赏
  • 举报
回复
额额额顶一个
及勒 2017-12-19
  • 打赏
  • 举报
回复
恭喜恭喜,我也关注下大佬
qq_27861769 2017-12-19
  • 打赏
  • 举报
回复
LXL110306 2017-12-12
  • 打赏
  • 举报
回复
引用 40 楼 zhao4zhong1 的回复:
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
赵老师说的对啊
赵4老师 2017-12-11
  • 打赏
  • 举报
回复
WindowsXP,如果磁盘上有1TB的数据需要排序,但只有1GB的内存,你怎么做?
归途醉染 2017-12-11
  • 打赏
  • 举报
回复
赵老师,我来看望您老人家
Allensb 2017-12-08
  • 打赏
  • 举报
回复
cs14789652 2017-12-07
  • 打赏
  • 举报
回复
引用 40 楼 zhao4zhong1 的回复:
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
路过学习,事实上也是“做到才能得到”
Itachi_zheng 2017-12-06
  • 打赏
  • 举报
回复
厉害了。一直被模仿,
jena_wy 2017-12-06
  • 打赏
  • 举报
回复
heronism 2017-12-06
  • 打赏
  • 举报
回复
还没仔细研究,不过赵老师出版,必属佳品!
runningfatty 2017-12-06
  • 打赏
  • 举报
回复
加载更多回复(36)
提供国人写的强大的html5植物大战僵尸(源码) 写得很棒~占用资源少。 JSPVZ 程序制作进度(2011.1.5) 本程序提供源码由HTML5中文网整理打包下载,该下载包可以使用服务器环境运行,也可以在电脑上双击Index.htm直接运行 另外智能手机可以安装OperaMobile10.1及其以上版本,把代码整个拷贝到手机存储卡上,在浏览器中输入形如“E:/jspvz”形式的地址直接本地运行程序,无需联网 转载使用请勿修改LonelyStar署名,pvz.lonelystar.org网址和PopCap公司版权声明 保留对该JS版植物大战僵尸版权所有 2011.1.5 添加了第二大关的第三小关 修正一大波和最后一波字样无法消失的BUG 2010.12.31 添加了“解谜模式” 调整了程序中关卡对于胜利和失败的算法 几个植物和僵尸做了调整 修改了几个BUG 2010.12.27 对初始界面稍作修改 2010.12.9 添加了“靠天吃饭”小游戏 给领带僵尸添加两种形象 修正辣椒爆炸图片的问题 咖啡豆0耗的数据修正 2010.12.8 提高了一下僵尸行走的纵坐标 修正了土豆雷和樱桃炸弹爆炸图片在IE下的问题 调整了一大波僵尸和最后一波僵尸出现的图片效果 2010.12.7 添加了第二大关的两小关 添加了“乱葬岗”小游戏 修改了几个BUG 调整了进度显示 2010.12.1 添加了“贫瘠之地”小游戏 调整游戏初始化界面和选择模式界面 修正第十关IE下运行报错的BUG 修正IE下单机运行有部分图片看不到的问题 修正蘑菇植物无睡眠动画而实际却在睡眠的BUG 修正曾哥蘑菇种植在醒着的大喷菇上仍然睡着的BUG 修正僵尸出场界面显示僵尸种类的BUG 修正地刺和地刺王伤害过高的BUG 加大“僵尸快跑!”的难度

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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