Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

AutoIT



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
static bool Loaded = false;
        static string FileName;
        static string[] StringsInINI;
        static string[,,] ReadyString;
 
public static string[] ReadNames(string ININame)
        {
            if (Loaded == false)
                Load(ININame);
            var Temp = ReadyString;
            string[] ReturnedArray = new string[Convert.ToInt32(Temp[0, 0, 0]) + 1];
            ReturnedArray[0] = Temp[0, 0, 0];
            for (int i = 1; i <= Convert.ToInt32(Temp[0, 0, 0]); i++)
            {
                ReturnedArray[i] = Temp[i, 1, 0];
            }
            return ReturnedArray;
        }
 
public static bool Load(string ININame)
        {
            try
            {
                StringsInINI = ReadINIFile(ININame);
                ReadyString = ProgrammRead(ININame);
                Loaded = true;
                FileName = ININame;
                return true;
            }
            catch
            {
                return false;
            }
        }
 
#region Чтение файла в память
        private static string[] ReadINIFile(string ININame)
        {
            string Temp;
            int Count = 0;
            string[] STRM = new string[1000000];
            Encoding Enc = Encoding.GetEncoding(1251);
            StreamReader SR = new StreamReader(ININame, Enc);
            while (SR.Peek() != -1)
            {
                Temp = SR.ReadLine();
                if (Temp != "")
                {
                    Count += 1;
                    STRM[Count] = Temp;
                }
            }
            SR.Close();
            STRM[0] = Count.ToString();
            string[] ReturnedArray = new string[Count + 1];
            ReturnedArray[0] = Count.ToString();
            for (int i = 1; i <= Count; i++)
            {
                STRM[i] = STRM[i].Trim();
                ReturnedArray[i] = STRM[i];
            }
            return ReturnedArray;
        }
        private static string[,,] ProgrammRead(string ININame)
        {
            int CountOfStrings = Convert.ToInt32(StringsInINI[0]);
            int Count3 = 0, Count4 = 0;
            string[, ,] INIMembers = new string[CountOfStrings, 2, CountOfStrings];
            string[] Temp = new string[10];
            char[] CharsToTrim = { '[', ']' };
            char[] CharsToSplit = { '=', ';' };
            for (int i = 1; i <= CountOfStrings; i++)
            {
                if ((StringsInINI[i].Substring(0, 1) == "[") & (StringsInINI[i].Substring(StringsInINI[i].Length - 1, 1) == "]"))
                {
                    Count3 += 1;
                    StringsInINI[i] = StringsInINI[i].TrimEnd(CharsToTrim);
                    StringsInINI[i] = StringsInINI[i].TrimStart(CharsToTrim);
                    INIMembers[Count3, 1, 0] = StringsInINI[i];
                    int Count1 = i + 1, Count2 = 0;
                    try
                    {
                        while ((StringsInINI[Count1].Substring(0, 1) != "[") & (StringsInINI[Count1].Substring(StringsInINI[Count1].Length - 1, 1) != "]"))
                        {
                            if ((StringsInINI[Count1] != "") & (StringsInINI[Count1].Substring(0, 1) != ";"))
                            {
                                Temp = StringsInINI[Count1].Split(CharsToSplit);
                                INIMembers[Count3, 0, Count2 + 1] = Temp[0];
                                INIMembers[Count3, 1, Count2 + 1] = Temp[1];
                                Count2 += 1;
                                Count1 += 1;
                            }
                        }
                    }
                    catch { };
                    if (Count4 < Count2) Count4 = Count2;
                    INIMembers[Count3, 0, 0] = Count2.ToString();
                }
            }
            string[, ,] ReturnedArray = new string[Count3 + 1, 2, Count4 + 1];
            ReturnedArray[0, 0, 0] = Count3.ToString();
            ReturnedArray[0, 1, 0] = Path.GetFileName(ININame);
            for (int i = 1; i <= Count3; i++)
            {
                ReturnedArray[i, 0, 0] = INIMembers[i, 0, 0];
                ReturnedArray[i, 1, 0] = INIMembers[i, 1, 0];
                for (int j = 1; j <= Convert.ToInt32(INIMembers[i, 0, 0]); j++)
                {
                    ReturnedArray[i, 0, j] = INIMembers[i, 0, j];
                    ReturnedArray[i, 1, j] = INIMembers[i, 1, j];
                }
            }
            return ReturnedArray;
        }
        #endregion

Всего записей: 77 | Зарегистр. 04-12-2008 | Отправлено: 12:09 01-05-2010 | Исправлено: AutoIT, 12:15 01-05-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru