Advertisement
hejmus

Untitled

Aug 10th, 2011
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.09 KB | None | 0 0
  1. private static void wyciagnijnumery(List<dana> dane, dana _d, string[] numery)
  2.         {
  3.             foreach (var numer in numery)
  4.             {
  5.                 var d = _d.Clone();
  6.                 doma dm = new doma();
  7.                 dm.min_a = ' ';
  8.                 dm.max_a = ' ';
  9.                 int result;
  10.                 if (int.TryParse(numer, out result))
  11.                 {
  12.                     dm.min_n = result;
  13.                     dm.max_n = result;
  14.                     dane.Add(d);
  15.                 }
  16.                 else
  17.                 {
  18.                     if (_d.ulica == "ลนRร“DลO MARII@ ")
  19.                         _d.ulica += "";
  20.                     var m = r.Match(numer);
  21.                     if (m.Success)
  22.                     {
  23.                         if (m.Groups["nr_sl"].Value != "")
  24.                             dm.min_a = m.Groups["nr_sl"].Value[0];
  25.                         if (m.Groups["nr_el"].Value != "")
  26.                             dm.max_a = m.Groups["nr_el"].Value[0];
  27.                         if (m.Groups["nr_s"].Value != "")
  28.                             dm.min_n = int.Parse(m.Groups["nr_s"].Value);
  29.                         if (m.Groups["nr_e"].Value != "")
  30.                             dm.max_n = int.Parse(m.Groups["nr_e"].Value);
  31.                         if (m.Groups["nr_dk"].Value != "")
  32.                             dm.max_n = 9999;
  33.                         if (m.Groups["nr_parz"].Value != "")
  34.                             switch (m.Groups["nr_parz"].Value[0])
  35.                             {
  36.                                 case 'N': dm.typ = doma.nrtyp.n; break;
  37.                                 case 'P': dm.typ = doma.nrtyp.p; break;
  38.                             }
  39.                         if (dm.typ == doma.nrtyp.p)
  40.                         {
  41.                             if (dm.min_n % 2 == 1)
  42.                                 dm.min_n += 1;
  43.                             if (dm.max_n != 9999 && dm.max_n != 0 && dm.max_n % 2 == 1)
  44.                                 dm.max_n -= 1;
  45.                         }
  46.                         else if (dm.typ == doma.nrtyp.n)
  47.                         {
  48.                             if (dm.min_n % 2 == 0)
  49.                                 dm.min_n += 1;
  50.                             if (dm.max_n != 9999 && dm.max_n != 0 && dm.max_n % 2 == 0)
  51.                                 dm.max_n -= 1;
  52.                         }
  53.  
  54.                         if (dm.min_n != 0 && dm.max_n == 0)
  55.                             dm.max_n = dm.min_n;
  56.                         if (dm.min_a != ' ' && dm.max_a == ' ')
  57.                             dm.max_a = dm.min_a;
  58.                     }
  59.                     else
  60.                         Console.WriteLine("! " + numer);
  61.                 }
  62.                 if (dm.typ != doma.nrtyp.b)
  63.                 {
  64.                     if (!domatab.Contains(dm))
  65.                         domatab.Add(dm);
  66.                     d.idnumeru = domatab.IndexOf(dm);
  67.                     dane.Add(d);
  68.                 }
  69.                 else
  70.                 {
  71.                     int oldmin = dm.min_n, oldmax = dm.max_n;
  72.                     if (dm.min_n % 2 == 0)
  73.                         dm.min_n += 1;
  74.                     if (dm.max_n != 9999 && dm.max_n != 0 && dm.max_n % 2 == 0)
  75.                         dm.max_n -= 1;
  76.                     dm.typ = doma.nrtyp.n;
  77.                     if (!domatab.Contains(dm))
  78.                         domatab.Add(dm);
  79.                     d.idnumeru = domatab.IndexOf(dm);
  80.                     dane.Add(d);
  81.  
  82.                     d = d.Clone();
  83.                     dm.min_n = oldmin;
  84.                     dm.max_n = oldmax;
  85.                     if (oldmin % 2 == 1)
  86.                         dm.min_n = oldmin + 1;
  87.                     if (oldmax != 9999 && oldmax != 0 && oldmax % 2 == 1)
  88.                         dm.max_n = oldmax - 1;
  89.                     dm.typ = doma.nrtyp.p;
  90.                     if (!domatab.Contains(dm))
  91.                         domatab.Add(dm);
  92.                     d.idnumeru = domatab.IndexOf(dm);
  93.                     dane.Add(d);
  94.                 }
  95.             }
  96.         }
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement