
C语言-文件操作
文章平均质量分 71
liuguangsh
这个作者很懒,什么都没留下…
展开
-
内存数据查询
海量数据查询:由于要查询的数据较多,如果在磁盘上进行查询则速度较慢,这时可以把要查询的相关数据读到内存中,然后再进行查询。这儿是使用的把数据按行读入到内存中,然后在内存中进行查询。这儿需要注意的几个问题是开辟内存时的初始化工作,比如初始化 memset(g_bh, "\0", sizeof(char *)*NUM); //初始化时这儿不小心把 '\0' 写成了 "\0",结果造转载 2016-08-16 16:59:23 · 1014 阅读 · 0 评论 -
多线程索引
/*多线程索引*/#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#define LINE 13180806//获取文件有多少行int getLine(char *path){ printf("开始统计文件行数.....\n"); int sum = 0; FILE转载 2016-09-06 16:59:01 · 796 阅读 · 0 评论 -
文件映射内存
文件内存映射,也可以做为进程通信的一种方式,共享一片映射的空间,即可以达到共享数据的要求。/* 文件映射内存虚拟内存:把一个文件当做内存使用。如果系统文件中 pagefile.sys,操作系统把这个文件当做内存来操作这个是技术是把文件映射成内存。使用景场:如果一个文件很大,而所使用的电脑内存又不够,这时就可以使用此技术,把文件当成内存来操作。使用Mapping File提高文件读转载 2016-09-05 15:58:21 · 427 阅读 · 0 评论 -
密码库
生成密码库可以查询密码使用最多的字符串:思路:从文本文件中提取密码字符串,保存在链表中,链表有密码字段和密码出现次数的字段,当有新的密码出现就开辟一个新的空间,如果出现的密码在链表字段中,就把相应的密码次数加 1 。相应代码如下:密码.h#define _CRT_SECURE_NO_WARNINGS#include#include#includetypedef stru转载 2016-08-25 15:10:25 · 6700 阅读 · 1 评论 -
文本文件大数据查询
大数据查询的步骤://读入到内存、排序、写入到文件、创建索引、二分查找下面代码听课时写的有点乱,可以按上面的 步骤来实现。#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#define LINE 10000000//读入到内存、排序、写入到文件、创建索引、二分查找char **g_pp转载 2016-08-25 09:07:00 · 1769 阅读 · 0 评论 -
文件批量修改
文件批量修改,其中使用到了获取目录下所有文件的字符拼接技巧,代码如下://这样可以批量修改文件#define _CRT_SECURE_NO_WARNINGS#include#include#includevoid changAll(char *path){ char list[50] = "D:\\list.txt"; char cmd[100]; remove(lis转载 2016-08-12 17:04:04 · 375 阅读 · 0 评论 -
文件操作-按行加密解密
文本文件按行加密和解密这样可以保证文本文件的安全性,即使用文本文件丢失也不会造成文件内容的泄密。按行加密有一点就是 \n 的转换 与一行的判断。因为是按行加密的,而一行的结束标识是 \n,字符串的结束标识是 \0 而当遇到 \n 时加密后的字符肯定不再是 \n 这样再解密时就没有办法判断这是一行的位置,因为这时没有 \n 的结束标识位了。这时我们手动处理 \n,因为\n 在文本文件中都是以 \转载 2016-08-11 22:06:18 · 1530 阅读 · 0 评论 -
大数据索引
体会代码,有二种方式。第一种是初始化索引,第二种是在第一种建立好索引的基础上使用的移动文件指针的方式,减少读入内存数据的方式移动指针。详见下面代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#define N 84357484//读取大数据有多少行(不知道行数,无法开辟内存空间)//把索引读入转载 2016-08-23 16:24:34 · 1195 阅读 · 0 评论 -
文件分割合并
#define _CRT_SECURE_NO_WARNINGS#include#includeint getFileSize(char *path){ FILE *pfr = fopen(path, "rb"); if (pfr == NULL) { printf("文件打开失败!\n"); return; } else { int sum = 0; int转载 2016-08-11 10:36:28 · 418 阅读 · 1 评论 -
文件加密码
文件的获取大小与文件的密码都需要注意 使用 int ch = fgetc(); 这样可以避免因加密或解密造成的溢出,损坏文件。#define _CRT_SECURE_NO_WARNINGS#include#include#include//加密码最好使用 二进制,否则会出现一些问题。//这儿的 获取字符也应该使用 int ch = fgetc(pfr); 使用 int 类型而不要使原创 2016-08-10 15:02:20 · 313 阅读 · 0 评论 -
获取文件大小及注意事项
#define _CRT_SECURE_NO_WARNINGS#include#include//文本文件 读取 \r\n -->\n 写入 \n -->\r\n 获取文件二进制大小,理论都是 rb//获取大小理论都用 rb int getfilesize(char *path){ int sum = 0; FILE *pfr = fopen(path, "rb");// i转载 2016-08-09 22:41:12 · 737 阅读 · 0 评论 -
文件-加密码
下面是段简单加密码代码:#define _CRT_SECURE_NO_WARNINGS#include#include//非密码加密码void jia(char *path, char *newpath){ FILE *pfr = fopen(path, "rb"); FILE *pfw = fopen(newpath, "wb"); if (pfr == NULL ||转载 2016-08-09 16:27:52 · 333 阅读 · 0 评论 -
文件操作
注意下面代码所产生的问题。这一段是读文件,没有什么问题。#define _CRT_SECURE_NO_WARNINGS#include#includevoid main(){ char *p = "I:\\文件字符读写\\1.txt"; FILE *pr = fopen(p,"r"); if (pr == NULL) { return; } while (!feo转载 2016-08-09 16:19:43 · 240 阅读 · 0 评论 -
多线程多文件查询
多线程多文件查询所使用的场景:当要查询的内容存在多个文件中,如果一个个调用,比较麻烦,所以这时可以使用多线程多文件查询,让一个线程查询一个文件,这样就可以解决一次性查询多个文件的工作。如果要查询的文件较大,可以让线程一次只执行一部分,等当前线程查询结束时,清理此线程所占用的空间,然后再载入其它线程继续查询。本程序 查询了10个文件的,使用了10个线程,而一次加载10个文件到内存中,如果内存空间转载 2016-08-19 15:55:46 · 412 阅读 · 0 评论 -
二进制文件排序及文件二分法查询
二进制文件排序,注意这个使用的场景: 如果文件较大,无法一次性读入到内存中,可以使用这样的排序法对文件进行排序,排序好的文件可以使用 文件二分查询法 对文件进行查询。 注意这儿的 文件二分查询法与普通 的 二分查询法的不同,这儿是操作的文件指针进行移动来查询。详见下面的代码:#define _CRT_SECURE_NO_WARNINGS#include#include#defi转载 2016-08-19 15:37:43 · 1835 阅读 · 0 评论 -
非缓冲文本操作
#define _CRT_SECURE_NO_WARNINGS#include#include#include#include //控制文件打开#include //系统底层//文件实时复制void main(){ char *path = "E:\\q1.txt"; char *pathnew = "c:\\newq.txt"; int pfr = _open(p转载 2016-08-29 12:13:51 · 436 阅读 · 0 评论 -
多线程查询数据
多线程查询数据:此处主要是对内存与数据的联系的理解,如使用到的地二级指针#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#define N 2027358char **g_bh;void init(char *path){ //初始化 printf("init sta转载 2016-08-16 17:14:49 · 2201 阅读 · 0 评论 -
文件夹浏览
下面是有问题的代码:/*有问题的程序,不能完成查询。如查询根目录时查询会出错。*/#define _CRT_SECURE_NO_WARNINGS#include#include#includevoid findFile(char *path){ char str[256] = { 0 }; sprintf(str, "%s\\*.*", path); BOOL原创 2016-09-28 21:53:12 · 380 阅读 · 0 评论