using System; using System.Collections.Generic; using System.Text; using System.IO; namespace DataLoader { public partial class Loader { public bool BuildScopeApplicability() { bool rv = false; //get scopes from proc.ini rv |= CreateScopes(); //end get scopes from proc.ini //get apl dictionary Dictionary> procAPLs = new Dictionary>(); string[] procs = Directory.GetFiles(frmMain.MySettings.ProcedureSetPath, "PROC*.APL"); foreach (string proc in procs) { Dictionary procAPL = new Dictionary(); FileInfo myFile = new FileInfo(proc); FileStream fs = myFile.OpenRead(); BinaryReader br = new BinaryReader(fs); byte[] myBuff = new byte[myFile.Length]; br.Read(myBuff, 0, (int)myFile.Length); br.Close(); fs.Close(); int offset = 0; while (offset < myBuff.Length) { string recnum = Encoding.Default.GetString(myBuff, offset, 8); int applicability = BitConverter.ToInt32(myBuff, offset + 8); string applicabilityToStr = string.Format("{0:X8}", applicability); //4294967296 if (!procAPL.ContainsKey(recnum)) procAPL.Add(recnum, applicabilityToStr); else if (procAPL[recnum] != applicabilityToStr) procAPL[recnum] = applicabilityToStr; offset += 12; } procAPLs.Add(proc, procAPL); } //end get apl dictionary rv = true; return rv; } private bool CreateScopes() { string iniFile = string.Format(@"{0}\PROC.ini", frmMain.MySettings.ProcedureSetPath); TextReader tr = File.OpenText(iniFile); string line = string.Empty; while (!line.StartsWith("Name=")) line = tr.ReadLine(); tr.Close(); string[] parts = line.Split('='); string[] scopes = parts[1].Split(','); foreach (string scope in scopes) Console.WriteLine(scope); return true; } } }