186 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
/*********************************************************************************************
 | 
						|
 * Copyright 2004 - Volian Enterprises, Inc. All rights reserved.
 | 
						|
 * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | 
						|
 * ------------------------------------------------------------------------------
 | 
						|
 * $Workfile: CurSet.cs $     $Revision: 2 $
 | 
						|
 * $Author: Jsj $   $Date: 5/17/05 11:51a $
 | 
						|
 *
 | 
						|
 * $History: CurSet.cs $
 | 
						|
 * 
 | 
						|
 * *****************  Version 2  *****************
 | 
						|
 * User: Jsj          Date: 5/17/05    Time: 11:51a
 | 
						|
 * Updated in $/LibSource/Utils
 | 
						|
 * cleanup
 | 
						|
 * 
 | 
						|
 * *****************  Version 1  *****************
 | 
						|
 * User: Kathy        Date: 7/27/04    Time: 8:34a
 | 
						|
 * Created in $/LibSource/Utils
 | 
						|
 *********************************************************************************************/
 | 
						|
 | 
						|
using System;
 | 
						|
using System.IO;
 | 
						|
using System.Collections;
 | 
						|
using System.Text;
 | 
						|
using System.Windows.Forms;
 | 
						|
 | 
						|
namespace Utils
 | 
						|
{
 | 
						|
	/// <summary>
 | 
						|
	/// Summary description for CurSet.
 | 
						|
	/// </summary>
 | 
						|
	public class CurSet
 | 
						|
	{
 | 
						|
		public string PathName;
 | 
						|
		public string DefaultDestFName; //[MAXPATH]
 | 
						|
		public string DefaultPlantFmt; //[10];
 | 
						|
		public string DefaultPrinter; //[4];
 | 
						|
		public ArrayList DefaultUserCBMsg; //[2][10];
 | 
						|
		public string DefaultUserFmt; //[3];
 | 
						|
		public ArrayList DefPenColors;  //[8]
 | 
						|
		public short DefaultChangeBars;
 | 
						|
		public short DefaultDestination;
 | 
						|
		public short DefaultOriginals;
 | 
						|
		public short DefaultPagination;
 | 
						|
		public short DefaultPaperMacro;
 | 
						|
		public short DefaultPlotterType,DefaultPlotterPort,DefaultCIEType;
 | 
						|
		public short DontPrintStatusTree;
 | 
						|
		public short DisableDuplexPrinting;
 | 
						|
 | 
						|
		private string[] SettingFiles={"..\\procs\\curset.dat", "~curset.dat"};
 | 
						|
		
 | 
						|
		public CurSet(string pname)
 | 
						|
		{
 | 
						|
			PathName = pname;
 | 
						|
		
 | 
						|
		}
 | 
						|
		
 | 
						|
		public bool Create(UserRunTime usrRT)
 | 
						|
		{
 | 
						|
			// find file to copy from procs or system.
 | 
						|
			bool found = false;
 | 
						|
			int i=0;
 | 
						|
			while(found==false)
 | 
						|
			{
 | 
						|
				if (File.Exists(usrRT.ExeAdjust(SettingFiles[i])) == true) 
 | 
						|
					found=true;
 | 
						|
				else
 | 
						|
					i++;
 | 
						|
			}
 | 
						|
			if (found==false) return false;
 | 
						|
			File.Copy(usrRT.ExeAdjust(SettingFiles[i]),"curset.dat");
 | 
						|
			PathName = "curset.dat";
 | 
						|
			return true;
 | 
						|
		}
 | 
						|
 | 
						|
		private string ReadTheString(BinaryReader bw, int maxlen)
 | 
						|
		{
 | 
						|
			StringBuilder retStr = new StringBuilder(maxlen+1);
 | 
						|
			// read a series of characters until a null is found.
 | 
						|
			char ac;
 | 
						|
			bool done = false;
 | 
						|
			while(done==false)
 | 
						|
			{
 | 
						|
				ac = bw.ReadChar();
 | 
						|
				if (ac=='\0') 
 | 
						|
					done=true;
 | 
						|
				else
 | 
						|
					retStr.Append(ac);
 | 
						|
			}
 | 
						|
			return retStr.ToString();
 | 
						|
		}
 | 
						|
 | 
						|
		public bool Read()
 | 
						|
		{
 | 
						|
			BinaryReader br;
 | 
						|
			ArrayList DefaultUserCBMsg = new ArrayList(2);
 | 
						|
			ArrayList DefPenColors = new ArrayList(8);
 | 
						|
			FileStream fs;
 | 
						|
			FileInfo fi = new FileInfo(PathName);
 | 
						|
			try
 | 
						|
			{
 | 
						|
				fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite );
 | 
						|
				br = new BinaryReader(fs,System.Text.ASCIIEncoding.ASCII);
 | 
						|
			}
 | 
						|
			catch (Exception e)
 | 
						|
			{
 | 
						|
				MessageBox.Show(e.ToString(),"CURSET.DAT Error");
 | 
						|
				return false;
 | 
						|
			}
 | 
						|
 | 
						|
			try
 | 
						|
			{
 | 
						|
				DefaultDestination=br.ReadSByte();
 | 
						|
				DefaultChangeBars= br.ReadSByte();
 | 
						|
				DefaultOriginals=br.ReadSByte();
 | 
						|
				DefaultPagination=br.ReadSByte();
 | 
						|
				DefaultPrinter = ReadTheString(br,4);
 | 
						|
				DefaultPlantFmt = ReadTheString(br,10);
 | 
						|
				DefaultDestFName = ReadTheString(br,128);
 | 
						|
				DefaultPlotterType = br.ReadSByte();
 | 
						|
				DefaultPlotterPort = br.ReadSByte();
 | 
						|
				DefaultCIEType = br.ReadSByte();
 | 
						|
				short tmp;
 | 
						|
				for (int i=0;i<8;i++)
 | 
						|
				{
 | 
						|
					tmp = br.ReadSByte();
 | 
						|
					DefPenColors.Add(tmp);
 | 
						|
				}
 | 
						|
			
 | 
						|
				DefaultPaperMacro = br.ReadSByte();
 | 
						|
				string stmp;
 | 
						|
				stmp = ReadTheString(br,10);
 | 
						|
				DefaultUserCBMsg.Add(stmp);
 | 
						|
				stmp = ReadTheString(br,10);
 | 
						|
				DefaultUserCBMsg.Add(stmp);
 | 
						|
				DontPrintStatusTree = br.ReadSByte();
 | 
						|
				DefaultUserFmt = ReadTheString(br,10);
 | 
						|
				DisableDuplexPrinting = br.ReadSByte();
 | 
						|
				br.Close();
 | 
						|
			}
 | 
						|
			catch(Exception e)
 | 
						|
			{
 | 
						|
				if(br!=null) br.Close();
 | 
						|
			}
 | 
						|
			fs.Close();
 | 
						|
			return true;
 | 
						|
		}
 | 
						|
 | 
						|
		public bool Save(string filename)
 | 
						|
		{
 | 
						|
			// may be a different pathname, if so, change it.
 | 
						|
			if (filename.ToUpper() != PathName.ToUpper()) PathName = filename;
 | 
						|
 | 
						|
			FileStream fs = new FileStream(PathName, FileMode.Create);
 | 
						|
			BinaryWriter w = new BinaryWriter(fs);
 | 
						|
 | 
						|
			w.Write(DefaultDestination);
 | 
						|
			w.Write(DefaultChangeBars);
 | 
						|
			w.Write(DefaultOriginals);
 | 
						|
			w.Write(DefaultPagination);
 | 
						|
			w.Write(DefaultPrinter);
 | 
						|
			w.Write(DefaultPlantFmt);
 | 
						|
			w.Write(DefaultDestFName);
 | 
						|
			w.Write(DefaultPlotterType);
 | 
						|
			w.Write(DefaultPlotterPort);
 | 
						|
			w.Write(DefaultCIEType);
 | 
						|
			w.Write((short)DefPenColors[0]);
 | 
						|
			w.Write((short)DefPenColors[1]);
 | 
						|
			w.Write((short)DefPenColors[2]);
 | 
						|
			w.Write((short)DefPenColors[3]);
 | 
						|
			w.Write((short)DefPenColors[4]);
 | 
						|
			w.Write((short)DefPenColors[5]);
 | 
						|
			w.Write((short)DefPenColors[6]);
 | 
						|
			w.Write((short)DefPenColors[7]);
 | 
						|
			w.Write(DefaultPaperMacro);
 | 
						|
			w.Write((string)DefaultUserCBMsg[0]);
 | 
						|
			w.Write((string)DefaultUserCBMsg[1]);
 | 
						|
			w.Write(DontPrintStatusTree);
 | 
						|
			w.Write(DefaultUserFmt);
 | 
						|
			w.Write(DisableDuplexPrinting);
 | 
						|
			w.Close();
 | 
						|
			fs.Close();
 | 
						|
			return true;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |