Как избавиться от ошибки "ссылка на объект не установлена на экземпляр объекта"?
Здравствуйте, я столкнулся с этой проблемой:
Object reference not set to an instance of an object..
Я попробовал следующий код, но он не работает. Он продолжает показывать мне эту ошибку.
Пожалуйста помочь.
С уважением
Аман Чаурасия
Что я уже пробовал:
this.Cursor = Cursors.WaitCursor; string UnpackDirectory = ""; string UnpackFile = ""; string SourceFolder = ""; UnpackDirectory = System.IO.Path.GetDirectoryName(StructureFileName); UnpackFile = System.IO.Path.GetFileNameWithoutExtension(StructureFileName); string EpubFolder = ""; EpubFolder = UnpackDirectory + "\\" + UnpackFile + "_Epub"; SourceFolder = EpubFolder + "\\OPS"; string StrBooKTitle = ""; StrBooKTitle = txt_BookTitle.Text; if (Regex.IsMatch(StrBooKTitle, "\n" + "|" + "\r", RegexOptions.Multiline)) { StrBooKTitle = Regex.Replace(StrBooKTitle, "\n" + "|" + "\r", "", RegexOptions.Multiline); } if (!string.IsNullOrEmpty(StrBooKTitle.Trim(' '))) { if (System.IO.Directory.Exists(SourceFolder)) { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(SourceFolder); System.IO.FileInfo[] dinfo = di.GetFiles("article_*.xml", SearchOption.TopDirectoryOnly); if (dinfo.Length > 0) { Array.Sort(dinfo, new FileNameComparer()); string StrSectionHead = ""; string StrSectionFoot = ""; string StrSectionBody = ""; StrSectionHead = StrSectionHead + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + Environment.NewLine; StrSectionHead = StrSectionHead + "<html xmlns:ncr=\"http://www.nytimes.com/NewsClientReader#\" xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:nitf=\"http://www.nytimes.com/applicationdata/xml/nitf-3-3.dtd\">" + Environment.NewLine; StrSectionHead = StrSectionHead + "<head>" + Environment.NewLine; StrSectionHead = StrSectionHead + "<title>" + StrBooKTitle + "</title>" + Environment.NewLine; StrSectionHead = StrSectionHead + "<link rel=\"stylesheet\" href=\"css/TablesAndFloats.css\" type=\"text/css\"></link>" + Environment.NewLine; StrSectionHead = StrSectionHead + "</head>" + Environment.NewLine; StrSectionHead = StrSectionHead + "<body>" + Environment.NewLine; StrSectionHead = StrSectionHead + "<div class=\"clean\"/>" + Environment.NewLine; StrSectionHead = StrSectionHead + "<div id=\"header\" class=\"masthead\">" + Environment.NewLine; StrSectionHead = StrSectionHead + "<!--<img class=\"masthead-img\" src=\"images/###.jpg\" alt=\"Images\"/>-->" + Environment.NewLine; StrSectionHead = StrSectionHead + "<div class=\"sectionName\">" + TitleTextBox.Text + "</div>" + Environment.NewLine; string dDate = ""; string dMonth = ""; string dYear = ""; dDate = DateTime.Now.Day.ToString(); if (dDate.Length == 1) { dDate = "0" + dDate; } dMonth = DateTime.Now.Month.ToString(); if (dMonth.Length == 1) { dMonth = "0" + dMonth; } dYear = DateTime.Now.Year.ToString(); StrSectionHead = StrSectionHead + "<div id=\"header_date\" class=\"masthead-date\">" + dYear + "-" + dMonth + "-" + dDate + "</div>" + Environment.NewLine; StrSectionHead = StrSectionHead + "</div>" + Environment.NewLine; StrSectionFoot = StrSectionFoot + "<div class=\"article-spacer\"/>" + Environment.NewLine; StrSectionFoot = StrSectionFoot + "</body>" + Environment.NewLine; StrSectionFoot = StrSectionFoot + "</html>"; int ArticleBodyCount = 1; string[] TempSectionStringArray = null; string TempSectionString = ""; string[] TempSectionTitleArray = null; string TempSectionTitleString = ""; int TSection = 0; int TLastSection = 0; string TArticle = ""; if (DataGridView1.RowCount > 0) { for (var irow = 0; irow < DataGridView1.RowCount; irow++) { if (DataGridView1.Rows[irow].Cells[0].Value != null) { if (Convert.ToString(DataGridView1.Rows[irow].Cells[2].Value) == "article-full-headline") { if (TLastSection != TSection) { TLastSection = TSection; if (string.IsNullOrEmpty(TempSectionString)) { TempSectionString = TempSectionString + TSection + "|" + "article_" + DataGridView1.Rows[irow].Cells[0].Value + "-" + DataGridView1.Rows[irow].Cells[1].Value; } else { TempSectionString = TempSectionString + Environment.NewLine + TSection + "|" + "article_" + DataGridView1.Rows[irow].Cells[0].Value + "-" + DataGridView1.Rows[irow].Cells[1].Value; } TArticle = "article_" + DataGridView1.Rows[irow].Cells[0].Value + "-" + DataGridView1.Rows[irow].Cells[1].Value; } else if (TArticle != "article_" + DataGridView1.Rows[irow].Cells[0].Value + "-" + DataGridView1.Rows[irow].Cells[1].Value) { if (string.IsNullOrEmpty(TempSectionString)) { TempSectionString = TempSectionString + TSection + "|" + "article_" + DataGridView1.Rows[irow].Cells[0].Value + "-" + DataGridView1.Rows[irow].Cells[1].Value; } else { TempSectionString = TempSectionString + Environment.NewLine + TSection + "|" + "article_" + DataGridView1.Rows[irow].Cells[0].Value + "-" + DataGridView1.Rows[irow].Cells[1].Value; } TArticle = "article_" + DataGridView1.Rows[irow].Cells[0].Value + "-" + DataGridView1.Rows[irow].Cells[1].Value; } } else if (Convert.ToString(DataGridView1.Rows[irow].Cells[2].Value) == "sectionName") { TSection = TSection + 1; if (string.IsNullOrEmpty(TempSectionTitleString)) { TempSectionTitleString = TempSectionTitleString + TSection + "|" + Convert.ToString(DataGridView1.Rows[irow].Cells[4].Value).Trim(' '); } else { TempSectionTitleString = TempSectionTitleString + Environment.NewLine + TSection + "|" + DataGridView1.Rows[irow].Cells[3].Value; } } else { continue; } } } } if (TSection == 0) { foreach (var ArticleFile in dinfo) { try { string tstrFileContent = ""; tstrFileContent = Common.ReadFile(ArticleFile.FullName); StrSectionBody = StrSectionBody + "<div class=\"article-spacer\"/>" + Environment.NewLine; StrSectionBody = StrSectionBody + "<div id=\"preview_" + ArticleBodyCount + "\" class=\"sectionArticleBlockOdd\">" + Environment.NewLine; StrSectionBody = StrSectionBody + "<div class=\"sectionArticleTextBlock\">" + Environment.NewLine; StrSectionBody = StrSectionBody + "<div class=\"sectionArticleTitle\">" + Environment.NewLine; StrSectionBody = StrSectionBody + "<a class=\"sectionArticleLink\" href=\"" + ArticleFile.Name + "\">" + Environment.NewLine; string ArticleHeadTitle = ""; if (Regex.IsMatch(tstrFileContent, "<h2 id=.+>(.+?)</h2>", RegexOptions.Multiline)) { ArticleHeadTitle = Regex.Match(tstrFileContent, "<h2 id=.+>(.+?)</h2>", RegexOptions.Multiline).Groups[1].Value; } StrSectionBody = StrSectionBody + "<span id=\"preview_" + ArticleBodyCount + "_headline\" class=\"sectionArticleHeadline\">" + ArticleHeadTitle + "</span>" + Environment.NewLine; StrSectionBody = StrSectionBody + "</a>" + Environment.NewLine; StrSectionBody = StrSectionBody + "<div id=\"preview_" + ArticleBodyCount + "_byline\" class=\"sectionArticleByline\"/>" + Environment.NewLine; string ArticleHeadBody = ""; if (Regex.IsMatch(tstrFileContent, "<p class=\"article-full-body\">(.+?)</p>", RegexOptions.Multiline)) { ArticleHeadBody = Regex.Match(tstrFileContent, "<p class=\"article-full-body\">(.+?)</p>", RegexOptions.Multiline).Groups[1].Value; if (ArticleHeadBody.Length > 50) { ArticleHeadBody = ArticleHeadBody.Substring(0, 50); } } StrSectionBody = StrSectionBody + "<div id=\"preview_" + ArticleBodyCount + "_snippet\" class=\"sectionArticleBody\">" + ArticleHeadBody + "...</div>" + Environment.NewLine; StrSectionBody = StrSectionBody + "</div>" + Environment.NewLine; StrSectionBody = StrSectionBody + "</div>" + Environment.NewLine; StrSectionBody = StrSectionBody + "</div>" + Environment.NewLine; ArticleBodyCount = ArticleBodyCount + 1; } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error Sections", MessageBoxButtons.OK, MessageBoxIcon.Error); } } StrSectionBody = StrSectionHead + StrSectionBody + StrSectionFoot; Common.WriteFile(SourceFolder + "\\" + "section.xml", StrSectionBody); btn_Sections.ForeColor = System.Drawing.Color.Red; MessageBox.Show("Completed Sections", "ePUB Sections", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { bool SectionsWritten = false; for (var icm = 0; icm <= TempSectionTitleArray.Length; icm++) { if (!string.IsNullOrEmpty(TempSectionTitleArray[icm])) { int tSectionNo = Convert.ToInt32(Regex.Match(TempSectionTitleArray[icm], "(.+)\\|").Groups[1].Value); string tSectionTitle = (Regex.Match(TempSectionTitleArray[icm], "\\|(.+)").Groups[1].Value).Trim(' '); string TStrSectionHead = ""; TStrSectionHead = StrSectionHead; TStrSectionHead = Regex.Replace(TStrSectionHead, "<div class=\"sectionName\">###</div>", "<div class=\"sectionName\">" + tSectionTitle + "</div>", RegexOptions.Multiline); for (var ic = 0; ic < TempSectionStringArray.Length; ic++) { if (!string.IsNullOrEmpty(TempSectionStringArray[ic])) { string ArticleSectionTitleNo = Convert.ToInt32(Regex.Match(TempSectionStringArray[ic], "(.+)\\|").Groups[1].Value).ToString(); if (ArticleSectionTitleNo == tSectionNo.ToString()) { string ArticleFileStr = Regex.Match(TempSectionStringArray[ic], "\\|(.+)").Groups[1].Value; foreach (var ArticleFile in dinfo) { string tArtName = null; tArtName = ArticleFile.Name; if (tArtName.Contains(ArticleFileStr)) { try { //=========================================== string tstrFileContent = ""; tstrFileContent = Common.ReadFile(ArticleFile.FullName); StrSectionBody = StrSectionBody + "<div class=\"article-spacer\"/>" + Environment.NewLine; StrSectionBody = StrSectionBody + "<div id=\"preview_" + ArticleBodyCount + "\" class=\"sectionArticleBlockOdd\">" + Environment.NewLine; StrSectionBody = StrSectionBody + "<div class=\"sectionArticleTextBlock\">" + Environment.NewLine; StrSectionBody = StrSectionBody + "<div class=\"sectionArticleTitle\">" + Environment.NewLine; StrSectionBody = StrSectionBody + "<a class=\"sectionArticleLink\" href=\"" + ArticleFile.Name + "\">" + Environment.NewLine; string ArticleHeadTitle = ""; if (Regex.IsMatch(tstrFileContent, "<h2 id=.+>(.+?)</h2>", RegexOptions.Multiline)) { ArticleHeadTitle = Regex.Match(tstrFileContent, "<h2 id=.+>(.+?)</h2>", RegexOptions.Multiline).Groups[1].Value; } StrSectionBody = StrSectionBody + "<span id=\"preview_" + ArticleBodyCount + "_headline\" class=\"sectionArticleHeadline\">" + ArticleHeadTitle + "</span>" + Environment.NewLine; StrSectionBody = StrSectionBody + "</a>" + Environment.NewLine; StrSectionBody = StrSectionBody + "<div id=\"preview_" + ArticleBodyCount + "_byline\" class=\"sectionArticleByline\"/>" + Environment.NewLine; string ArticleHeadBody = ""; if (Regex.IsMatch(tstrFileContent, "<p class=\"article-full-body\">(.+?)</p>", RegexOptions.Multiline)) { ArticleHeadBody = Regex.Match(tstrFileContent, "<p class=\"article-full-body\">(.+?)</p>", RegexOptions.Multiline).Groups[1].Value; if (ArticleHeadBody.Length > 50) { ArticleHeadBody = ArticleHeadBody.Substring(0, 50); } } StrSectionBody = StrSectionBody + "<div id=\"preview_" + ArticleBodyCount + "_snippet\" class=\"sectionArticleBody\">" + ArticleHeadBody + "...</div>" + Environment.NewLine; StrSectionBody = StrSectionBody + "</div>" + Environment.NewLine; StrSectionBody = StrSectionBody + "</div>" + Environment.NewLine; StrSectionBody = StrSectionBody + "</div>" + Environment.NewLine; ArticleBodyCount = ArticleBodyCount + 1; } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error Sections", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } else { break; } } } StrSectionBody = TStrSectionHead + StrSectionBody + StrSectionFoot; Common.WriteFile(SourceFolder + "\\" + "section" + tSectionNo + ".xml", StrSectionBody); StrSectionBody = ""; SectionsWritten = true; } } if (SectionsWritten == true) { btn_Sections.ForeColor = System.Drawing.Color.Red; MessageBox.Show("Completed Sections", "ePUB Sections", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Sections not Complete", "Error Sections", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { MessageBox.Show("Articles Not Found, Generate and Try again", "Error Sections", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Structure Not Generated, Generate and Try Again", "Error Sections", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Book Title Blank", "Error Sections", MessageBoxButtons.OK, MessageBoxIcon.Error); } this.Cursor = Cursors.Default; btn_Toc.Enabled = true;