forked from Ox18/cheatmatrix-gunbound
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfigsLoader.pas
More file actions
114 lines (97 loc) · 2.22 KB
/
ConfigsLoader.pas
File metadata and controls
114 lines (97 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
unit ConfigsLoader;
interface
uses windows, sysutils, IniFiles, common, constantes, classes;
type
TCMConfig = class
constructor Create(val: AnsiString);
private
valor: AnsiString;
public
Function AsString: AnsiString;
Function AsFloat: double;
Function AsBoolean: Boolean;
Function AsInteger: Integer;
Function AsLong: Int64;
Function AsPAnsiChar: PAnsiChar;
end;
Function LoadConfig(Nome: AnsiString; Padrao: AnsiString = ''): TCMConfig;
Procedure WriteConfig(Nome: AnsiString; Valor: AnsiString);
Procedure InicializarConfig;
implementation
{ TCMConfig }
function TCMConfig.AsBoolean: Boolean;
begin
if valor = '' then
result := false
else
result := StrToBool(valor);
end;
function TCMConfig.AsFloat: double;
begin
if valor = '' then
result := 0
else
result := StrToFloat(valor);
end;
function TCMConfig.AsInteger: Integer;
begin
if valor = '' then
result := 0
else
result := StrToInt(valor);
end;
function TCMConfig.AsLong: Int64;
begin
if valor = '' then
result := 0
else
result := StrToInt64(valor);
end;
function TCMConfig.AsPAnsiChar: PAnsiChar;
begin
if valor = '' then
result := ''
else
result := PAnsiChar(valor);
end;
function TCMConfig.AsString: AnsiString;
begin
result := valor;
end;
constructor TCMConfig.Create(val: AnsiString);
begin
valor := val;
end;
Function LoadConfig(Nome: AnsiString; Padrao: AnsiString = ''): TCMConfig;
var ini: TIniFile;
valor: AnsiString;
begin
try
ini := TIniFile.Create(CMDir+Constante(0066, false));
valor := ini.ReadString('configs', LowerCase(Nome), Padrao);
result := TCMConfig.Create(valor);
finally
ini.Free;
end;
end;
Procedure InicializarConfig;
var ini: TIniFile;
valor: AnsiString;
lista: TStrings;
begin
lista := TStringList.Create;
valor := CMDir+Constante(0066, false);
if not FileExists(valor) then
lista.SaveToFile(valor);
end;
Procedure WriteConfig(Nome: AnsiString; Valor: AnsiString);
var ini: TIniFile;
begin
try
ini := TIniFile.Create(CMDir+Constante(0066, false));
ini.WriteString('configs', LowerCase(Nome), valor);
finally
ini.Free;
end;
end;
end.