char *pOriginalFile, const char* pwdString);
#endif
2.文件操作的实现函数
#define _CRT_SECURE_NO_WARNINGS
#include "file.h"
char **pp = NULL; //存储指针数组的地址
int flag = 0;
/*************************************************************
Function :getFileRow
Description :获得文件的中记录的行数
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
path :表示的是文件的路径
Output :输出的信息为空
Return :返回文件中的行数
Others :其它说明
*************************************************************/
int getFileRow(const char *path)
{
FILE *pf;
pf = fopen(path, "r");
if (pf == NULL)
{
//代表获取失败
fclose(pf);
return -1;
}
else
{
int i = 0;
//是否到文件末尾,如果到了返回1,没有到的时候返回0
while (!feof(pf))
{
char str[275];
//读取一行
fgetc(str, 275, pf);
i++;
}
fclose(pf);
return i;
}
}
/*************************************************************
Function :main_view
Description :查看菜单信息
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
Output :输出的信息为空
Return :返回值为void
Others :其它说明
*************************************************************/
void main_view()
{
system("cls");
printf("\n******************当当用户信息查询系统*******************\n");
printf("\t1.载入数据至内存(-l)\n");
printf("\t2.查找字符串(-s)\n");
printf("\t3.释放内存(-f)\n");
printf("\n*************************0.退出**************************\n");
}
/*************************************************************
Function :getFileSize
Description :获得文件的大小(字节数)
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
path :表示的文件路径
Output :输出的信息为空
Return :文件的字节大小
Others :其它说明
*************************************************************/
int getFileSize(const char *path)
{
//定义一个文件指针
FILE *pf = NULL;
pf = fopen(path, "r");
if (pf == NULL)
{
//代表获取文件失败
fclose(pf);
return -1;
}
else
{
//fseek():Moves thefile pointer to a specified location.
fseek(pf, 0, SEEK_END);
//ftell( FILE*stream ):文件开头到当前位置有多少个字节
int num = ftell(pf);
//关闭文件
fclose(pf);
return num;
}
}
/*************************************************************
Function :loadFile
Description :加载文件
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
path :表示的是文件路径
rowSize :表示的是文件中信息由多少行
Output :输出的信息为空
Return :返回值为int,如果加载成功返回1,如果加载失败返回0
Others :其它说明
*************************************************************/
int loadFile(const char *fPath, const int rowSize)
{
printf("加载文件后,请稍后....");
FILE *pf;
pp = (char **)malloc(sizeof(char *)* rowSize);
pf = fopen(fPath, "r");
if (pf == NULL)
{
printf("对不起,加载文件失败!");
fclose(pf);
return 0;
}
else
{
int i;
for (i = 0; i < rowSize;i++)
{
//读取字符串的缓冲区
char str[275] = { 0 };
//*fgets(char*string,int n,FILE *stream);
//从文件中逐行读取字符串
fgets(str,sizeof(str) ,pf);
//获取要分配的字符串长度,最后加一是因为'\0'
int strlength = strlen(str) + 1;
//分配内存
char *px = (char *)malloc(sizeof(char) * strlength);
//拷贝字符串
strcpy(px, str);
//设定最后一个字符串'\0'
px[strlength - 1] = '\0';
//存储字符串的首地址到指针数组
pp[i] = px;
}
}
return 1;
}
/*************************************************************
Function :findStringByKeyword
Description :通过关键字的方式进行查找
Calls :被本函数调用的函数清单
CalledBy :调用本函数的函数清单
TableAccessed :被访问的表(此项仅对于牵扯到数据库操作的程序)
TableUpdated :被修改的表(此项对于牵扯到数据库操作的程序)
keyword :通过关键字查找信息
rowSize :表示的是文件中信息由多少行
Output :输出的信息为空
Return :如果查找失败返回