private async void Form1_Load(object sender, EventArgs e) { client = new FireSharp.FirebaseClient(Config); //9–12 //29 - 33 //@"C:\Users\enesbicen\Desktop\abcd.docx" string strDoc = @path; WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(strDoc, true); BookmarkStart currentBM = null; var paragraphs = wordprocessingDocument.MainDocumentPart.Document.Descendants <Paragraph>(); kontrolLists = new List <KontrolList>(); List <string> icindekilerOncesi = new List <string>(); kaynakBelirtimleri = new List <int>(); int nerede = 0;//ilk iki paragrafı almamak için bu değişken(tabloların başındaki gereksiz ilk iki paragraf) int hangiTabloda = 5; int kaynak = 0; string text = ""; foreach (var paragraph in paragraphs) { var t = paragraph.NextSibling <BookmarkStart>(); var s = paragraph.ParagraphProperties; //if (t != null) //{ // if (currentBM == null) // { // currentBM = t; // k++; // } // else // { // if (!currentBM.Name.Equals(t.Name)) // { // // text += k + "\n"; // k++; // currentBM = t; // } // } //} if (paragraph.InnerText.Length > 1) { string temp = paragraph.InnerText.ToString(); if (temp.Equals("ÖNSÖZ") || temp.Equals("ABSTRACT")) { icindekilerOncesi.Add(temp); } if (paragraph.InnerText.ToString().ToLower().Equals("içindekiler")) { nerede = 0; hangiTabloda = 1; icindekilerOncesi.Add("İÇİNDEKİLER"); } if (paragraph.InnerText.ToString().ToLower().Equals("şekiller listesi")) { nerede = 0; hangiTabloda = 2; icindekilerOncesi.Add("ŞEKİLLER LİSTESİ"); } if (paragraph.InnerText.ToString().ToLower().Equals("tablolar listesi")) { nerede = 0; hangiTabloda = 3; icindekilerOncesi.Add("TABLOLAR LİSTESİ"); } if (paragraph.InnerText.ToString().ToLower().Equals("ekler listesi")) { nerede = 0; hangiTabloda = 4; icindekilerOncesi.Add("EKLER LİSTESİ"); } if (paragraph.InnerText.ToString().ToLower().Equals("giriş")) { hangiTabloda = 6; } if (paragraph.InnerText.ToString().ToLower().Equals("özet")) { hangiTabloda = 5; icindekilerOncesi.Add("ÖZET"); } if (paragraph.InnerText.ToString().ToLower().Equals("simgeler ve kisaltmalar")) { hangiTabloda = 5; icindekilerOncesi.Add("SİMGELER VE KISALTMALAR"); } //içindekiler-şekiller-tablolar-ekler tablolarında bulunan değerlerin depolanması if (nerede > 2 && hangiTabloda <= 4 && paragraph.InnerText.Length > 4) { kontrolLists.Add(nesneGonder(paragraph.InnerText.ToString(), hangiTabloda)); } //GİRİŞ başlığından sonra dokuman kısmına geçtik, bu scopta dokuman incelenir. if (hangiTabloda == 6) { //içerik listemizde mevcut sayfayı içeren girdileri verir //List<KontrolList> tum = kontrolLists.FindAll(x => x.sayfa.ToString().Equals(k.ToString())); KontrolList tempItem = null; foreach (var item in kontrolLists) { if (paragraph.InnerText.ToString().Contains(item.icerik)) { tempItem = item; } } if (tempItem != null) { if (!paragraph.InnerText.ToString().Contains(tempItem.numara)) { if (!tempItem.numara.Equals("hata")) { text += tempItem.hangiBolum + " tablosunda belirtilen içerikte " + tempItem.numara + " numarası bulunamadı. Paragrafı kontrol edin : " + paragraph.InnerText.ToString() + "\n\n"; } else { text += tempItem.hangiBolum + " tablosunda belirtilen içerik " + " işlenemedi. Lütfen Paragrafı manuel olarak kontrol edin : " + paragraph.InnerText.ToString() + "\n\n"; } } kontrolLists.Remove(tempItem); } if (paragraph.InnerText.ToString().Contains("[")) { string sonuc = kaynakBelirtimKontrol(paragraph.InnerText.ToString()); //text += sonuc + "\n"; if (sonuc.Contains("hata")) { text += "\n\n Toplu Kaynak belirtimlerinde maksimum 3 kaynak belirtebilirsiniz. Şu paragrafta kaynak belirtiminde hata tespit edlmiştir: \t" + paragraph.InnerText.ToString() + "\n\n"; } } } //Başlıklardan sonra 2 tane paragraf işimize yaramadığı için nerede değişkeni sayesinde onlardan kurtuluyoruz nerede++; } } //Burada içindekiler tablosundan önce gelen başlıkların kontrolü yapılır. for (int i = 0; i < icindekilerOncesi.Count; i++) { var temp = kontrolLists.Find(x => x.icerik.Equals(icindekilerOncesi[i])); if (temp != null) { kontrolLists.Remove(temp); } } text += "\n\n\n"; //tablolarda belirtilen ancak ya içerik olarak yada numara olrak dokümanda bulunmayan başlıkları verir foreach (var item in kontrolLists) { if (!item.numara.Equals("hata")) { text += item.hangiBolum + " tablosunda " + item.numara + " numaralı " + item.sayfa + ". sayfada bulunması gereken \"" + item.icerik + "\" içeriği bulunamadı. bir kontrol edin\n\n"; } else { text += item.hangiBolum + " tablosunda " + item.numara + " numaralı " + item.sayfa + ". sayfada bulunması gereken \"" + item.icerik + "\" içeriği bulunamadı. bir kontrol edin\n\n"; } } text += "\n\n\n"; //Kaynak belirtiminde numara atlaması olmuş mu onu kontrol eder. //örneğin 24 numaralı kaynak belirtimi olmasına rağmen 23 numaralı kaynak belirtiminin olmaması. text += belirtilmeyenKaynaklariBul(); //yazılım herhangi bir hata bulamazsa verilecek çıktı if (text.Equals("\n\n\n\n\n\n")) { text = "herhangi bir hata bulunamadi."; } else//sonuçlar ile ilgili uyarı { text = "Değerli kullanıcımız aşağıda verilen bazı hatalar dokumanda karakter olarak var olmayıp" + " word numaralandırması olarak var olan bazı değerleri verebilir. Verilen hataları kontrol edin. Eğer siz " + "kontrol ettğinizde bu başlıklar doğru görünüyorsa sıkıntı yoktur.\n\n" + text; } richTextBox1.Text = text; MessageBox.Show("okuma İşlemi Tamamlandı!", "Bilgilendirme Penceresi"); wordprocessingDocument.Close(); var datam1 = new Data { dosyam = text }; SetResponse response = await client.SetTaskAsync("DosyaHatalar/" + "hatam1", datam1); Data result = response.ResultAs <Data>(); }
private KontrolList nesneGonder(string paragraf, int hangiTabloda) { //sayfa numarası için son dört karakterin alınması String sayi = paragraf.Substring(paragraf.Length - 4); string romenNumber = "";//romen rakamalrının alınması için kullanılan değişken foreach (char item in sayi) { try { if (item.Equals('i') || item.Equals('v') || item.Equals('x')) { romenNumber = romenNumber + item; } int a = Convert.ToInt32(item.ToString()); } catch (Exception) { sayi = sayi.Substring(1); //throw; } } KontrolList kontrolList; String icerik = paragraf.Substring(0, paragraf.Length - sayi.Length); int sayfa; try { sayfa = Convert.ToInt32(sayi); } catch (Exception) { if (!romenNumber.Equals("")) { sayfa = sayfabul(romenNumber); } else { sayfa = -9999; } //burada hata verdi // throw; } // romen rakamalrın icerikten silinmesi if (!romenNumber.Equals("") && sayi.Equals("")) { icerik = icerik.Substring(0, icerik.Length - romenNumber.Length); } //bir paragrafa sığmayan şekil ve tablo içeriklerinin bir önceki paragrafa eklenmesi if ((hangiTabloda == 2 || hangiTabloda == 3) && !(paragraf.Contains("Şekil") || paragraf.Contains("Tablo"))) { kontrolList = kontrolLists[kontrolLists.Count - 1]; kontrolList.icerik = kontrolList.icerik + " " + icerik; kontrolList.sayfa = sayfa; kontrolLists.RemoveAt(kontrolLists.Count - 1); } else { //icerik nesnelerinin oluşturulması switch (hangiTabloda) { case 1: if (!icindekilerIcerikDuzenle(icerik).Equals("hata")) { string[] dizi = icindekilerIcerikDuzenle(icerik).Split('$'); kontrolList = new KontrolList("icindekiler", dizi[1], sayfa, dizi[0]); } else { kontrolList = new KontrolList("icindekiler", icerik, sayfa, "hata"); } break; case 2: if (!sekillerIcerikDuzenle(icerik).Equals("hata")) { string[] dizi1 = sekillerIcerikDuzenle(icerik).Split('$'); kontrolList = new KontrolList("sekiller", dizi1[1], sayfa, dizi1[0]); } else { kontrolList = new KontrolList("sekiller", icerik, sayfa, "hata"); } break; case 3: if (!tabloIcerikDuzenle(icerik).Equals("hata")) { string[] dizi2 = tabloIcerikDuzenle(icerik).Split('$'); kontrolList = new KontrolList("tablolar", dizi2[1], sayfa, dizi2[0]); } else { kontrolList = new KontrolList("tablolar", icerik, sayfa, "hata"); } break; case 4: if (!ekIcerikDuzenle(icerik).Equals("hata")) { string[] dizi3 = ekIcerikDuzenle(icerik).Split('$'); kontrolList = new KontrolList("ekler", dizi3[1], sayfa, dizi3[0]); } else { kontrolList = new KontrolList("ekler", icerik, sayfa, "hata"); } break; default: kontrolList = new KontrolList("x(bilinmeyen)", icerik, sayfa, "hata"); break; } } return(kontrolList); }