📄 新建 文本文档.txt
字号:
status prepare_system_dir(void)
{
// 准备列车信息资料夹
build_i_dir(TRAIN_INFO_DIR, NULL);
/////////////////////////////////////////////////////////////////////////////
// 函数功能: 一级路径目录创建函数
//
// 函数参数: dir_i:第一级目录名
// filename:NULL:只创建目录;非NULL:在已创建的目录下创建此文件
//
/////////////////////////////////////////////////////////////////////////////
status build_i_dir(char *dir_i, char *filename)
{
char dir[128];
FILE *fp;
strcpy(dir, "md ");
strcat(dir, dir_i);
system(dir);
if (!(NULL == filename))
{
strcpy(dir, dir_i);
strcat(dir, "\\");
strcat(dir, filename);
fp = fopen(dir, "wb");
fclose(fp);
}
return OK;
}
status load_system_settings(system_info *system_info_pt)
{
FILE *fp;
char filepath[MAX_FILE_PATH_LEN];
message(INFO, "正在加载系统配置信息...", NULL);
// 生成文件路径
create_i_dir(filepath, SYS_INFO_DIR, SYS_INFO_FILE);
status create_i_dir(char *finalpath, char *dir_i, char *filename)
{
strcpy(finalpath, "");
strcat(finalpath, dir_i);
strcat(finalpath, "\\");
strcat(finalpath, filename);
return OK;
}
// 检测文件有效性
if (!check_data(filepath, 0))
{
message(ERROR, "从文件加载系统配置信息失败!", C);
return FAIL;
}
// 只读二进制方式打开文件读取信息
fp = fopen(filepath, "rb");
fread(system_info_pt, sizeof(system_info), 1, fp);
fclose(fp); // 打开一个空文件也能读?
message(INFO, "系统配置信息加载成功。", NULL);
return OK;
}
status prepare_system_file(void)
{
build_i_dir(SYS_INFO_DIR, SYS_INFO_FILE); // 系统信息文件
build_i_dir(SYS_INFO_DIR, SQ_INFO_FILE); // 车次信息文件
build_i_dir(SYS_INFO_DIR, PSNGR_ITEM_FILE); // 用户信息文件
return OK;
}
status create_default_system_settings(system_info *system_info_pt)
{
message(WARN, "正在重置系统配置信息...", NULL);
// 设置系统状态
// 将创建信息写入文件
if (save_system_info(system_info_pt))
{
status save_system_info(system_info *system_info_pt)
{
FILE *fp;
char filepath[MAX_FILE_PATH_LEN];
message(INFO, "正在更新系统信息...", NULL);
// 取得文件路径
create_i_dir(filepath, SYS_INFO_DIR, SYS_INFO_FILE);
status create_i_dir(char *finalpath, char *dir_i, char *filename)
{
strcpy(finalpath, "");
strcat(finalpath, dir_i);
strcat(finalpath, "\\");
strcat(finalpath, filename);
fp = fopen(filepath, "rb+"); // 随机读写使用 rb+ 方式打开文件
fwrite(system_info_pt, sizeof(system_info), 1, fp);
fclose(fp);
return OK;
}
message(INFO, "成功创建默认系统配置信息!", NULL);
}
else
{
message(ERROR, "创建默认系统配置信息时存储文件出错!", NULL);
message(WARN, "创建默认系统配置信息失败!", WC);
return FAIL;
}
return OK;
}
status create_default_admin_info(passenger_info *psngr_info_pt,
system_info *system_info_pt)
{
message(WARN, "正在重置默认管理员信息...", NULL);
build_ii_dir(USER_INFO_DIR, "陆遥", NULL);
/////////////////////////////////////////////////////////////////////////////
// 函数功能: 二级路径目录创建函数
//
// 函数参数: dir_i:第一级目录名
// dir_ii:第二级目录名
// filename:NULL:只创建目录;非NULL:在已创建的目录下创建此文件
//
/////////////////////////////////////////////////////////////////////////////
status build_ii_dir(char *dir_i, char *dir_ii, char *filename)
{
char dir[128];
FILE *fp;
strcpy(dir, "md ");
strcat(dir, dir_i);
strcat(dir, "\\");
strcat(dir, dir_ii);
system(dir);
if (!(NULL == filename))
{
strcpy(dir, dir_i);
strcat(dir, "\\");
strcat(dir, dir_ii);
strcat(dir, "\\");
strcat(dir, filename);
fp = fopen(dir, "wb");
fclose(fp);
}
return OK;
}
prepare_psngr_dir("陆遥");
/////////////////////////////////////////////////////////////////////////////
status prepare_psngr_dir(char *psngr_id)
{
build_ii_dir(USER_INFO_DIR, psngr_id, NULL); // 创建专门的目录
// 创建空文件以准备写入
build_ii_dir(USER_INFO_DIR, psngr_id, PSNGR_INFO_FILE);
build_ii_dir(USER_INFO_DIR, psngr_id, BOOKED_INFO_FILE);
build_ii_dir(USER_INFO_DIR, psngr_id, MSGBOX_FILE);
return OK;
}
strcpy(psngr_info_pt->passenger_id, "陆遥"); // 设置默认管理员名
strcpy(psngr_info_pt->password, "123");
strcpy(psngr_info_pt->station_id, "武汉");
psngr_info_pt->type = 0;
psngr_info_pt->total_booked_tickets = 0;
psngr_info_pt->total_booked_train = 0;
psngr_info_pt->total_cost = 0;
psngr_info_pt->sysmsg_amount = 0;
psngr_info_pt->sysmsg_new = 0;
psngr_info_pt->booked_links.next = NULL;
psngr_info_pt->sysmsg_links.next = NULL;
// 注册索引
register_psngr_info(system_info_pt, psngr_info_pt->passenger_id, 1);
// 将创建信息写入文件
if (save_psngr_info(psngr_info_pt))
{
status save_psngr_info(passenger_info *passenger_info_pt)
{
FILE *fp;
char filepath[MAX_FILE_PATH_LEN];
printf("【信息】正在更新用户(%s)信息...\n", passenger_info_pt->passenger_id);
// 取得文件路径
create_ii_dir(filepath, USER_INFO_DIR,
passenger_info_pt->passenger_id, PSNGR_INFO_FILE);
/////////////////////////////////////////////////////////////////////////////
// 函数功能: 二级路径文件名生成函数
//
// 函数参数: dir_i:第一级目录名
// dir_ii:第二级目录名
// filename:要操作的文件名
//
/////////////////////////////////////////////////////////////////////////////
status create_ii_dir(char *finalpath, char *dir_i, char *dir_ii, char *filename)
{
strcpy(finalpath, "");
strcat(finalpath, dir_i);
strcat(finalpath, "\\");
strcat(finalpath, dir_ii);
strcat(finalpath, "\\");
strcat(finalpath, filename);
return OK;
}
// 检测文件有效性
if (!check_data(filepath, 1))
{
message(ERROR, "更新用户信息时打开文件失败!", WC);
return FAIL;
}
// 文件存储位置的定位及写入
fp = fopen(filepath, "rb+"); // 随机读写使用 rb+ 方式打开文件
fwrite(passenger_info_pt, sizeof(passenger_info), 1, fp);
fclose(fp);
return OK;
}
message(INFO, "成功创建默认管理员信息!", NULL);
}
else
{
message(ERROR, "创建默认管理员信息时存储文件出错!", NULL);
message(WARN, "创建默认管理员信息失败!", WC);
return FAIL;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -