home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 4
/
FreshFish_May-June1994.bin
/
new
/
amigalibdisks
/
d996
/
startup-menu
/
source
/
config.pas
next >
Wrap
Pascal/Delphi Source File
|
1994-04-05
|
4KB
|
165 lines
TYPE
tCData = Record
cd_Font : tTextAttr;
cd_ModeID : Longint;
cd_Across : LongInt;
cd_Down : LongInt;
cd_ScrTit : String;
cd_WinTit : String;
cd_Pal : Array[0..3] of Integer;
end;
VAR
CD : tCData;
(* ===================================================================== *)
Function WriteConfigFile(FName : string) : Boolean;
VAR
OutFile : Text; (* Just save config as ascii, no need for iff *)
node : pMyNode;
tmpStr : String;
err : integer;
begin
WriteConfigFile := False;
(*$I-*)
erase(FName);
rewrite(outfile, FName);
(*$I-*)
If (IOResult = 0) then begin
Writeln(OutFile, 'SM.Prefs file v1.00 ©LSK 1994.');
node := pMyNode(currentlist^.lh_Head);
while pMyNode(node^.LSK_Node.ln_Succ) <> NIL do begin
writeln(outfile, node^.LSK_Name);
writeln(outfile, node^.LSK_Cmd);
writeln(outfile, node^.LSK_Key);
node := pMyNode(node^.LSK_Node.ln_Succ);
end;
Writeln(outfile,'*NODE END*');
Writeln(OutFile);
Writeln(outfile,RetrieveStr(CD.cd_Font.ta_Name));
Str(CD.cd_Font.ta_YSize, tmpstr);
Writeln(OutFile, tmpstr);
Str(CD.cd_Font.ta_Style, tmpstr);
Writeln(OutFile, tmpstr);
Str(CD.cd_Font.ta_Flags, tmpstr);
Writeln(OutFile, tmpstr);
Str(CD.cd_ModeID, tmpstr);
Writeln(OutFile, tmpStr);
Str(CD.cd_Across, tmpstr);
Writeln(OutFile, tmpstr);
Str(CD.cd_Down, tmpstr);
Writeln(OutFile, tmpstr);
Writeln(OutFile, CD.cd_ScrTit);
Writeln(OutFile, CD.cd_WinTit);
Str(CD.cd_Pal[0], tmpstr);
Writeln(OutFile, tmpstr);
Str(CD.cd_Pal[1], tmpstr);
Writeln(OutFile, tmpstr);
Str(CD.cd_Pal[2], tmpstr);
Writeln(OutFile, tmpstr);
Str(CD.cd_Pal[3], tmpstr);
Writeln(OutFile, tmpstr);
Writeln(outfile,'*DEF END*');
close(outfile);
WriteConfigFile := True;
end;
end;
(* ===================================================================== *)
Function ReadConfigFile(FName : string) : Boolean;
VAR
INTextF : Text; (* Just save config as ascii, no need for iff *)
node : pMyNode;
tmpStr : String[190];
err, res : integer;
rc : Boolean;
buf : packed array[1..1024] of char;
begin
{$I-}
rc := False; (* Set default exit *)
Assign(INTextF, FName);
SetTextBuf(INTextF, buf);
Reset(INTextF);
res := IOResult;
if (res = 0) then begin
{$I-}
readln(INTextF, TmpStr);
If tmpstr = 'SM.Prefs file v1.00 ©LSK 1994.' then begin
CurrentList := AllocRemember(@RememberKey, sizeof(tList), MEMF_CLEAR);
if CurrentList <> NIL then begin
newlist(currentlist);
Readln(INTextF, TmpStr);
While TmpStr <> '*NODE END*' do begin
(* Get node mem *)
node := AllocRemember(@RememberKey, Sizeof(tMyNode), MEMF_CLEAR OR MEMF_PUBLIC);
node^.LSK_Name := TmpStr;
Readln(INTextF, node^.LSK_Cmd);
Readln(INTextF, node^.LSK_Key);
node^.LSK_Node.ln_Name := @node^.LSK_Name[1];
node^.LSK_Node.ln_Type := NT_USER;
node^.LSK_Node.ln_Pri := 0;
AddTail(CurrentList, pNode(node));
Readln(INTextF, TmpStr);
end;
Readln(INTextF);
Readln(INTextF, tmpStr);
CD.cd_Font.ta_Name := CstrConstPtrAR(@RememberKey, tmpstr);
Readln(INTextF, TmpStr);
Val(tmpstr, CD.cd_Font.ta_YSize, err);
Readln(INTextF, TmpStr);
Val(tmpstr, CD.cd_Font.ta_Style, err);
Readln(INTextF, TmpStr);
Val(tmpstr, CD.cd_Font.ta_Flags, err);
Readln(INTextF, TmpStr);
Val(tmpstr, CD.cd_ModeID, err);
Readln(INTextF, TmpStr);
Val(tmpstr, CD.cd_Across, err);
Readln(INTextF, TmpStr);
Val(tmpstr, CD.cd_Down, err);
Readln(INTextF, CD.cd_ScrTit);
Readln(INTextF, CD.cd_WinTit);
Readln(INTextF, TmpStr);
Val(tmpStr, CD.cd_Pal[0], err);
Readln(INTextF, TmpStr);
Val(tmpStr, CD.cd_Pal[1], err);
Readln(INTextF, TmpStr);
Val(tmpStr, CD.cd_Pal[2], err);
Readln(INTextF, TmpStr);
Val(tmpStr, CD.cd_Pal[3], err);
Close(INTextF);
rc := True;
end;
end else Close(INTextF);
end;
ReadConfigFile := rc;
{$I+}
end;
(* ===================================================================== *)