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;
 | |
| 		}
 | |
| 	}
 | |
| }
 |