ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.09.2019
Просмотров: 186
Скачиваний: 1
â 3 РегÑлÑÑнÑе вÑÑажениÑ, аÑÑибÑÑÑ Ð²Ð°Ð»Ð¸Ð´Ð°Ñии, менÑ, панели
инÑÑÑÑменÑов, ÑÑÑоки ÑоÑÑоÑниÑ
Ðадание
ÐзмениÑе ÑÑнкÑионалÑноÑÑÑ Ð¿ÑедÑдÑÑей лабоÑаÑоÑной ÑабоÑÑ
добавиÑÑ Ð½Ð° ÑоÑÐ¼Ñ Ð¼ÐµÐ½Ñ Ñ Ð¿ÑнкÑами:
1)
«ÐоиÑк» (Ð¿Ð¾Ð´Ð¼ÐµÐ½Ñ ÑказаннÑми в ваÑианÑаÑ
) РпоиÑке, кÑоме поиÑка
на полное ÑооÑвеÑÑÑвие, ÑеализоваÑÑ Ð¿Ð¾Ð¸Ñк по на оÑнове ÑегÑлÑÑнÑÑ
вÑÑажений (диапазон, налиÑие бÑкв на опÑеделеннÑÑ
позиÑиÑÑ
,
ÑиÑло повÑоÑений Ñимволов и Ñ.п.). РезÑлÑÑаÑÑ Ð¿Ð¾Ð¸ÑковÑÑ
запÑоÑов
можно вÑводиÑÑ Ð² оÑелÑное окно. СделайÑе оÑделÑное окно длÑ
конÑÑÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð¸ÑковÑÑ
запÑоÑов (в Ñом ÑиÑле и по неÑколÑким
кÑиÑеÑиÑм).
2)
«СоÑÑиÑовка по» (годÑ, Ñамилии, ÑпеÑиалÑноÑÑи и Ñ.п.) ÐÐ»Ñ Ð¿Ð¾Ð¸Ñка,
ÑоÑÑиÑовки и модиÑикаÑий иÑполÑзÑйÑе LINQ to XML.
3)
«СоÑ
ÑаниÑÑ» ÑезÑлÑÑаÑÑ Ð¿Ð¾Ð¸Ñка и ÑоÑÑиÑовок в оÑделÑнÑÑ
xml.
ÐÑполÑзÑйÑе ÑеÑиализаÑиÑ.
4)
«РпÑогÑамме». ÐÑи вÑбоÑе пÑнкÑа Ð¼ÐµÐ½Ñ Â«Ð Ð¿ÑогÑамме» должно
вÑводиÑÑÑÑ Ð¾ÐºÐ½Ð¾ ÑообÑений Ñ Ð²ÐµÑÑией и ФÐÐ ÑазÑабоÑÑика.
ÐÑи валидаÑии вводимÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¸ÑполÑзÑйÑе ÑÑнкÑионал в виде
аÑÑибÑÑов из пÑоÑÑÑанÑÑва имен System.ComponentModel.DataAnnotations и
клаÑÑов ValidationResult, Validator и ValidationContext. ÐÑполÑзÑйÑе аÑÑибÑÑÑ
RegularExpression, Range, ÑвойÑÑво ErrorMessage и Ñ.д. СоздайÑе Ñвой аÑÑибÑÑ
валидаÑии.
ÐобавиÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°Ð¼Ð¸ дÑблиÑÑÑÑими командÑ
«поиÑка», «ÑоÑÑиÑовки», «оÑиÑÑиÑÑ», «ÑдалиÑÑ», «впеÑед», «назад». ÐобавиÑÑ
возможноÑÑÑ ÑкÑÑваÑÑ Ð¸ закÑеплÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов.
ÐобавиÑÑ ÑÑÑÐ¾ÐºÑ ÑоÑÑоÑÐ½Ð¸Ñ Ñ ÑеÑÑовÑми ÑообÑениÑми о ÑекÑÑем
колиÑеÑÑве обÑекÑов и вÑполнÑемом дейÑÑвии, ÑекÑÑей даÑой и вÑеменем.
ÐаÑианÑ
Ðадание
1, 9
ÐоиÑк по: ФÐÐ (по ÑаблонÑ), ÑпеÑиалÑноÑÑи, кÑÑÑÑ, ÑÑеднемÑ
Ð±Ð°Ð»Ð»Ñ (>n , диапазон). СоÑÑиÑовка по ÑÑÐ°Ð¶Ñ ÑабоÑÑ Ð¸ кÑÑÑÑ.
2, 10
ÐоиÑк по: номеÑÑ, ФÐÐ, баланÑÑ, ÑÐ¸Ð¿Ñ Ð²ÐºÐ»Ð°Ð´Ð°. СоÑÑиÑовка по
ÑÐ¸Ð¿Ñ Ð²ÐºÐ»Ð°Ð´Ð° и даÑе оÑкÑÑÑÐ¸Ñ ÑÑеÑа
3, 11
ÐоиÑк по: лекÑоÑÑ, ÑемеÑÑÑÑ Ð¸ кÑÑÑÑ. СоÑÑиÑовка по колиÑеÑÑвÑ
лекÑий и Ð²Ð¸Ð´Ñ ÐºÐ¾Ð½ÑÑолÑ.
4, 12
ÐоиÑк по: издаÑелÑÑÑвÑ, Ð³Ð¾Ð´Ñ Ð¸Ð·Ð´Ð°Ð½Ð¸Ñ, Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ ÑÑÑаниÑ.
СоÑÑиÑовка по авÑоÑÑ(ам), даÑе поÑÑÑплениÑ.
5, 13
ÐоиÑк по: клаÑÑÑ, годÑ, конÑиненÑÑ. СоÑÑиÑовка по кÑÑаÑоÑÑ, даÑе
поÑÑÑплениÑ
6, 14
ÐоиÑк по пÑоизводиÑÐµÐ»Ñ Ð¸ модели пÑоÑеÑÑоÑа. СоÑÑиÑовка по
ÑаÑÑоÑе ÑабоÑÑ Ð¿ÑоÑеÑÑоÑа, ÑазмеÑÑ ÐÐУ.
7, 15
ÐоиÑк
по:
авиакомпании,
ÑипÑ,
колиÑеÑÑвÑ
меÑÑ,
гÑÑзоподÑемноÑÑи. СоÑÑиÑовка по ФÐРкомандиÑа, заÑем пилоÑа,
даÑе поÑледнего ÑеÑ
. обÑлÑживаниÑ
8, 16
ÐоиÑк по: названиÑ, ÑипÑ, Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ ÑенÑ. СоÑÑиÑовка по даÑе
пÑоизводÑÑва, ÑÑÑане пÑоизводиÑелÑ, заÑем по названиÑ
ÐÑаÑкие ÑеоÑеÑиÑеÑкие ÑведениÑ
РегÑлÑÑнÑе вÑÑажениÑ
РегÑлÑÑнÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ â ÑÑо ÑзÑк Ð´Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑекÑÑа и внеÑÐµÐ½Ð¸Ñ Ð² него
изменений. РегÑлÑÑное вÑÑажение пÑименÑеÑÑÑ Ðº ÑÑÑоке. РезÑлÑÑаÑом
пÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑвлÑеÑÑÑ ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ ÑÑÑоки, либо Ð½Ð¾Ð²Ð°Ñ ÑÑÑока, либо гÑÑппÑ
подÑÑÑок, либо логиÑеÑкий ÑезÑлÑÑÐ°Ñ â в завиÑимоÑÑи Ð¾Ñ Ñого, ÐºÐ°ÐºÐ°Ñ Ð¾Ð¿ÐµÑаÑиÑ
вÑполнÑеÑÑÑ.
РегÑлÑÑнÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¾ÑÐµÐ½Ñ Ð¼Ð¾ÑнÑй и в Ñо же вÑÐµÐ¼Ñ Ð¿ÑоÑÑой
меÑ
анизм обÑабоÑки ÑекÑÑовой инÑоÑмаÑии. Ðа даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ
полно они ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ Ð² ÑзÑк Perl, Ñ
оÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð¸ гоÑаздо ÑанÑÑе.
ÐÐ»Ñ ÑабоÑÑ Ñ ÑегÑлÑÑнÑми вÑÑажениÑми в С# ÑÑÑеÑÑвÑÐµÑ ÐºÐ»Ð°ÑÑ
System.Text.RegularExpressions.Regex. Ðногие меÑÐ¾Ð´Ñ ÑÑого клаÑÑа Ñакже
ÑÑÑеÑÑвÑÑÑ Ð² двÑÑ
веÑÑиÑÑ
â ÑÑаÑиÑеÑкой и ÑкземплÑÑа.
У клаÑÑа два конÑÑÑÑкÑоÑа Ñ Ð¾Ð´Ð½Ð¸Ð¼ паÑамеÑÑом ÑÑÑокового Ñипа,
опÑеделÑÑÑего пÑавило обÑабоÑки и Ñ Ð´Ð²ÑÐ¼Ñ â вÑоÑой в ÑÑом ÑлÑÑае задаеÑ
паÑамеÑÑÑ ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ (аналог опÑий в Perl).
Ð ÑегÑлÑÑнÑÑ Ð²ÑÑажениÑÑ ÑÑÑеÑÑвÑÐµÑ Ð¿Ð¾Ð½ÑÑие «меÑоÑимвол», ÑÑо
аналог ÑпÑавлÑÑÑей поÑледоваÑелÑноÑÑи в ÑÑÑоке. ÐÑли нам необÑ
одим
Ñимвол как он еÑÑÑ, Ñо пеÑед ним ÑÑавиÑÑÑ Ð¾Ð±ÑаÑÐ½Ð°Ñ Ð½Ð°ÐºÐ»Ð¾Ð½Ð½Ð°Ñ ÑеÑÑа.
ÐекоÑоÑÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ð°Ð¾Ð±Ð¾ÑÐ¾Ñ Ð½Ð°ÑинаÑÑÑÑ Ñ Ð¾Ð±ÑаÑной наклонной ÑеÑÑÑ.
Ðменно по ÑÑÐ¾Ð¼Ñ Ð´Ð»Ñ Ð Ð Ñ C# лÑÑÑе иÑполÑзоваÑÑ Ð´Ð¾ÑловнÑе ÑÑÑоки.
() â опÑеделение гÑÑппÑ
| - задание пеÑеÑиÑлениÑ
{n, m} â пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÐºÑаÑноÑÑи. РобÑем виде
колиÑеÑÑво болÑÑе или Ñавно n, но менÑÑе или Ñавное m. {2, 7}
СÑÑеÑÑвÑÑÑ ÑаÑÑнÑе ÑлÑÑаи: {n,} â не менее, {,m} â не более, Ñовно â
{n}, а Ñакже меÑаÑимволÑ
* аналогиÑен {0,}
+ аналогиÑен {1,}
? аналогиÑен {0,1}
^ - наÑало ÑÑÑоки
$ - ÐºÐ¾Ð½ÐµÑ ÑÑÑоки
[] â обознаÑение клаÑÑа Ñимволов
[abcxyz] â обознаÑаÑÐµÑ Ð»Ñбой из Ñимволов клаÑÑа,
[a-cx-y], [a-z], â можно иÑполÑзоваÑÑ Ð¸Ð½ÑеÑвалÑ
\d âÑиÑловой Ñимвол аналог[0-9]
\D â неÑиÑловой Ñимвол (РегÑлÑÑнÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑегиÑÑÑозавиÑимÑ)
\w â алÑавиÑно-ÑиÑÑовой Ñимвол или знак подÑеÑÐºÐ¸Ð²Ð°Ð½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¾Ð³ [a-zA-
Z_]
\W â не алÑавиÑно-ÑиÑÑовой Ñимвол или знак подÑеÑкиваниÑ
\s â пÑобел
\S â не пÑобел
Regex r1 =
new
Regex(@" |, |,");
string
[]a3 = r1.Split(s5);
foreach
(
string
s
in
a3)
Console.WriteLine(s);
ÐеÑод Split РРаналогиÑен ÑÑÑоковомÑ, но можно задаÑÑ ÑазделиÑели
ÑоÑÑоÑÑие более Ñем из одного Ñимвола (ÑÑÑоки).
ÐÐ»Ñ Ð¿Ð¾Ð¸Ñка в ÑÑÑоке ÑÑÑеÑÑвÑÑÑ Ð´Ð²Ð° меÑода Match â иÑÐµÑ Ð¿ÐµÑвое
вÑ
ождение и Matches â иÑÐµÑ Ð²Ñе вÑ
ождениÑ. ÐеÑвÑй возвÑаÑÐ°ÐµÑ Ð¾Ð±ÑÐµÐºÑ ÐºÐ»Ð°ÑÑа
Match, вÑоÑой - коллекÑÐ¸Ñ MatchCollection. ÐÐ»Ñ Ð²ÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð³ÑÑпп, как Ñже
говоÑилоÑÑ, иÑполÑзÑÑÑÑÑ ÐºÑÑглÑе Ñкобки
То ÑÑо в кÑÑглÑÑ ÑÐºÐ¾Ð±ÐºÐ°Ñ Ð¸ бÑÐ´ÐµÑ Ð·Ð°Ð½Ð¾ÑиÑÑÑ Ð² коллекÑиÑ
MatchCollection.
Regex r2 =
new
Regex(@"(\w+)");
MatchCollection mc = r2.Matches(s5);
foreach
(Match m
in
mc)
Console.WriteLine(m.Value);
С помоÑÑÑ ÑегÑлÑÑнÑÑ
вÑÑажений можно пÑовеÑÑÑÑ ÑÑÑÐ¾ÐºÑ Ð½Ð°
ÑооÑвеÑÑÑвие какомÑ-либо ÑоÑмаÑÑ.