المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : هل يمكن مقارنة نص بنص آخر ومعرفة الأخطاء ؟


أبو زكريا
07-11-2015, 08:17 PM
أسعد الله أوقاتكم بكل خير

لدينا نص في عنصر (RICHTEXT) يتكون من سطور مثلا (RichText1)

ولدينا عنصران من نوع (Input) يكتب فيها المستخدم نصين

أريد مطابقة النص في (Input1) مع السطر الثاني في (RichText1)
ومطابقة النص في (Input2) مع السطر الثالث في (RichText1)

بحيث أحدد الكلمات الغير مطابقة وأميزها مثلاً بلون معين أو أي طريقة
بحيث يعرف المستخدم الأخطاء التي وقع فيها

حبذا الاطلاع على المرفق

الأمل القادم
07-11-2015, 08:56 PM
موفق بإذن الله ... لك مني أجمل تحية .

عبد الهادي بهاب
07-11-2015, 09:28 PM
موفق باذن الله

عبد الهادي بهاب
07-11-2015, 10:03 PM
من حيث المبدا .......في زر مقارنة ازرع هذا الكود و جرب......

t = RichText.GetText("RichText1", false);
TextFile.WriteFromString("C:\\MyFile.txt", t, false);
r = TextFile.ReadToTable("C:\\MyFile.txt");
t1 = Input.GetText("Input1");
t1 = Input.GetText("Input2");

for i in pairs(r) do
if r[2] == Input.GetText("Input1") and r[3] == Input.GetText("Input2") then
Dialog.Message("ÇáäÊíÌÉ","ÇáÌæÇÈ ÕÍíÍ ãÈÑæß Úáíß ËáÇÌÉ æ ÚãÑÉáÔÎÕíä ");
break
else
Dialog.Message("ÇáäÊíÌÉ","ÇÚÏ ÇáãÍÇæáÉ ãä ÌÏíÏ");
break
end
end


سافكر في قضية الاخطاء

أبو زكريا
08-11-2015, 04:35 AM
شكراً لك أخي الكريم

يظهر لدي رسالة عدم التوافق سواء تساوت النصوص أم اختلفت مع العلم أنني غيرت مصدر الملفات النصية

ثامر أبو بلقيس
08-11-2015, 11:59 AM
بالتوفيق :abc_138:

ثامر أبو بلقيس
08-11-2015, 05:29 PM
حاولت الاجابة لكن سأقول السؤال صعب عني موفق:abc_138:

أبو زكريا
08-11-2015, 10:46 PM
شكراً أخي اقلي
وشكراً أخي ثامر

أجريت تعديلاً فعمل الكود بنجاح

بقي موضوع تحديد الأخطاء في النصوص أرجو أن ييسر الله حلها

ثامر أبو بلقيس
09-11-2015, 07:41 PM
السلام عليكم ورحمة الله وبركاته
لدي نص في RichText1 متعدد الاسطر
و لدي Input1 مكتوب فيه جملة

هذه معطيات بناء الكود بحيث سيخبرني عن المفردات التي كتبتها و كانت خاطئة في كتابتها او غير موضوعة في الترتيب
الموافق لها في نص السطر الاصلي اي في RichText1

على ان تتم المقارنة هنا كما قلت مع جملة الانبوت و السطر الاول في RichText1

انطلاقا منه عدل حسب مشروعك ولما لا نقرا حلولا اسرع و اسهل :abc_138:
result = RichText.GetLine("RichText1", 1);
my_table = {};
result2 = String.Replace(RichText.GetText("RichText1", false), " ", "ثامر2014", true);
Y=Input.GetText("Input1");
b = ""
h =""
for w in string.gmatch (Input.GetText("Input1"), "%S+") do
tbSearchResult = RichText.FindText("RichText1",w, 1, #result+1, false, false);
if not (tbSearchResult) then
b=b..w.."----------------الكلمة ليست من مفردات النص الاصلي او غير متناسبة ترتيبا".."\r\n"
end
end
-----------------------------------------------------
for token in string.gmatch(result2, "[^%s]+") do
e = #token/#token
Table.Insert(my_table, e, token);
e=e+1
belkiss =1+#(my_table)
end
FF=my_table[belkiss-1]
X = String.Replace(FF, "ثامر2014", " ", true);
------------------------------------------------------
for w2 in string.gmatch (X, "%S+") do
result = String.Find(Y, w2, 1, false);
if result == -1 then
h=h.."ما كتبت يفتقد للمفردة".."----------------"..w2.."\r\n"
end
end
Dialog.Message("هاااااام", h..b);

ربيع
09-11-2015, 10:25 PM
السلام عليكم ورحمة الله وبركاته
كلمات السطر من RichText1 مصفوفة
كلمات Input1 مصفوفة
بابعاد تقاطعهما تنتج المفردات المشتملة للاخطاء :abc_152:
اي العناصر المتواجدة في المساحة ذات اللون الاحمر
http://store4.up-00.com/2015-11/1447102490441.bmp

أبو زكريا
11-11-2015, 09:32 PM
شكراً جزيلاً من الأعماق لأخي الفاضل ثامر

وشكراً جزيلاً لأخي ربيع

لدي إشكال وهو

الرسالة حينما تكون الجملة سليمة من الأخطاء تظهر الرسالة فارغة

لماذا لا تظهر رسالة تؤكد مطابقة الجملة ؟

وأريد أيضاً أمراً بالانتقال إلى سطر جديد للمقارنة بعد كتابة جملة جديدة في صندوق النص

وسؤال آخر
كيف أستطيع معرفة عدد الأسطر في ملف نصي مثل (txetfile) أو (richtxet)

وهل هناك طريقة لإزالة جميع المسافات الزائدة من الجمل .؟

آسف لكثرة الأسئلة ولكن لطيبتكم طمعنا في الاستفادة من خبرتكم

أخوكم
أبو زكريا

ربيع
11-11-2015, 09:44 PM
كيف أستطيع معرفة عدد الأسطر في ملف نصي مثل (txetfile)

rabie= TextFile.ReadToTable("AutoPlay\\Docs\\1.txt")
Dialog.Message("Notice",Table.Count(rabie));


او
rabie= TextFile.ReadToTable("AutoPlay\\Docs\\1.txt")
Dialog.Message("Notice",#rabie);

نفس الناتج :abc_152:

ربيع
11-11-2015, 09:53 PM
كيف أستطيع معرفة عدد الأسطر في ملف نصي مثل (richtxet)

Search = RichText.GetText("RichText1", false);
Line = 1;
Position = 1;
while (true) do
local Found = String.Find(Search, "\r\n", Position, false);
if (Found ~= -1) then
Line = Line + 1;
Position = Found + 1;
else
break;
end
end
Dialog.Message("Notice", Line);

ربيع
11-11-2015, 09:55 PM
وهل هناك طريقة لإزالة جميع المسافات الزائدة من الجمل

وضح هل فراغات الاسطر

هل كل الفراغات حتى الفراغات التي تشوه المفردة

وضح لان هناك ازالة غير عملية و لا يمكن تطبيقها

ربيع
11-11-2015, 10:08 PM
الرسالة حينما تكون الجملة سليمة من الأخطاء تظهر الرسالة فارغة

لماذا لا تظهر رسالة تؤكد مطابقة الجملة ؟

result = RichText.GetLine("RichText1", 1);
my_table = {};
result2 = String.Replace(RichText.GetText("RichText1", false), " ", "ثامر2014", true);
Y=Input.GetText("Input1");
b = ""
h =""
for w in string.gmatch (Input.GetText("Input1"), "%S+") do
tbSearchResult = RichText.FindText("RichText1",w, 1, #result+1, false, false);
if not (tbSearchResult) then
b=b..w.."----------------الكلمة ليست من مفردات النص الاصلي او غير متناسبة ترتيبا".."\r\n"
end
end
-----------------------------------------------------
for token in string.gmatch(result2, "[^%s]+") do
e = #token/#token
Table.Insert(my_table, e, token);
e=e+1
belkiss =1+#(my_table)
end
FF=my_table[belkiss-1]
X = String.Replace(FF, "ثامر2014", " ", true);
------------------------------------------------------
for w2 in string.gmatch (X, "%S+") do
result = String.Find(Y, w2, 1, false);
if result == -1 then
h=h.."ما كتبت يفتقد للمفردة".."----------------"..w2.."\r\n"
end
end
if h..b == "" then
Dialog.Message("Notice", "تطابق");

else
Dialog.Message("هاااااام", h..b);
end

أبو زكريا
12-11-2015, 04:16 AM
بيض الله وجهك أخي ربيع
استفدت منكم كثيراً بارك الله فيكم

وضح هل فراغات الاسطر

هل كل الفراغات حتى الفراغات التي تشوه المفردة

وضح لان هناك ازالة غير عملية و لا يمكن تطبيقها

اقصد أي فراغ قبل الكلمة أو في وسطها أو مسافات زائدة بين الكلمات أو في آخر السطر وبدايته

اعتقد أن دالة (trim) تزيل الفراغات قبل وفي نهاية الأسطر ولكن الفراغات الأخرى .

شكراً جزيلاً لاهتمامكم:abc_028:

أبو زكريا
12-11-2015, 04:31 AM
rabie= textfile.readtotable("autoplay\\docs\\1.txt")
dialog.message("notice",table.count(rabie));


او
rabie= textfile.readtotable("autoplay\\docs\\1.txt")
dialog.message("notice",#rabie);

نفس الناتج :abc_152:

أخي الكريم هذه الأكواد تعطيني دائماً عدد الأسطر ثابت وهو 5 مع تغيير الملف وتحريره وإنقاص عدد الأسطر

أبو زكريا
12-11-2015, 05:44 AM
result = richtext.getline("richtext1", 1);
my_table = {};
result2 = string.replace(richtext.gettext("richtext1", false), " ", "ثامر2014", true);
y=input.gettext("input1");
b = ""
h =""
for w in string.gmatch (input.gettext("input1"), "%s+") do
tbsearchresult = richtext.findtext("richtext1",w, 1, #result+1, false, false);
if not (tbsearchresult) then
b=b..w.."----------------الكلمة ليست من مفردات النص الاصلي او غير متناسبة ترتيبا".."\r\n"
end
end
-----------------------------------------------------
for token in string.gmatch(result2, "[^%s]+") do
e = #token/#token
table.insert(my_table, e, token);
e=e+1
belkiss =1+#(my_table)
end
ff=my_table[belkiss-1]
x = string.replace(ff, "ثامر2014", " ", true);
------------------------------------------------------
for w2 in string.gmatch (x, "%s+") do
result = string.find(y, w2, 1, false);
if result == -1 then
h=h.."ما كتبت يفتقد للمفردة".."----------------"..w2.."\r\n"
end
end
if h..b == "" then
dialog.message("notice", "تطابق");

else
dialog.message("هاااااام", h..b);
end

سلمت يمينك

الكود يعمل مع السطر الأول فقط من الملف النصي
بقي كيف انتقل للسطر الثاني والثالث وهكذا لعمل بقية المقارنة ؟

أبو زكريا
13-11-2015, 04:24 AM
هل من مجيب؟؟
:abc_102:

أبو زكريا
13-11-2015, 03:42 PM
المعذرة

أنا مبتدئ في برنامج أوتوبلي
لدي مشروع مطلوب الانتهاء منه سريعاً

هل من حل ؟