public void parse() { Dictionary <int, int> pc_line = new Dictionary <int, int>(); Dictionary <int, int> line_pc = new Dictionary <int, int>(); try { totalFile = File.ReadAllLines(filePath).ToList(); foreach (string line in totalFile) { Regex regex = new Regex(@"(^([\d|\w]{4})\s([\d|\w]{4})\s+(\d+).*$)"); Match match = regex.Match(line); string commandCode = match.Groups[3].ToString(); if (commandCode != "") { int adress = int.Parse(match.Groups[2].ToString(), NumberStyles.HexNumber); int lineNumber = int.Parse(match.Groups[4].ToString(), NumberStyles.Integer); pc_line.Add(adress, lineNumber); line_pc.Add(lineNumber, adress); rom.Add(int.Parse(commandCode, System.Globalization.NumberStyles.HexNumber)); } } romInstance.setRom(rom); GUI_Simu.getDictPcToLine(pc_line); GUI_Simu.getDictLineToPc(line_pc); } catch (Exception ex) //invalid filepath { MessageBox.Show(ex.ToString()); } }