Exemplo n.º 1
0
        private MirandaBootConfiguration()
        {
            IniStructure = IniStructure.ReadIni(MirandaEnvironment.MirandaBootIniPath);

            if (IniStructure == null) 
                return;

            string[] keyNames = IniStructure.GetKeys(RoamieCategory);

            foreach (string keyName in keyNames)
            {
                int intValue;

                switch (keyName)
                {
                    case StartupOptionKey:
                        StartupOption =
                            (StartupOption)
                            Enum.Parse(typeof (StartupOption), IniStructure.GetValue(RoamieCategory, StartupOptionKey));
                        break;
                    case ProfileKey:
                        Profile =
                            RoamiePlugin.Singleton.RoamingContext.Configuration.ProfileManager.Profiles.Find(
                                IniStructure.GetValue(RoamieCategory, ProfileKey));
                        break;
                    case PublicPcKey:
                        if (Int32.TryParse(IniStructure.GetValue(RoamieCategory, PublicPcKey), out intValue))
                            PublicPc = Convert.ToBoolean(intValue);
                        break;
                    case SandboxModeKey:
                        if (Int32.TryParse(IniStructure.GetValue(RoamieCategory, SandboxModeKey), out intValue))
                            SandboxMode = Convert.ToBoolean(intValue);
                        break;
                }
            }
        }
Exemplo n.º 2
0
		public static IniStructure InterpretIni(string Data)
		{
			IniStructure IniData = new IniStructure();
			string[] Lines = RemoveAndVerifyIni(DivideToLines(Data));
			// Divides the Data in lines, removes comments and empty lines
			// and verifies if the ini is not corrupted
			// Returns null if it is.
			if (Lines == null)
				return null;

			if (IsLineACategoryDef(Lines[0]) != LineType.Category)
			{
				return null;
				// Ini is faulty - does not begin with a categorydef
			}
			string CurrentCategory = "";
			foreach (string line in Lines)
			{
				switch (IsLineACategoryDef(line))
				{
					case LineType.Category:	// the line is a correct category definition
						string NewCat = line.Substring(1,line.Length - 2);
						IniData.AddCategory(NewCat); // adds the category to the IniData
						CurrentCategory = NewCat;
						break;
					case LineType.NotACategory: // the line is not a category definition
						string[] keyvalue = GetDataFromLine(line);
						IniData.AddValue(CurrentCategory, keyvalue[0], keyvalue[1]);
						// Adds the key-value to the current category
						break;
					case LineType.Faulty: // the line is faulty
						return null;
				}
			}
			return IniData;
		}
Exemplo n.º 3
0
		private static string CreateData(IniStructure IniData, string comment)
		{	//Iterates through all categories and keys and appends all data to Data
			int CategoryCount = IniData.GetCategories().Length;
			int[] KeyCountPerCategory = new int[CategoryCount];
			string Data = comment;
			string[] temp = new string[2]; // will contain key-value pair
			
			for (int i = 0; i < CategoryCount; i++) // Gets keycount per category
			{
				string CategoryName = IniData.GetCategories()[i];
				KeyCountPerCategory[i] = IniData.GetKeys(CategoryName).Length;
			}

			for (int catcounter = 0; catcounter < CategoryCount; catcounter++)
			{
				Data += "\r\n[" + IniData.GetCategoryName(catcounter) + "]\r\n"; 
				// writes [Category] to Data
				for (int keycounter = 0; keycounter < KeyCountPerCategory[catcounter]; keycounter++)
				{
					temp[0] = IniData.GetKeyName(catcounter, keycounter);
					temp[1] = IniData.GetValue(catcounter, keycounter);
					Data += temp[0] + "=" + temp[1] + "\r\n";
					// writes the key-value pair to Data
				}
			}
			return Data;
		}
Exemplo n.º 4
0
		private static string CreateData(IniStructure IniData)
		{
			return CreateData(IniData,"");
		}
Exemplo n.º 5
0
		/// <summary>
		/// Writes an IniStructure to a file without a comment.
		/// </summary>
		/// <param name="IniData">The contents to write</param>
		/// <param name="Filename">The complete path and name of the file</param>
		/// <returns></returns>
		public static bool WriteIni(IniStructure IniData, string Filename)
		{
			string DataToWrite = CreateData(IniData);
			return WriteFile(Filename, DataToWrite);
		}
Exemplo n.º 6
0
		/// <summary>
		/// Writes an IniStructure to a file with a comment.
		/// </summary>
		/// <param name="IniData">The contents to write</param>
		/// <param name="Filename">The complete path and name of the file</param>
		/// <param name="comment">Comment to add</param>
		/// <returns></returns>
		public static bool WriteIni(IniStructure IniData, string Filename, string comment)
		{
			string DataToWrite = CreateData(IniData, BuildComment(comment));
			return WriteFile(Filename, DataToWrite);
		}