Масс замена

APXOHT

Client
Регистрация
27.12.2013
Сообщения
881
Благодарностей
189
Баллы
43
Прошу подсказать почему код
Код:
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Понедельник","1");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Вторник","2");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Среда","3");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Четверг","4");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Пятница","5");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Суббота","6");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Воскресение","7");
заменяет переменную dn_segonya со значением Пятница на Пятница в переменной dn_segonya_chislo

а одиночная версия
Код:
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Пятница","5");
с Пятница на 5

Как можно сделать что бы в первом случае нормально отрабатывал поиск и замена того совпадения что попадется?
Спасибо!
 

Вложения

Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Ну можно так
C#:
if(project.Variables["dn_segonya"].Value == "Понедельник")
{
    project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Понедельник","1");
    return "ok";
}
else if(project.Variables["dn_segonya"].Value == "Вторник")
{
    project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Вторник","2");
    return "ok";
}
или ложить в список дни недели например через разделитель, потом сравнивать в цикле и уже присваивать то значение которое совпало
 
  • Спасибо
Реакции: APXOHT

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Прошу подсказать почему код
Код:
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Понедельник","1");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Вторник","2");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Среда","3");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Четверг","4");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Пятница","5");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Суббота","6");
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Воскресение","7");
заменяет переменную dn_segonya со значением Пятница на Пятница в переменной dn_segonya_chislo

а одиночная версия
Код:
project.Variables["dn_segonya_chislo"].Value = project.Variables["dn_segonya"].Value.Replace("Пятница","5");
с Пятница на 5

Как можно сделать что бы в первом случае нормально отрабатывал поиск и замена того совпадения что попадется?
Спасибо!

Код:
string day = project.Variables["dn_segonya_chislo"].Value;
return day.Replace("Понедельник","1").Replace("Вторник","2").Replace("Среда","3").Replace("Четверг","4").Replace("Пятница","5").Replace("Суббота","6").Replace("Воскресение","7");
 
  • Спасибо
Реакции: APXOHT

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Код:
string day = project.Variables["dn_segonya_chislo"].Value;
return day.Replace("Понедельник","1").Replace("Вторник","2").Replace("Среда","3").Replace("Четверг","4").Replace("Пятница","5").Replace("Суббота","6").Replace("Воскресение","7");
чёт из головы вылетел такой вариант, недавно встретилась статья как чувак делал через Replace замену букв, и каждой замене букв присваивал Replace))), но там строк не хило вышло))
 
  • Спасибо
Реакции: APXOHT

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
C#:
return "Понедельник|1,Вторник|2,Среда|3,Четверг|4,Пятница|5,Суббота|6,Воскресение|7".Split(',').Where(x => x.Contains(project.Variables["dn_segonya"].Value)).FirstOrDefault().Split('|')[1];
 
  • Спасибо
Реакции: ssXXXss и APXOHT

APXOHT

Client
Регистрация
27.12.2013
Сообщения
881
Благодарностей
189
Баллы
43
Ух. Спасибо всем. Счас буду тестить.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
C#:
return "Понедельник|1,Вторник|2,Среда|3,Четверг|4,Пятница|5,Суббота|6,Воскресение|7".Split(',').Where(x => x.Contains(project.Variables["dn_segonya"].Value)).FirstOrDefault().Split('|')[1];
немного подукорочу))
C#:
return "Понедельник|1,Вторник|2,Среда|3,Четверг|4,Пятница|5,Суббота|6,Воскресение|7".Split(',').First(s=>s.Contains(project.Variables["dn_segonya"].Value)).Split('|')[1];
 
  • Спасибо
Реакции: APXOHT и CSS

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
немного подукорочу))
C#:
return "Понедельник|1,Вторник|2,Среда|3,Четверг|4,Пятница|5,Суббота|6,Воскресение|7".Split(',').First(s=>s.Contains(project.Variables["dn_segonya"].Value)).Split('|')[1];
Нет предела совершенству!)
C#:
return "По|1,Вт|2,Ср|3,Че|4,Пя|5,Су|6,Во|7".Split(',').First(x => x.StartsWith(project.Variables["dn_segonya"].Value.Substring(0,2))).Split('|')[1];
 
  • Спасибо
Реакции: APXOHT и ssXXXss

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
Нет предела совершенству!)
C#:
return "По|1,Вт|2,Ср|3,Че|4,Пя|5,Су|6,Во|7".Split(',').First(x => x.StartsWith(project.Variables["dn_segonya"].Value.Substring(0,2))).Split('|')[1];
Слава задротству!)
C#:
return new Regex(@"(?<=["+project.Variables["dn_segonya"].Value.Substring(3,1)+@"])[\d+]").Match("е1р2д3в4н5б6к7");
 
  • Спасибо
Реакции: APXOHT

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
в этой строке надо было по букве вставить и оригинально, по красивее регекса выглядит
C#:
return "По|1,Вт|2,Ср|3,Че|4,Пя|5,Су|6,Во|7".Split(',').First(x => x.StartsWith(project.Variables["dn_segonya"].Value.Substring(0,2))).Split('|')[1];
на
C#:
return "е|1,р|2,д|3,в|4,н|5,б|6,к|7".Split(',').First(s=>s.Contains(project.Variables["dn_segonya"].Value.Substring(3,1))).Split('|')[1];
 
  • Спасибо
Реакции: APXOHT

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)