⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sysinfo.cpp

📁 金融pos机前台源码
💻 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 + -