Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static void wyciagnijnumery(List<dana> dane, dana _d, string[] numery)
- {
- foreach (var numer in numery)
- {
- var d = _d.Clone();
- doma dm = new doma();
- dm.min_a = ' ';
- dm.max_a = ' ';
- int result;
- if (int.TryParse(numer, out result))
- {
- dm.min_n = result;
- dm.max_n = result;
- dane.Add(d);
- }
- else
- {
- if (_d.ulica == "ลนRรDลO MARII@ ")
- _d.ulica += "";
- var m = r.Match(numer);
- if (m.Success)
- {
- if (m.Groups["nr_sl"].Value != "")
- dm.min_a = m.Groups["nr_sl"].Value[0];
- if (m.Groups["nr_el"].Value != "")
- dm.max_a = m.Groups["nr_el"].Value[0];
- if (m.Groups["nr_s"].Value != "")
- dm.min_n = int.Parse(m.Groups["nr_s"].Value);
- if (m.Groups["nr_e"].Value != "")
- dm.max_n = int.Parse(m.Groups["nr_e"].Value);
- if (m.Groups["nr_dk"].Value != "")
- dm.max_n = 9999;
- if (m.Groups["nr_parz"].Value != "")
- switch (m.Groups["nr_parz"].Value[0])
- {
- case 'N': dm.typ = doma.nrtyp.n; break;
- case 'P': dm.typ = doma.nrtyp.p; break;
- }
- if (dm.typ == doma.nrtyp.p)
- {
- if (dm.min_n % 2 == 1)
- dm.min_n += 1;
- if (dm.max_n != 9999 && dm.max_n != 0 && dm.max_n % 2 == 1)
- dm.max_n -= 1;
- }
- else if (dm.typ == doma.nrtyp.n)
- {
- if (dm.min_n % 2 == 0)
- dm.min_n += 1;
- if (dm.max_n != 9999 && dm.max_n != 0 && dm.max_n % 2 == 0)
- dm.max_n -= 1;
- }
- if (dm.min_n != 0 && dm.max_n == 0)
- dm.max_n = dm.min_n;
- if (dm.min_a != ' ' && dm.max_a == ' ')
- dm.max_a = dm.min_a;
- }
- else
- Console.WriteLine("! " + numer);
- }
- if (dm.typ != doma.nrtyp.b)
- {
- if (!domatab.Contains(dm))
- domatab.Add(dm);
- d.idnumeru = domatab.IndexOf(dm);
- dane.Add(d);
- }
- else
- {
- int oldmin = dm.min_n, oldmax = dm.max_n;
- if (dm.min_n % 2 == 0)
- dm.min_n += 1;
- if (dm.max_n != 9999 && dm.max_n != 0 && dm.max_n % 2 == 0)
- dm.max_n -= 1;
- dm.typ = doma.nrtyp.n;
- if (!domatab.Contains(dm))
- domatab.Add(dm);
- d.idnumeru = domatab.IndexOf(dm);
- dane.Add(d);
- d = d.Clone();
- dm.min_n = oldmin;
- dm.max_n = oldmax;
- if (oldmin % 2 == 1)
- dm.min_n = oldmin + 1;
- if (oldmax != 9999 && oldmax != 0 && oldmax % 2 == 1)
- dm.max_n = oldmax - 1;
- dm.typ = doma.nrtyp.p;
- if (!domatab.Contains(dm))
- domatab.Add(dm);
- d.idnumeru = domatab.IndexOf(dm);
- dane.Add(d);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement