/// <summary> /// Read a data file downloaded from the FCC Univeral License System advanced search and fill the collection with its data. /// </summary> /// <param name="filename">Path to downloaded file.</param> public void ReadFile(String filename) { var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read); using (var streamReader = new StreamReader(fileStream, Encoding.UTF8)) { string line; while ((line = streamReader.ReadLine()) != null) { if (!String.IsNullOrEmpty(line)) { string[] tokens = line.Split(new char[] { '|' }, StringSplitOptions.None); if (tokens != null && tokens.Length > 4) { string typeToken = tokens[0]; string callSign = ""; if (!String.IsNullOrEmpty(typeToken)) { if (typeToken.Equals("HD")) { callSign = tokens[4]; if (!HD.ContainsKey(callSign)) { HD.Add(callSign, new TokenCollection(tokens)); } } else if (typeToken.Equals("EN")) { callSign = tokens[4]; if (!EN.ContainsKey(callSign)) { EN.Add(callSign, new TokenCollection(tokens)); } } else if (typeToken.Equals("HS")) { callSign = tokens[3]; Tuple <HistoryRecordAction, String> actionType = GetHistoryActionType(tokens[5]); HistoryRecord rec = new HistoryRecord() { CallSign = callSign, LicenseKey = tokens[1], Date = DateTime.ParseExact(tokens[4], "MM/dd/yyyy", CultureInfo.InvariantCulture), Action = actionType.Item1, ActionDescription = actionType.Item2 }; if (!HS.ContainsKey(callSign)) { List <HistoryRecord> recList = new List <HistoryRecord>(); recList.Add(rec); HS.Add(callSign, recList); } else { HS[callSign].Add(rec); } } else if (typeToken.Equals("AM")) { callSign = tokens[4]; if (!AM.ContainsKey(callSign)) { AM.Add(callSign, new TokenCollection(tokens)); } } else if (typeToken.Equals("SC")) { callSign = tokens[4]; if (!SC.ContainsKey(callSign)) { SC.Add(callSign, new TokenCollection(tokens)); } } else if (typeToken.Equals("CO")) { callSign = tokens[4]; if (!CO.ContainsKey(callSign)) { CO.Add(callSign, new TokenCollection(tokens)); } } else if (typeToken.Equals("LM")) { callSign = tokens[4]; if (!LM.ContainsKey(callSign)) { LM.Add(callSign, new TokenCollection(tokens)); } } } } } } } ExtractOperatorRecords(); }
// 버튼 > Save void Btn_SaveData_Click(object sender, EventArgs e) { var D1 = Properties.Settings.Default.saveData1; var D2 = Properties.Settings.Default.saveData2; var D3 = Properties.Settings.Default.saveData3; var D4 = Properties.Settings.Default.saveData4; var D5 = Properties.Settings.Default.saveData5; var D6 = Properties.Settings.Default.saveData6; var D7 = Properties.Settings.Default.saveData7; var D8 = Properties.Settings.Default.saveData8; var D9 = Properties.Settings.Default.saveData9; var D10 = Properties.Settings.Default.saveData10; var name = cbo_SaveName.Text; var lst1 = lst_L1.Items.Cast <string>().ToList(); var lst2 = lst_L2.Items.Cast <string>().ToList(); var lst3 = lst_L3.Items.Cast <string>().ToList(); var lst4 = lst_L4.Items.Cast <string>().ToList(); var lst5 = lst_L5.Items.Cast <string>().ToList(); var lst6 = lst_L5.Items.Cast <string>().ToList(); var lst7 = lst_L5.Items.Cast <string>().ToList(); var lst8 = lst_L5.Items.Cast <string>().ToList(); var lst9 = lst_L5.Items.Cast <string>().ToList(); var lst10 = lst_L5.Items.Cast <string>().ToList(); Properties.Settings.Default.saveData1 = setSaveData(D1, name, lst1); Properties.Settings.Default.saveData2 = setSaveData(D2, name, lst2); Properties.Settings.Default.saveData3 = setSaveData(D3, name, lst3); Properties.Settings.Default.saveData4 = setSaveData(D4, name, lst4); Properties.Settings.Default.saveData5 = setSaveData(D5, name, lst5); Properties.Settings.Default.saveData6 = setSaveData(D6, name, lst6); Properties.Settings.Default.saveData7 = setSaveData(D7, name, lst7); Properties.Settings.Default.saveData8 = setSaveData(D8, name, lst8); Properties.Settings.Default.saveData9 = setSaveData(D9, name, lst9); Properties.Settings.Default.saveData10 = setSaveData(D10, name, lst10); Properties.Settings.Default.Save(); StringCollection setSaveData(StringCollection SC, string Name, List <string> NewData) { var Return = new StringCollection(); var matchedData = SC.Cast <string>().ToList().Where(a => a.Split(':').First() == Name); if (matchedData.Any()) { SC.Remove(matchedData.First()); string newData = Name + ":"; for (int i = 0; i < NewData.Count; i++) { newData += NewData[i] + ":"; } SC.Add(newData); } Return = SC; return(Return); } }