home *** CD-ROM | disk | FTP | other *** search
- 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;
-
- (* ===================================================================== *)