// ======================================================================== // Copyright 2006 - Volian Enterprises, Inc. All rights reserved. // Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE // ------------------------------------------------------------------------ // $Workfile: $ $Revision: $ // $Author: $ $Date: $ // // $History: $ // ======================================================================== using System; using System.IO; using System.Collections; using System.Text; using System.Windows.Forms; using System.Xml; using System.Xml.Serialization; using VEPROMS.CSLA.Library; namespace Utils { /// /// Summary description for CurSet. /// public class CurSet { private int NUMCBTEXTYPE = 5; // number of changebar text types. public string PathName; private string DefaultPlantFmt; public CurSet(string pname) { PathName = pname; DefaultPlantFmt = null; } 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 FolderConfig Convert(FolderConfig cfg) { BinaryReader br; ArrayList DefaultUserCBMsg = new ArrayList(2); 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) { DataLoader.frmLoader._MyLog.ErrorFormat("Error migrating {0} Curset.dat, error = {1}", PathName, e.Message); return cfg; } try { sbyte tmpsbyte; string tmpstring; tmpsbyte=br.ReadSByte(); // DefaultDestination not used // the next byte has three settings embedded in it, the type of change // bar (Print_ChangeBar), the change bar location and its text. tmpsbyte= br.ReadSByte(); cfg.Print_ChangeBar = (PrintChangeBar)((int)tmpsbyte > 2 ? 3 : (int)tmpsbyte); if (tmpsbyte > 2) { cfg.Print_ChangeBarLoc = (PrintChangeBarLoc)((tmpsbyte - 3) / NUMCBTEXTYPE); int ts = (tmpsbyte - 3) % NUMCBTEXTYPE; cfg.Print_ChangeBarText = (PrintChangeBarText)((tmpsbyte - 3) % NUMCBTEXTYPE); } else { cfg.Print_ChangeBarLoc = PrintChangeBarLoc.WithText; cfg.Print_ChangeBarText = PrintChangeBarText.DateChgID; } cfg.Print_NumCopies=br.ReadSByte(); cfg.Print_Pagination=(PrintPagination) br.ReadSByte(); tmpstring = ReadTheString(br,4); // DefaultPrinter not used cfg.Format_Plant = ReadTheString(br,10); DefaultPlantFmt = cfg.Format_Plant; tmpstring = ReadTheString(br, 128); // DefaultDestFName not used tmpsbyte = br.ReadSByte(); // DefaultPlotterType not used tmpsbyte = br.ReadSByte(); // DefaultPlotterPort not used tmpsbyte = br.ReadSByte(); // DefaultCIEType not used. for (int i=0;i<8;i++) // DefPenColors[8] not used tmpsbyte = br.ReadSByte(); cfg.Print_Watermark = (PrintWatermark)br.ReadSByte(); cfg.Print_UserCBMess1 = ReadTheString(br, 10); cfg.Print_UserCBMess2 = ReadTheString(br, 10); tmpsbyte = br.ReadSByte(); // DontPrintStatusTree not used cfg.Print_UserFormat = ReadTheString(br, 10); //tmpsbyte = br.ReadSByte(); //cfg.Print_Duplex = tmpsbyte == 0 ? true : false; if (cfg.Print_UserFormat.Trim() != string.Empty) DefaultPlantFmt += " " + cfg.Print_UserFormat; br.Close(); } catch(Exception e) { if(br!=null) br.Close(); DataLoader.frmLoader._MyLog.ErrorFormat("Error migrating {0} Curset.dat, error = {1}", PathName, e.Message); } fs.Close(); return cfg; } public string GetDefFmt() { return DefaultPlantFmt; } } }