📄 sysinfo.cpp
字号:
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <string.h>
#include <stdlib.h>
#include "sysinfo.h"
#include "def.h"
//构造函数。
Sys::Sys(char *fileName)
{
strcpy(FileName, fileName);
ReadFile();
}
//查找指定字段名称的数据。
char *
Sys::GetData(char *buf, char *keys)
{
char *temp;
//查找指定名称。
temp = strstr(buf, keys);
//查找名称后的等于符号。
temp = strstr(temp, "=");
temp++;
//获得行的长度。
int i = 0;
while(*(temp + i) != '\r')
{
i++;
};
//截取一行数据。
strncpy(ret, temp, i);
ret[i]=NULL;
//返回。
return ret;
}
//从Sys.dat中读取数据。
void
Sys::ReadFile()
{
//文件句柄。
FILE *fp;
//打开文件
fp=fopen(FileName, "rb");
int length=(int)filelength(fileno(fp));
Buffer = new char[length + 1];
fread(Buffer, length, 1, fp);
fclose(fp);
//读取终端号。
memcpy(TermID, GetData(Buffer, "TermID"), 4);
TermID[3] = NULL;
//屏幕标题。
memcpy(ScreenTitle, GetData(Buffer, "ScreenTitle"), 30);
ScreenTitle[30] = NULL;
//迎接顾客时顾客显示屏第一行。
memcpy(CusDisplay1, GetData(Buffer, "CustomerDisplay1"), 40);
CusDisplay1[40] = NULL;
//迎接顾客时顾客显示屏第二行。
memcpy(CusDisplay2, GetData(Buffer, "CustomerDisplay2"), 40);
CusDisplay2[40] = NULL;
//迎接顾客时顾客显示屏第一行。
memcpy(CusDisplay3, GetData(Buffer, "CustomerDisplay3"), 40);
CusDisplay3[40] = NULL;
//迎接顾客时顾客显示屏第二行。
memcpy(CusDisplay4, GetData(Buffer, "CustomerDisplay4"), 40);
CusDisplay4[40] = NULL;
//钱箱开关。
if(strcmp(Trim(GetData(Buffer, "CashBoxSW")), "YES")==0)
{
CasSW = L_YES;
}
else
{
CasSW = L_NO;
}
//顾客显示屏开关。
if(strcmp(Trim(GetData(Buffer, "CustomerDisplaySW")), "YES")==0)
{
CusSW = L_YES;
}
else
{
CusSW = L_NO;
}
//网络开关。
if(strcmp(Trim(GetData(Buffer, "NetworkSW")), "YES")==0)
{
NetSW = L_YES;
}
else
{
NetSW = L_NO;
}
//不使用网络是否备份数据。
if(strcmp(Trim(GetData(Buffer, "NetworkTempSW")), "YES")==0)
{
NetTempSW = L_YES;
}
else
{
NetTempSW = L_NO;
}
//打印机开关。
if(strcmp(Trim(GetData(Buffer, "PrinterSW")), "YES")==0)
{
PrnSW = L_YES;
}
else
{
PrnSW = L_NO;
}
//数据接收路径。
memcpy(PubRPath, Trim(GetData(Buffer, "DataReceivePath")), 64);
PubRPath[64] = NULL;
//数据发送路径。
memcpy(PubSPath, Trim(GetData(Buffer, "DataSendPath")), 64);
PubSPath[64] = NULL;
//状态接收路径。
memcpy(StaRPath, Trim(GetData(Buffer, "StatusReceivePath")), 64);
StaRPath[64] = NULL;
//状态发送路径。
memcpy(StaSPath, Trim(GetData(Buffer, "StatusSendPath")), 64);
StaSPath[64] = NULL;
//信件接收路径。
memcpy(MailRPath, Trim(GetData(Buffer, "MailReceivePath")), 64);
MailRPath[64] = NULL;
//信件发送路径。
memcpy(MailSPath, Trim(GetData(Buffer, "MailSendPath")), 64);
MailSPath[64] = NULL;
//营业员开关。
if(strcmp(Trim(GetData(Buffer, "SalerSW")), "YES")==0)
{
SalSW = L_YES;
}
else
{
SalSW = L_NO;
}
//无编码销售开关。
if(strcmp(Trim(GetData(Buffer, "NoCodeSaleSW")), "YES")==0)
{
NoCodeSaleSW = L_YES;
}
else
{
NoCodeSaleSW = L_NO;
}
//变价销售开关。
if(strcmp(Trim(GetData(Buffer, "OpenPriceSW")), "YES")==0)
{
OpenPriceSW = L_YES;
}
else
{
OpenPriceSW = L_NO;
}
//是否允许退货。
if(strcmp(Trim(GetData(Buffer, "EjectableSW")), "YES")==0)
{
EjectSW = L_YES;
}
else
{
EjectSW = L_NO;
}
//退货是否需要密码。
if(strcmp(Trim(GetData(Buffer, "EjectPasswordSW")), "YES")==0)
{
EjectPwdSW = L_YES;
}
else
{
EjectPwdSW = L_NO;
}
//是否允许单笔优惠。
if(strcmp(Trim(GetData(Buffer, "FavourableSW")), "YES")==0)
{
FavourSW = L_YES;
}
else
{
FavourSW = L_NO;
}
//是否允许单笔折扣。
if(strcmp(Trim(GetData(Buffer, "SingleDiscountSW")), "YES")==0)
{
SingleDisSW = L_YES;
}
else
{
SingleDisSW = L_NO;
}
//是否允许整体折扣。
if(strcmp(Trim(GetData(Buffer, "AllDiscountSW")), "YES")==0)
{
DisSW = L_YES;
}
else
{
DisSW = L_NO;
}
//联营标志。
memcpy(PoolCode, Trim(GetData(Buffer, "PoolCode")), 2);
PoolCode[2] = NULL;
//条码秤识别符。
memcpy(BarBalMark, Trim(GetData(Buffer, "BarBalanceMark")), 2);
BarBalMark[2] = NULL;
//打印机类型。
PrnType =(int)_atold(GetData(Buffer, "PrinterType"));
//打印语言。
PrnLang =(int)_atold(GetData(Buffer, "PrintLanguage"));
//打印小票标题1。
memcpy(CheckTitle1, GetData(Buffer, "CheckTitle1"), 40);
CheckTitle1[40] = NULL;
//打印小票标题2。
memcpy(CheckTitle2, GetData(Buffer, "CheckTitle2"), 40);
CheckTitle2[40] = NULL;
//打印小票标题3。
memcpy(CheckTitle3, GetData(Buffer, "CheckTitle3"), 40);
CheckTitle3[40] = NULL;
//打印小票结尾1。
memcpy(CheckTail1, GetData(Buffer, "CheckTail1"), 40);
CheckTail1[40] = NULL;
//打印小票结尾2。
memcpy(CheckTail2, GetData(Buffer, "CheckTail2"), 40);
CheckTail2[40] = NULL;
//打印小票结尾3。
memcpy(CheckTail3, GetData(Buffer, "CheckTail3"), 40);
CheckTail3[40] = NULL;
//通讯端口.
Port = atoi(GetData(Buffer, "Port"));
//通讯波特率.
Baud = atol(GetData(Buffer, "BaudRate"));
//电话号码.
memcpy(TelNum, GetData(Buffer, "TelNum"), 20);
TelNum[20] = NULL;
//身份标志.
memcpy(SelfID, GetData(Buffer, "SelfID"), 4);
SelfID[4] = NULL;
}
Sys::~Sys()
{
delete []Buffer;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -