Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> считывание значений с помощью регулярных выражений 
:(
    Опции темы
TicTak
Дата 4.10.2005, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 2.3.2005

Репутация: нет
Всего: 1



есть ини файл, с которого я читаю настройки, следующего формата:
[имя свойства] [параметр1] [параметр2]
я пытаюсь с него считать эти параметры так:
Код

StreamReader iniFile=new StreamReader("settings.ini");
Regex rx = new Regex(@"\w");
while(iniFile.Peek()>-1)
{
    MatchCollection mc=rx.Matches(iniFile.ReadToEnd());
    iniProp=new String[mc.Count,3];
    int mItem=0;
    foreach(Match m in mc)
    {
        for(int i=0;i<3;i++)
        {
            iniProp[mItem,i]=m.ToString();
        }                                        
    }

}

но что-то не так, и длина масива 51, хотя должен быть только 6 (два свойства*три значения)
правильно, я вообще задаю параметр \w для поиска значений между пробелами?
Код

Regex rx = new Regex(@"\w");

PM   Вверх
stab
Дата 4.10.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Регулярное выражение правильное. Наверное проблема в содержимом settings.ini, выложи его.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
TicTak
Дата 5.10.2005, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 2.3.2005

Репутация: нет
Всего: 1



Содержимое пока у меня такое:
свойство1 параметр11 параметр12
свойство2 параметр21 параметр22

Значение у iniProp[0,*] - 1,iniProp[1,*] - 1, iniProp[2,*] - 1, iniProp[3,*] - 1, iniProp[4,*] - 2, iniProp[5,*] - 2, iniProp[6,*] - 2, iniProp[7,*] - 1, iniProp[8,*] - 2, iniProp[9,*] - 2, где * - 0-2.
Если внимательно посмотреть, то можно заметить, что это последние цифры.

Кстати, извиняюсь, в первом примере забыл поставить mItem++:
Код

foreach(Match m in mc)    
{    
    for(int i=0;i<3;i++)    
    {    
        iniProp[mItem,i]=m.ToString();    
    } 
    mItem++;                                        
}


Это сообщение отредактировал(а) TicTak - 5.10.2005, 10:32
PM   Вверх
stab
Дата 6.10.2005, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



В общем что-то я стормозил smile, конечно не правильное выражение, так правильно:

Код

            Regex reg = new Regex(@"(\w+)");
            for (Match match = reg.Match(@"свойство1 параметр11 параметр12
                свойство2 параметр21 параметр22"); match.Success; match = match.NextMatch())
            {
                MessageBox.Show(match.Groups[1].Value);
            }




--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
TicTak
Дата 6.10.2005, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 2.3.2005

Репутация: нет
Всего: 1



Пасибо большое.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.