These are supported commands for INI file access.
function ReadProfileString(FileID,SectionID,FieldID:string):string;
function ReadProfileWord(FileID,SectionID,FieldID:string):word;
function ReadProfileByte(FileID,SectionID,FieldID:string):byte;
function ReadProfileBoolean(FileID,SectionID,FieldID:string):boolean;
function ReadProfileInteger(FileID,SectionID,FieldID:string):integer;
function ReadProfileReal(FileID,SectionID,FieldID:string):real;
function WriteProfileString(FileID,SectionID,FieldID,ValueStr:string):boolean;
function WriteProfileWord(FileID,SectionID,FieldID:string;ValueWord:word):boolean;
function WriteProfileByte(FileID,SectionID,FieldID:string;ValueByte:byte):boolean;
function WriteProfileBoolean(FileID,SectionID,FieldID:string;ValueBool:boolean):boolean;
function WriteProfileInteger(FileID,SectionID,FieldID:string;ValueInt:integer):boolean;
function WriteProfileReal(FileID,SectionID,FieldID:string;ValueReal:real):boolean;
Example code in Pascal:
uses Profile;
const
FileID = 'MYAPP.ini';
var
W:Word;
B:Byte;
I:Integer;
R:Real;
L:Boolean;
S:String;
begin
WriteProfileString(FileID,'Player','Name','John');
W:=65500; WriteProfileWord(FileID,'Player','Key',W);
B:=127; WriteProfileByte(FileID,'Settings','Interval',B);
I:=2244; WriteProfileInteger(FileID,'Settings','Cycle',I);
L:=true; WriteProfileBoolean(FileID,'Settings','AutoRun', L);
R:=3.1416;WriteProfileReal(FileID,'Score','John',R);
S:=''; S:=ReadProfileString(FileID,'Player','Name');
W:=0; W:=ReadProfileWord(FileID,'Player','Key');
B:=0; B:=ReadProfileByte(FileID,'Settings','Interval');
I:=0; I:=ReadProfileInteger(FileID, 'Settings', 'Cycle');
L:=false;L:=ReadProfileBoolean(FileID,'Settings','AutoRun');
R:=0; R:=ReadProfileReal(FileID,'Score',S);
WriteLn('S = ', S);
WriteLn('W = ', W);
WriteLn('B = ', B);
WriteLn('I = ', I);
WriteLn('L = ', L);
WriteLn('R = ', R);
Write('Press Enter to quit...'); ReadLn;
end.
This PROFILE.pas unit was written in 1999. It is provided 'as is'.
The USEINI.pas is a newly written example to test PROFILE unit.
MYAPP.ini looks like this:
[Player]
Key=65500
Name=John
[Settings]
AutoRun=yes
Cycle=2244
Interval=127
[Score]
John= 3.1415999999999999E+000
Please let me know if you found bugs. Thanks!