public void Load() { try { if (File.Exists(FilePath)) { data = this.iniParser.ReadFile(FilePath, encoding); } else if (DefaultPath != null && File.Exists(DefaultPath)) { data = this.iniParser.ReadFile(DefaultPath, encoding); } else { data = new IniData(); } } catch (IniParser.Exceptions.ParsingException exc) { // Add the path to the exception (since IniParser doesn't do this) and throw again: // throw new IniParser.Exceptions.ParsingException($"{Path} couldn't be parsed: {e.Message}", e); throw IniParsingException.CreateException(exc, FilePath); } UpdateLastModifiedDate(); }
public static DialogResult OpenDialog(IniParsingException exc) { FormIniError form = new FormIniError(); form.Exception = exc; form.labelErrorMessage.Text = exc.Message; form.labelFileName.Text = exc.FileName; form.labelLineNumber.Text = exc.LineNumber.ToString(); // Fill rich text box: StreamReader reader = File.OpenText(exc.FilePath); int lineNumber = 0; while (!reader.EndOfStream) { string line = reader.ReadLine(); if (line == null) { break; } lineNumber++; string lineNumStr = $"{lineNumber} ".PadLeft(4); if (lineNumber == exc.LineNumber) { form.richTextBox.AppendRichText(lineNumStr, false, Color.Red); form.richTextBox.AppendRichText(line.PadRight(48), true, Color.White, Color.Red); } else if (Math.Abs(lineNumber - exc.LineNumber) <= 3) { form.richTextBox.AppendRichText(lineNumStr, false, Color.FromArgb(120, 120, 120)); form.richTextBox.AppendRichText(line, true); } } reader.Close(); form.HideDetails(); return(form.ShowDialog()); }