📄 inifile.cpp
字号:
//---------------------------------------------------------------------------
#include <string>
using namespace std;
#include <vcl\vcl.h>
#pragma hdrstop
#include "iniFile.h"
//---------------------------------------------------------------------------
IniFile::IniFile()
{
deviceType = DEFAULT_DEVICE_TYPE;
serialPort.assign(DEFAULT_SERIAL_PORT);
serialBaudRate = DEFAULT_SERIAL_BAUD_RATE;
timeout = DEFAULT_TIMEOUT;
phoneNumber.assign(DEFAULT_PHONE_NUMBER);
emulationMode = DEFAULT_EMULATION_MODE;
CHAPSecret.assign(DEFAULT_SECRET);
}
IniFile::~IniFile()
{
WriteParamFile();
}
bool IniFile::LoadParams()
{
char temp[256];
filePtr.open(INI_FILE_NAME, ios::in); //Cbuilder3 | ios::nocreate);
if(filePtr.fail())
return false;
memset(temp, 0, 256);
filePtr.getline((char *)temp, 256, '\n');
SetDeviceType(temp);
memset(temp, 0, 256);
filePtr.getline((char *)temp, 256, '\n');
SetSerialPort(temp);
memset(temp, 0, 256);
filePtr.getline((char *)temp, 256, '\n');
SetSerialBaudRate(temp);
memset(temp, 0, 256);
filePtr.getline((char *)temp, 256, '\n');
SetTimeout(temp);
memset(temp, 0, 256);
filePtr.getline((char *)temp, 256, '\n');
SetPhoneNumber(temp);
memset(temp, 0, 256);
filePtr.getline((char *)temp, 256, '\n');
SetEmulationMode(temp);
memset(temp, 0, 256);
filePtr.getline((char *)temp, 256, '\n');
SetCHAPSecret(temp);
filePtr.close();
return true;
}
long IniFile::GetDeviceType()
{
return deviceType;
}
string IniFile::GetSerialPort()
{
return serialPort;
}
short IniFile::GetSerialBaudRate()
{
return serialBaudRate;
}
short IniFile::GetTimeout()
{
return timeout;
}
string IniFile::GetPhoneNumber()
{
return phoneNumber;
}
long IniFile::GetEmulationMode()
{
return emulationMode;
}
string IniFile::GetCHAPSecret()
{
return CHAPSecret;
}
void IniFile::SetDeviceType(long theDeviceType)
{
deviceType=theDeviceType;
}
void IniFile::SetDeviceType(char *theDeviceType)
{
if(!strncmp(theDeviceType, "SERIAL", 6))
deviceType=SERIAL_DEVICE;
else if (!strncmp(theDeviceType, "MODEM", 5))
deviceType=MODEM_DEVICE;
else if (!strncmp(theDeviceType, "NETWORK", 7))
deviceType=NETWORK_DEVICE;
else
deviceType=SERIAL_DEVICE;
}
void IniFile::SetSerialPort(string theSerialPort)
{
serialPort=theSerialPort;
}
void IniFile::SetSerialPort(char *theSerialPort)
{
serialPort.assign(theSerialPort);
}
void IniFile::SetSerialBaudRate(short theSerialBaudRate)
{
serialBaudRate = theSerialBaudRate;
}
void IniFile::SetSerialBaudRate(char *theSerialBaudRate)
{
serialBaudRate = atoi(theSerialBaudRate);
}
void IniFile::SetTimeout(short theTimeout)
{
timeout = theTimeout;
}
void IniFile::SetTimeout(char *theTimeout)
{
timeout = atoi(theTimeout);
}
void IniFile::SetPhoneNumber(string thePhoneNumber)
{
phoneNumber = thePhoneNumber;
}
void IniFile::SetPhoneNumber(char *thePhoneNumber)
{
phoneNumber.assign(thePhoneNumber);
}
void IniFile::SetEmulationMode(char *theEmulationMode)
{
if (!strncmp(theEmulationMode, "FIELD", 5))
emulationMode = EMULATE_FIELD_DEVICE;
else
emulationMode = EMULATE_CENTRAL_SYSTEM; // default mode
}
void IniFile::SetEmulationMode(long theEmulationMode)
{
if((emulationMode==EMULATE_FIELD_DEVICE) ||
(emulationMode == EMULATE_CENTRAL_SYSTEM))
emulationMode = theEmulationMode; // default mode
}
void IniFile::SetCHAPSecret(char *theSecret)
{
CHAPSecret.assign(theSecret);
}
bool IniFile::WriteParamFile()
{
char temp[10]="";
filePtr.open(INI_FILE_NAME, ios::out | ios::trunc);
if(deviceType == MODEM_DEVICE)
filePtr.write("MODEM\n", 6);
else if(deviceType == SERIAL_DEVICE)
filePtr.write("SERIAL\n", 7);
else
filePtr.write("NETWORK\n", 8);
filePtr.write(serialPort.c_str(), serialPort.length());
filePtr.write("\n", 1);
itoa(serialBaudRate, temp, 10);
filePtr.write(temp, strlen(temp));
filePtr.write("\n",1);
memset(temp, 0,10);
itoa(timeout, temp, 10);
filePtr.write(temp, strlen(temp));
filePtr.write("\n",1);
filePtr.write(phoneNumber.c_str(), phoneNumber.length());
filePtr.write("\n", 1);
if (emulationMode == EMULATE_FIELD_DEVICE)
filePtr.write("FIELD\n",6);
else
filePtr.write("CENTRAL\n",8);
filePtr.write(CHAPSecret.c_str(), CHAPSecret.length());
filePtr.write("\n", 1);
filePtr.close();
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -