//implement IComparable public int CompareTo(object obj) { // prüfen, ob der Parameter ein null-Verweis ist if (obj == null) { return(1); } // prüfen, ob beide Typen gleich sind if (obj.GetType() != this.GetType()) { throw new ArgumentException("Ungültiger Vergleich"); } // Vergleich der beiden Objekte AlarmHistoryItem val = (AlarmHistoryItem)obj; return(this.Date.CompareTo(val.Date)); }
public void ReadAlarmFile() { //Read alarm file string strContent = ""; StreamReader srAlarmFile = new StreamReader(m_strFilename, System.Text.Encoding.ASCII); strContent = srAlarmFile.ReadToEnd(); srAlarmFile.Close(); //split in lines string[] strSep = { "\r\n" }; string[] strArr = strContent.Split(strSep, StringSplitOptions.None); //separate alarm history items int i = 0, AlarmType = -1; string AlarmDataItem = ""; int AlarmSubLine = 0; int ParseResult = -1; AlarmHistoryItems.Clear(); for (int j = 0; j < strArr.Length; j++) { if (strArr[j].Contains(m_strAlarmType[i])) { AlarmType = i; i++; } else if (strArr[j].Length == 0) { continue; } else if (int.TryParse(strArr[j], out ParseResult)) { continue; } else if (strArr[j].Substring(0, 2) == @"//") { continue; } else { strArr[j] = CheckLineForInternalComma(strArr[j]); if (AlarmSubLine == 0) { AlarmDataItem = strArr[j]; AlarmSubLine = 1; } else if (AlarmSubLine == 1) { AlarmDataItem = AlarmDataItem + strArr[j]; AlarmSubLine = 2; } else if (AlarmSubLine == 2) { AlarmDataItem = AlarmDataItem + "," + strArr[j] + "," + m_strAlarmType[AlarmType]; AlarmSubLine = 0; AlarmHistoryItem almData = new AlarmHistoryItem(AlarmDataItem); AlarmHistoryItems.Add(almData); } } } AlarmHistoryItems.Sort(); AlarmHistoryItems.Reverse(); }