📄 dbshare.pas
字号:
begin
ServerIPList.Clear;
try
ServerIPList.LoadFromFile(sServerIPConfFileNmae);
except
OutMainMessage('加载IP列表文件 ' + sServerIPConfFileNmae + ' 出错!!!');
end;
end;
procedure LoadConfig();
var
Conf : TIniFile;
LoadInteger : Integer;
function LoadConfigInteger(sSection, sIdent: string; nDefault: Integer):
Integer;
var
nLoadInteger : Integer;
begin
nLoadInteger := Conf.ReadInteger(sSection, sIdent, -1);
if nLoadInteger < 0 then
begin
Conf.WriteInteger(sSection, sIdent, nDefault);
Result := nDefault;
end
else
begin
Result := nLoadInteger;
end;
end;
function LoadConfigString(sSection, sIdent, sDefault: string): string;
var
sString : string;
begin
sString := Conf.ReadString(sSection, sIdent, '');
if sString = '' then
begin
Conf.WriteString(sSection, sIdent, sDefault);
Result := sDefault;
end
else
begin
Result := sString;
end;
end;
begin
Conf := TIniFile.Create(sConfFileName);
if Conf <> nil then
begin
DataBaseConfig.IP:=LoadConfigString('DATASETUP','IP','127.0.0.1');
DataBaseConfig.DatabaseName:=LoadConfigString('DATASETUP','DataServer' ,'(LOCAL)');
DataBaseConfig.DataTableName:=LoadConfigString('DATASETUP','DataBase' ,'');
DataBaseConfig.DataUserName:=LoadConfigString('DATASETUP','DataAccount' ,'sa');
DataBaseConfig.DAtaPassWord:=LoadConfigString('DATASETUP','DataPassWord' ,'');
sDataDBFilePath := Conf.ReadString('DB', 'Dir', sDataDBFilePath);
sHumDBFilePath := Conf.ReadString('DB', 'HumDir', sHumDBFilePath);
sFeedPath := Conf.ReadString('DB', 'FeeDir', sFeedPath);
sBackupPath := Conf.ReadString('DB', 'Backup', sBackupPath);
sConnectPath := Conf.ReadString('DB', 'ConnectDir', sConnectPath);
sLogPath := Conf.ReadString('DB', 'LogDir', sLogPath);
nServerPort := Conf.ReadInteger('Setup', 'ServerPort', nServerPort);
sServerAddr := Conf.ReadString('Setup', 'ServerAddr', sServerAddr);
g_nGatePort := Conf.ReadInteger('Setup', 'GatePort', g_nGatePort);
g_sGateAddr := Conf.ReadString('Setup', 'GateAddr', g_sGateAddr);
g_nRemotPort:=Conf.ReadInteger('Setup','RemotePort',g_nRemotPort);
g_SRemotAddr:=Conf.ReadString('Setup','RemoteAddr',g_SRemotAddr);
sIDServerAddr := Conf.ReadString('Server', 'IDSAddr', sIDServerAddr);
nIDServerPort := Conf.ReadInteger('Server', 'IDSPort', nIDServerPort);
boViewHackMsg := Conf.ReadBool('Setup', 'ViewHackMsg', boViewHackMsg);
sServerName := Conf.ReadString('Setup', 'ServerName', sServerName);
{
boClearLevel1:=Conf.ReadBool('DBClear','ClearLevel1',boClearLevel1);
boClearLevel2:=Conf.ReadBool('DBClear','ClearLevel2',boClearLevel2);
boClearLevel3:=Conf.ReadBool('DBClear','ClearLevel3',boClearLevel3);
}
dwInterval := Conf.ReadInteger('DBClear', 'Interval', dwInterval);
nLevel1 := Conf.ReadInteger('DBClear', 'Level1', nLevel1);
nLevel2 := Conf.ReadInteger('DBClear', 'Level2', nLevel2);
nLevel3 := Conf.ReadInteger('DBClear', 'Level3', nLevel3);
nDay1 := Conf.ReadInteger('DBClear', 'Day1', nDay1);
nDay2 := Conf.ReadInteger('DBClear', 'Day2', nDay2);
nDay3 := Conf.ReadInteger('DBClear', 'Day3', nDay3);
nMonth1 := Conf.ReadInteger('DBClear', 'Month1', nMonth1);
nMonth2 := Conf.ReadInteger('DBClear', 'Month2', nMonth2);
nMonth3 := Conf.ReadInteger('DBClear', 'Month3', nMonth3);
LoadInteger := Conf.ReadInteger('Setup', 'DynamicIPMode', -1);
if LoadInteger < 0 then
begin
Conf.WriteBool('Setup', 'DynamicIPMode', g_boDynamicIPMode);
end
else
g_boDynamicIPMode := LoadInteger = 1;
Conf.Free;
end;
LoadIPTable();
LoadGateID();
end;
function GetCodeMsgSize(X: Double): Integer;
begin
if INT(X) < X then
Result := TRUNC(X) + 1
else
Result := TRUNC(X)
end;
function CheckChrName(sChrName: string): Boolean;
//0x0045BE60
var
i : Integer;
Chr : Char;
boIsTwoByte : Boolean;
FirstChr : Char;
begin
Result := True;
boIsTwoByte := False;
FirstChr := #0;
for i := 1 to Length(sChrName) do
begin
Chr := (sChrName[i]);
if boIsTwoByte then
begin
//if Chr < #$A1 then Result:=False; //如果小于就是非法字符
// if Chr < #$81 then Result:=False; //如果小于就是非法字符
if not ((FirstChr <= #$F7) and (Chr >= #$40) and (Chr <= #$FE)) then
if not ((FirstChr > #$F7) and (Chr >= #$40) and (Chr <= #$A0)) then
Result := False;
boIsTwoByte := False;
end
else
begin //0045BEC0
//if (Chr >= #$B0) and (Chr <= #$C8) then begin
if (Chr >= #$81) and (Chr <= #$FE) then
begin
boIsTwoByte := True;
FirstChr := Chr;
end
else
begin //0x0045BED2
if not ((Chr >= '0' {#30}) and (Chr <= '9' {#39})) and
not ((Chr >= 'a' {#61}) and (Chr <= 'z') {#7A}) and
not ((Chr >= 'A' {#41}) and (Chr <= 'Z' {#5A})) then
Result := False;
end;
end;
if not Result then
break;
end;
end;
procedure OutMainMessage(sMsg: string);
begin
WriteLogMsg(sMsg);
FrmDBSrv.MemoLog.Lines.Add(sMsg);
end;
procedure WriteLogMsg(sMsg: string);
begin
LogMemstream.Add(sMsg);
LogMemstream.SaveToFile(sLogFileName);
end;
function CheckServerIP(sIP: string): Boolean;
var
i : Integer;
begin
Result := False;
for i := 0 to ServerIPList.Count - 1 do
begin
if CompareText(sIP, ServerIPList.Strings[i]) = 0 then
begin
Result := True;
break;
end;
end;
end;
procedure SendGameCenterMsg(wIdent: Word; sSendMsg: string);
var
SendData : TCopyDataStruct;
nParam : Integer;
begin
nParam := MakeLong(Word(tDBServer), wIdent);
SendData.cbData := Length(sSendMsg) + 1;
GetMem(SendData.lpData, SendData.cbData);
StrCopy(SendData.lpData, PChar(sSendMsg));
SendMessage(g_dwGameCenterHandle, WM_COPYDATA, nParam, Cardinal(@SendData));
FreeMem(SendData.lpData);
end;
initialization
begin
InitializeCriticalSection(HumDB_CS);
DenyChrNameList := TStringList.Create;
ServerIPList := TStringList.Create;
GateIDList := TStringList.Create;
LogMemstream:=TStringList.Create;
end;
finalization
begin
DenyChrNameList.Free;
ServerIPList.Free;
GateIDList.Free;
LogMemstream.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -