ulvis.paste.net

Paste Search Dynamic
Recent pastes
CompareKey
  1. using system;
  2. using system.Collections.Generic;
  3.  
  4. public class Test
  5. {
  6.         static int CompareKey(KeyValuePair<string, string> a, KeyValuePair<string, string> b)
  7.         {
  8.             int result = a.Key.CompareTo(b.Key);
  9.             return result == 0 ? a.Value.CompareTo(b.Value) : result;
  10.         }
  11.         static bool checkSameElem(string elem, string lastElem)
  12.         {
  13.             try
  14.             {
  15.                 //elimino registrazioni inutili --> registrazioni contigue uguali a meno della data-ora
  16.                 int pos1 = elem.IndexOf("value = ");
  17.                 int pos2 = lastElem.IndexOf("value = ");
  18.                 if ((pos1 != pos2) || (pos1 == -1) || (pos2 == -1))
  19.                     return false;
  20.                 if (!elem.Substring(0, pos1).Equals(lastElem.Substring(0, pos2)))
  21.                     return false;
  22.                 Console.WriteLine(elem.Substring(pos1 + 8 + 24) + "***" + lastElem.Substring(pos1 + 8 + 24));
  23.                 if (!elem.Substring(pos1 + 8 + 24).Equals(lastElem.Substring(pos2 + 8 + 24)))
  24.                     return false;
  25.             }
  26.             catch (Exception ex)
  27.             {
  28.                 Console.WriteLine("ERRORE check: " + ex.Message);
  29.                 return false;
  30.             }
  31.             return true;
  32.         }
  33.         public static void Main()
  34.         {
  35.                 // your code goes here
  36.                 List<KeyValuePair<string, string>> listEvent = new List<KeyValuePair<string, string>>();
  37.                         listEvent.Add(new KeyValuePair<string, string>("2019-03-11 17:45:24.123","name = VAR_PROCESS value = 2019-03-11 17:45:24.123|02|0274|480152|0|020|0|1"));
  38.                         listEvent.Add(new KeyValuePair<string, string>("2019-03-11 17:45:30.000","name = VAR_PROCESS value = 2019-03-11 17:45:30.000|02|0274|480152|0|020|0|2"));
  39.                         listEvent.Add(new KeyValuePair<string, string>("2019-03-11 17:45:20.000","name = VAR_STATUS value = 2019-03-11 17:45:20.000|0|1|1|5|0"));
  40.                         listEvent.Add(new KeyValuePair<string, string>("2019-03-11 17:45:30.000","name = VAR_STATUS value = 2019-03-11 17:45:30.000|0|1|0|0|0"));
  41.             listEvent.Add(new KeyValuePair<string, string>("2019-03-11 17:45:35.000","name = VAR_PROCESS value = 2019-03-11 17:45:35.000|02|0274|480152|0|020|0|2"));
  42.                         listEvent.Add(new KeyValuePair<string, string>("2019-03-11 17:45:40.000","name = VAR_STATUS value = 2019-03-11 17:45:40.000|0|1|0|0|0"));
  43.             listEvent.Add(new KeyValuePair<string, string>("2019-03-11 17:45:50.000","name = VAR_STATUS value = 2019-03-11 17:45:50.000|0|1|0|0|0"));
  44.             try
  45.             {
  46.                 //ordino la lista per data/ora
  47.                 listEvent.Sort(CompareKey);
  48.             }
  49.             catch (Exception e)
  50.             {
  51.             }
  52.             //invio stringhe a EventLog
  53.             string lastElem = "";
  54.             foreach (KeyValuePair<string, string> elem in listEvent)
  55.             {
  56.                 try
  57.                 {
  58.                     //elimino registrazioni inutili --> registrazioni contigue uguali a meno della data-ora
  59.                     if (!checkSameElem(elem.Value, lastElem))
  60.                     {
  61.                         lastElem = elem.Value;
  62.                         Console.WriteLine(elem.Key + " --- " + elem.Value);
  63.                     }
  64.                 } catch(Exception ex)
  65.                 {
  66.                     Console.WriteLine("ERRORE: " + ex.Message);
  67.                 }
  68.             }
  69.             //pulizia della lista
  70.             listEvent.Clear();
  71.             Console.WriteLine("lista pulita");
  72.             //invio stringhe a EventLog
  73.             foreach (KeyValuePair<string, string> elem in listEvent)
  74.             {
  75.                 Console.WriteLine(elem.Key + " --- " + elem.Value);
  76.             }
  77.         }
  78. }
Parsed in 0.031 seconds