Sticky topic.
X
X

ملف مفتوح ...تصميم اسطوانة للقران الكريم ...بحث و استعراض

AutoPlay Media Studio & Generate AIO Tutorials

 
  • Filter
  • Time
  • Show
Clear All
new posts
  • عبد الهادي بهاب
    Thread Author
    Free Membership
    • Nov 2018
    • 177
    • 82 
    • 43 

    السلام عليكم ورحمة الله وبركاته

    اولا يجب ان ننوه ان فيه الكثير من المحاولات و الملفات في المنتدى حول كيفية انشاء برامج و تصميم موسوعة للقران الكريم
    ونحن هنا من اجل محاولة جديدة باستعمال ملفات تكست txt

    اولا يجب ان ننشا قاعدة البيانات التي نعمل عليها


    هذا هو ملف المصحف الشريف كاملا بصيغة txt

    🔒 Go Premium to Unlock
    او
    من المرفقات

    الان اريد تقسيمه الى ملفات تكست txt لكل سورة على حدى





    ---------------------------------
    اولا نضع قائمة السور القرانية في قائمة تكست
    🔒 Go Premium to Unlock
    او
    من المرفقات

    الان مع الكود
    نزرع في زر معين هذا الكود


    PHP Code:
    sora = TextFile.ReadToTable("AutoPlay\\Docs\\ListeSoar.txt");

    txt = TextFile.ReadToString("AutoPlay\\Docs\\TouCoran.txt");

    for 
    i,v in pairs(sora)do
       if 
    i<#sora then
       
    find = String.Find(txt, v, 1);
       
    find2 = String.Find(txt, sora[i+1], find);
       
    nas = String.Mid(txt, find, find2-find);
       
    TextFile.WriteFromString("AutoPlay\\Docs"..v..".txt", nas)
       elseif 
    i==114 then
       find 
    = String.Find(txt, v, 1);
       
    find2 = String.Find(txt,"6)", find);
       
    nas = String.Mid(txt, find, find2-find);
       
    TextFile.WriteFromString("AutoPlay\\Docs"..v..".txt", nas)
      
       
    end  
    end 
    ابحث في ملف Docs ستجد كل سورة وحدها باسمها



    بالتوفيق
    اخؤ تحدث للمشوع
    🔒 Go Premium to Unlock
    Attached Files
    Last edited by عبد الهادي بهاب; June 26, 2020, 23:10.
  • عبد الهادي بهاب
    Thread Author
    Free Membership
    • Nov 2018
    • 177
    • 82 
    • 43 

    #2
    السلام عليكم ورحمة الله وبركاته
    بعد استخراج السور يكون شكلها كالتالي



    نريد ان نحذف السطرين الاولين 1 . 2
    ثم نحذف ارقام الايات و الاقواس
    و نجعل كل اية في سطر من اجل خاصية البحث
    -----------------------------
    من اجل حفظ العمل ...نضع مجلد جديد في ملف docs و نسميه soar
    كي نحفظ فيه ملفات السور القرانية التي تحتوي على ايات فقط كل في سطر
    نضع زر و نزرع الكود التالي

    PHP Code:

    sora 
    = File.Find("AutoPlay\\Docs", "*.txt", true, true, nil, nil);
    for 
    i,vin in pairs(sora)do
    v = Input.GetText("Input1");
    Mtxt = TextFile.ReadToTable("AutoPlay\\Docs"..v..".txt");
    Table.Remove(Mtxt, 1);
    Table.Remove(Mtxt, 1);
    txt = Mtxt[1];
    txt = String.Replace(txt, "(", "");
    txt = String.Replace(txt, "0", "");
    txt = String.Replace(txt, "1", "");
    txt = String.Replace(txt, "2", "");
    txt = String.Replace(txt, "3", "");
    txt = String.Replace(txt, "4", "");
    txt = String.Replace(txt, "5", "");
    txt = String.Replace(txt, "6", "");
    txt = String.Replace(txt, "7", "");
    txt = String.Replace(txt, "8", "");
    txt = String.Replace(txt, "9", "");
    txt = String.Replace(txt, ")", "\r\n");
    TextFile.WriteFromString("AutoPlay\\Docs\\soar"..v..".txt", txt);
    end 
    سيكون لديك الشكل بعد العمل كالتالي




    وهكذا انتهت مرحلة انشاء قاعدة البيانات

    بالتوفيق
    Comment
    • عبد الهادي بهاب
      Thread Author
      Free Membership
      • Nov 2018
      • 177
      • 82 
      • 43 

      #3
      الان عندنا قاعدة بيانات فيها السور كل واحدة على حدى
      ------------------
      نضع انبوت للبحث
      نضع زر للبحث
      نضع بارغراف paragraph لعرض الاية
      نضع ليستبوكس لعرض كل السور التي يوجد فيها النص المبحوث عنه
      ممكن نضيف له لبيال لعرض كم اية في القران موجود فيها الكلمة المبحوث عنها
      نضيف زر لنسخ الاية في ذاكرة الحاسوب
      -----------------
      الشكل المطلوب المقترح

      Comment
      • عبد الهادي بهاب
        Thread Author
        Free Membership
        • Nov 2018
        • 177
        • 82 
        • 43 

        #4

        فيه اشكالية البحث في السور لكن بنص مع التشكيل لذلك ممكن نحدف التشكيل من الايات قبل البحث عنها
        واحسن حل كان قد عرضه الاستاذ بلقيس في مشروعه حول القران الكريم

        الموضوع الاصلي
        🔒 Go Premium to Unlock



        Comment
        • عبد الهادي بهاب
          Thread Author
          Free Membership
          • Nov 2018
          • 177
          • 82 
          • 43 

          #5
          الان قبل كل شيء نمحو محتوى الليسبوكس
          ثم نحدف تشكيل الانبوت
          ثم نستعرض السور ومحواها بدون تشكيل ايضا و نقارن
          اذا وجدنا تطايق نسجل السورة في اليسبوكس و في data نسجل الاية فقط
          ليتم استعرضها في البارغارف

          في زر البحث نضع الكود

          PHP Code:

          ListBox
          .DeleteItem("ListBox1", LB_ALLITEMS);
          ---------------------
          istibdalate={["ó"] = "",["ð"] = "",["õ"] = "",["ö"] = "",["ú"] = "",["ø"] = "",["ö"] = "",["ñ"] = ""}
          m = Input.GetText("Input1");
          serch = string.gsub (m, ".",istibdalate) ;
          -----------
          tot =0; cla = "";
          sora = File.Find("AutoPlay\\Docs\\soar", "*.txt", true, true, nil, nil);
          Ordre = TextFile.ReadToTable("AutoPlay\\Docs\\ListeSoar.txt");
          for 
          i,vin in pairs(sora)do
           
          v = String.SplitPath(vin).Filename;
           for 
          x=1,#Ordre do if v == Ordre[x] then cla = x end end
          --  vin = "AutoPlay\\Docs\\soar"..v..".txt";
            
          Nasora = TextFile.ReadToTable(vin);
            
            for 
          p,Ntext in pairs(Nasora) do
            
          text = string.gsub (Ntext, ".",istibdalate) ;
            
          find = String.Find(text, serch, 1, false);
              if 
          find ~= -1 then tot = tot+1;
            
          ListBox.AddItem("ListBox1",v.."("..cla..")", Ntext.."\r\n".."ÇáÂíÉ ÑÞã  "..p);
            
          end  
            end
          end
          Label
          .SetText("Label1", tot) 

          النتيجة



          شكرا
          Comment
          • عبد الهادي بهاب
            Thread Author
            Free Membership
            • Nov 2018
            • 177
            • 82 
            • 43 

            #6
            ---------لمن لايريد مباشرة الزبدة .......

            الملف المفتوح :
            🔒 Go Premium to Unlock
            وبالمرفقات

            https://www.youtube.com/watch?v=tSmX...ature=youtu.be

            طبعا لكم اضافة مقدمة و شكل البحث و و و
            ممكن اضافة خصائص البحث
            او استعراض الاية في richtext بكشل ملون
            Attached Files
            Comment
            • Abu.Hamoud
              Gold Medal
              • Dec 2018
              • 2532
              • 1,580 
              • 1,250 

              #7

              جزاك الله كل خير
              الى الامــ والله الموفق ــــــام

              Comment
              • zaza-14
                Gold Medal
                • Oct 2018
                • 2416
                • 4,700 
                • 9,200 

                #8
                شكرا على الملف المفتوح ، ولكن كلمة الكسالى مؤلمة ياريت وفضلا حذفها
                Comment
                • عبد الهادي بهاب
                  Thread Author
                  Free Membership
                  • Nov 2018
                  • 177
                  • 82 
                  • 43 

                  #9
                  Originally posted by zaza-14 View Post
                  شكرا على الملف المفتوح ، ولكن كلمة الكسالى مؤلمة ياريت وفضلا حذفها
                  هههههههه ...كثيرا في مثل هذه الحالات لا يقوم هؤلاء الاخوة ربي يحفظهم بالمراحل و تعلم الاكواد بل يرديون الملف المفتوح مباشرة دون تعب ولا شيء و قد وضعت الموضوع للتعلم
                  لكن حاضر
                  Comment
                  • aboudodja
                    Free Membership
                    • Oct 2018
                    • 42
                    • 6 
                    • 0 

                    #10
                    بارك الله فيك اخي وجزاكم الله خيرا ونفع بك
                    Comment
                    • عبد الهادي بهاب
                      Thread Author
                      Free Membership
                      • Nov 2018
                      • 177
                      • 82 
                      • 43 

                      #11
                      متابعة

                      السلام عليكم ورحمة الله وبركاته
                      مواصلة للعمل ........ نريد ان يصدر البرنامج ملفا txt فيه كل الايات التي تحتوي على الكلمة المبحوث عنها
                      اذن نرجع لزر البحث ........ نضيف اليه متغير chercher مثلا
                      و كلما وجدنا اية نضيف سطرا و نسجل الاية التالية و هكذا
                      ثم نسجل النص المتحصل عليه في ملف تكست

                      اذن نعدل كود البحث الى التالي

                      PHP Code:
                      ListBox.DeleteItem("ListBox1", LB_ALLITEMS);
                      ---------------------
                      istibdalate={["ó"] = "",["ð"] = "",["õ"] = "",["ö"] = "",["ú"] = "",["ø"] = "",["ö"] = "",["ñ"] = ""} 
                      m = Input.GetText("Input1");
                      serch = string.gsub (m, ".",istibdalate) ;
                      -----------
                      tot =0; cla = "" ; chercher = "" .. "\r\n";
                      sora = File.Find("AutoPlay\\Docs\\soar", "*.txt", true, true, nil, nil);
                      Ordre = TextFile.ReadToTable("AutoPlay\\Docs\\ListeSoar.txt");
                      for 
                      i,vin in pairs(sora)do
                       
                      v = String.SplitPath(vin).Filename;
                       for 
                      x=1,#Ordre do if v == Ordre[x] then cla = x end end
                      --  vin = "AutoPlay\\Docs\\soar\"..v..".txt";
                        Nasora = TextFile.ReadToTable(vin);
                        
                        for p,Ntext in pairs(Nasora) do
                        text = string.gsub (Ntext, "
                      .",istibdalate) ;
                        find = String.Find(text, serch, 1, false);
                          if find ~= -1 then 
                          tot = tot+1;
                          chercher = chercher .. "
                      \r\n"..Ntext.."\r\n".."&#199;áÂíÉ ÑÞã  "..p .."\r\n".."\r\n";
                        
                      ListBox.AddItem("ListBox1",v.."("..cla..")", Ntext.."\r\n".."ÇáÂíÉ ÑÞã  "..p);
                        
                      end  
                        end 
                      end
                      Label
                      .SetText("Label1", tot) 

                      في الاسفل نضيف زر اخر لتصدير النص المبحوث عنه
                      نزع الكود التالي فيه

                      PHP Code:
                      Mchercher = " الايات التي تحتوي على كلمة ".."\r\n".."-  "..serch.."  -".."\r\n"..chercher ;


                      Clipboard.CopyText(chercher);

                      TextFile.WriteFromString("C:\\Coran_ "..serch..".txt", Mchercher, false);
                      File.Open("C:\\Coran_ "..serch..".txt", "", SW_SHOWNORMAL) 
                      طبعا يجب تفعيل اضافة Clipboard

                      بالتوفيق
                      Comment
                      • عبد الهادي بهاب
                        Thread Author
                        Free Membership
                        • Nov 2018
                        • 177
                        • 82 
                        • 43 

                        #12
                        السلام عليكم ورحمة الله وبركاته
                        الان نريد اضافة خاصية البحث في كل المصحف و اخرى في البحث في سورة معينة
                        لذلك سنضيف عنصرين من نوع ChecKBox
                        الاول نسميه البحث في سورة معينة
                        الثاني نسميه البحث في كل المصحف
                        نضيف ايضا Combobx لاستعارض كل السور لنختار منها السورة التي نريد البحث فيها
                        ------------------
                        اولا يجب ان نضيف قائمة السور الى الكومبوكس من قامة السور في التكست
                        و سنجعل البرنامج يختار مبدئيا البحث في كل المصحف ------- افتراضي -------
                        سنضسف متغير Mys من اجل اسم السورة و الذي سنجعله مبدئيا فارغا ...لانه لو بقي كذلك و اختار المستخدم البحث في سورة معينة و لم يختر سورة من الكومبوكس ستظل القيمة فارغة و بالتالي سيظهر له مربع تنبيه .
                        اذهب الى OnShow الصفحة و اضف الكود التالي

                        PHP Code:
                        ordre = TextFile.ReadToTable("AutoPlay\\Docs\\ListeSoar.txt");
                        for 
                        i,vin in pairs(ordre)do
                          
                        ComboBox.AddItem("ComboBox1", vin,"");
                        end
                        Mys 
                        = "";
                        CheckBox.SetChecked("CheckBox2", true); 
                        الان سنجعل ChecBox1 الاول لما نضغطه يظهر الكومبوكس

                        PHP Code:
                        CheckBox.SetChecked("CheckBox1", true);
                        CheckBox.SetChecked("CheckBox2", false);
                        ComboBox.SetVisible("ComboBox1", true); 
                        و ChecBox2 يخفي الكومبوكس

                        PHP Code:
                        CheckBox.SetChecked("CheckBox2", true);
                        CheckBox.SetChecked("CheckBox1", false);
                        ComboBox.SetVisible("ComboBox1", false); 

                        في الكومبوكس سنضع كود لاستخراج السورة المطلوبة
                        في ONSelect

                        PHP Code:
                        sel = ComboBox.GetSelected("ComboBox1");
                        Mys = ComboBox.GetItemText("ComboBox1", sel); 
                        المرحلة الاخيرة التعديل على زر البحث :
                        بحيث سيراقب اي خاصية اختيار ليتم البحث بعدها
                        و يصبح الكود اكثر تغقيدا

                        PHP Code:
                        sora = File.Find("AutoPlay\\Docs\\soar", "*.txt", true, true, nil, nil);
                        Ordre = TextFile.ReadToTable("AutoPlay\\Docs\\ListeSoar.txt");

                        ListBox.DeleteItem("ListBox1", LB_ALLITEMS);
                        ---------------------
                        istibdalate={["ó"] = "",["ð"] = "",["õ"] = "",["ö"] = "",["ú"] = "",["ø"] = "",["ö"] = "",["ñ"] = ""}
                        m = Input.GetText("Input1");
                        serch = string.gsub (m, ".",istibdalate) ;
                        -----------
                        tot =0; cla = "" ; chercher = "" .. "\r\n";
                        -------------
                        if  
                        CheckBox.GetChecked("CheckBox1") == true then
                          
                        if Mys == "" then
                          Dialog
                        .Message("ÊäÈíå","ÇÎÊÑ ÓæÑÉ ãä ÞÇãÉ ÇáÓæÑ ÇáÊí ÊÑíÏ ÇáÈÍË ÝíåÇ");
                          else
                         
                        v = Mys;
                         
                        cla = sel;
                         
                        vin = "AutoPlay\\Docs\\soar"..v..".txt";
                          
                        Nasora = TextFile.ReadToTable(vin);
                          
                          for 
                        p,Ntext in pairs(Nasora) do
                          
                        text = string.gsub (Ntext, ".",istibdalate) ;
                          
                        find = String.Find(text, serch, 1, false);
                            if 
                        find ~= -1 then
                            tot 
                        = tot+1;
                            
                        chercher = chercher .. "\r\n"..Ntext.."\r\n".."ÇáÂíÉ ÑÞã  "..p .."\r\n".."\r\n";
                          
                        ListBox.AddItem("ListBox1",v.."("..cla..")", Ntext.."\r\n".."ÇáÂíÉ ÑÞã  "..p);
                            
                        end  
                          end
                         Label
                        .SetText("Label1", tot)
                        end


                        elseif CheckBox.GetChecked("CheckBox2") == true then

                        for i,vin in pairs(sora)do
                         
                        v = String.SplitPath(vin).Filename;
                         for 
                        x=1,#Ordre do if v == Ordre[x] then cla = x end end
                        --  vin = "AutoPlay\\Docs\\soar"..v..".txt";
                          
                        Nasora = TextFile.ReadToTable(vin);
                          
                          for 
                        p,Ntext in pairs(Nasora) do
                          
                        text = string.gsub (Ntext, ".",istibdalate) ;
                          
                        find = String.Find(text, serch, 1, false);
                            if 
                        find ~= -1 then
                            tot 
                        = tot+1;
                            
                        chercher = chercher .. "\r\n"..Ntext.."\r\n".."ÇáÂíÉ ÑÞã  "..p .."\r\n".."\r\n";
                          
                        ListBox.AddItem("ListBox1",v.."("..cla..")", Ntext.."\r\n".."ÇáÂíÉ ÑÞã  "..p);
                          
                        end  
                          end
                        end
                        Label
                        .SetText("Label1", tot);
                        -------------------------------------------------
                        end 

                        الشكل الاخير من العمل الى حد الساعة كالتالي :


                        Comment
                        • عبد الهادي بهاب
                          Thread Author
                          Free Membership
                          • Nov 2018
                          • 177
                          • 82 
                          • 43 

                          #13
                          الملف المفتوح في التعديلات الاخيرة

                          🔒 Go Premium to Unlock
                          وبالمرفقات
                          -------------------------
                          انا لم اهتم بالتصميم الخارجي و الصور و ....... لكم الحرية في الاخراج الفني
                          بالتوفيق
                          Attached Files
                          Comment
                          • عبد الهادي بهاب
                            Thread Author
                            Free Membership
                            • Nov 2018
                            • 177
                            • 82 
                            • 43 

                            #14
                            السلام عليكم ورحمة الله وبركاته

                            اليوم سنعمل على قاعدة بيانات جديدة وهي DB او SQLT
                            سنحاول ان نصنع قاعدة البيانات الخاصة بنا
                            لذلك دائما بالاعتماد على ملف السور txt
                            رقمنها من 1 الى 114 من اجل تجاوز مشكل اللغة
                            وضعنا ملف تكست فيه السور بالعربية حسب ترتيبها في المصحف
                            سنصنع قاعدة البيانات كجدول فيه
                            رقم السورة ------- اسم السورة --------رقم الآية -------- نص الاية

                            ضع الملف هذا في مكان الملف Docs في مشروعك
                            🔒 Go Premium to Unlock
                            وبالمرفقات

                            الملف فيه تكست لقامة السور مرتبة و 114 ملف تكست للسور

                            سنصنع قاعدة بيانات نسميها coran في مجلد docs
                            الكود التالي نضعه في زر

                            PHP Code:
                            sDatabaseFile = _SourceFolder .. "\\AutoPlay\\Docs\\coran.db";
                            SQLite.Query(db,"CREATE TABLE coran(Sora_Num, Sora_text , Aya_Num , Aya_text)");


                             
                            sora = TextFile.ReadToTable("AutoPlay\\Docs\\ListeSoar.txt")
                             for 
                            i,v in pairs(sora)do
                             
                            ayaet = TextFile.ReadToTable("AutoPlay\\Docs"..i..".txt")
                                for 
                            p,nas in pairs(ayaet)do
                                
                            SQLite.Query(db,"insert into coran values('" .. i.."', '"..v.."', '"..p .."', '"..nas.."')");
                                
                            end
                            end 
                            انتظر عملية التحميل و سيتطلب ذلك دقائق
                            ستجد ملف اسمه coran.db
                            Attached Files
                            Comment
                            • عبد الهادي بهاب
                              Thread Author
                              Free Membership
                              • Nov 2018
                              • 177
                              • 82 
                              • 43 

                              #15
                              السلام عليكم ورحمة الله وبركاته

                              الان نعيد التصميم السابق



                              الان امحي ما في زر البحث و ضع الكود التالي
                              -------- اذكر الكود من تقيدم الاستاذ ثامر في مشاركة سابقة ---------

                              PHP Code:
                              ListBox.DeleteItem("ListBox1", LB_ALLITEMS);

                              istibdalate={["ó"] = "",["ð"] = "",["õ"] = "",["ö"] = "",["ú"] = "",["ø"] = "",["ö"] = "",["ñ"] = ""}

                              db = SQLite.Open("AutoPlay\\Docs\\coran.db");
                              s=SQLite.QueryToTable(db, "select * from coran");
                              ali = Input.GetText("Input1");
                              result4 = string.gsub (ali, ".",istibdalate)


                              tol=0;
                              -----------------------------------------------------------
                              for 
                              i,v in pairs(s.Data) do
                              m = s.Data[i]["Aya_text"];
                              abou_belkiss = string.gsub (m, ".",istibdalate)
                              g = String.Find(abou_belkiss,result4, 1, false);
                              if 
                              g~= -1 then tol=tol+1;
                              ListBox.AddItem("ListBox1", s.Data[i]["Sora_text"].."("..s.Data[i]["Aya_Num"]..")", s.Data[i]["Aya_text"]);
                              end
                              end
                              Label
                              .SetText("Label1", tol); 
                              جرب و اخبرنا :
                              Comment
                              Working...
                              X