عابر سبيل
المساهمات : 83 تاريخ التسجيل : 14/03/2013
| موضوع: كيفية معرفة عدد الكلمات في المتغير الإثنين مارس 25, 2013 3:55 am | |
| السلام عليكم اخواني هذا التساؤل من طرف الاخ صفا السلام عليكم وكل عام وأنتم بألف خير بعيد الأضحى المبارك عسى أن تكون كل أيامكم عيدا اليوم لدي عدة أسئلة 1 - أريد أن أعرف كم كلمة موجودة في الاسترنج (يعني مثل الوورد : ) 2- أريد وضع كل كلمة في مصفوفة يعني: - الكود:
-
كود: words = {"safa","Tree","Play"} بدون أن يكون هناك فواصل ( سبيس بار) في الكلمات
هل من طريقة؟؟؟ وجدت الحل هيثم يقول طيب وضح لنا كيف حللت المطلوب .. حتى نستفيد من خبراتك بالتوفيق صفا يجيب مبدئيا - الكود:
-
كود: text = " "..text strFind = " "; result = DLL.CallFunction("CountSubString.dll", "CountSubString", "\""..text.."\",\""..strFind.."\"", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL); words = result space = 0 words_all = {} for x=1,words do find_space = String.Find(text, " ", 1+space) space = space+find_space find_2space = String.Find(text, " ", find_space+1) if find_space == -1 then ----æÕá Çáì ÇáäåÇíÉ find = String.ReverseFind(text, " ") word_now = String.Mid(text, find, -1) num = Table.Count(words_all) if word_now ~= " " then Table.Insert(words_all, num+1, word_now) end elseif find_space ~= -1 then word_now = String.Mid(text, find_space, find_2space-find_space) num = Table.Count(words_all) if word_now ~= " " then Table.Insert(words_all, num+1, word_now) end end end يرد خالد علي و أين الملف CountSubString.dll ؟؟؟
عموما سأعمل على وضع كود يستغنى عنه لكن أرفق الملف ليستفيد الباقون و إنتظر منى الكود
عموما أنت مستواك متقدم أخى safaalfulaij لذلك إليك سيناريو العمل السيناريو سيكون كالأتى 1- إقرأ المستند النصى إلى ريتش تكست 2- البحث عن المتغير الأول بالدالة - الكود:
-
كود: RichText.FindText عند العثور على أى سترينج مطابق للبحث فإن الأوتوبلاى تلقائيا يختزن ترتيب أول حرف و ترتيب آخر حرف فى جدول
3- عمل الحلقة عند البحث التالى فقط إجعل بداية البجث ترتيب المحرف الأخير ليبحث بعد أول نتيجة مع إضافة كل عنصر إلى جدول تنشئه أنت ملحوضة جدول = مصفوفة
4- يمكنك بعدها عد عناصر الجدول أو المصفوفة لتعرف تكرار سترنج فى نص
لمعرفة عدد الكلمات الإجمالى لملف نفذ ما سبق لكن إبحث عن المسافات قم بعد المسافات و أضف إليها واحد
إستنادا إلى الحقيقة الثابتة أصابع اليد الواحدة = 5 الفراغات بينها = 4 حسنا اليوم جبت حل أفضل (لأن السابق كان في مشاكل : )
- الكود:
-
كود: text = Input.GetText("Input1")--استحضار التكست _yah = "\r\n"; yah = DLL.CallFunction("CountSubString.dll", "CountSubString", "\""..text.."\",\"".._yah.."\"", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL); --مسح كل الانترز for x=1,yah do text = String.Replace(text, "\r\n", " ") end text = " "..text.." " strFind = " "; spaces = DLL.CallFunction("CountSubString.dll", "CountSubString", "\""..text.."\",\""..strFind.."\"", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL); words = spaces+1 all_words = {} when_last = 0 --وضع كل كلمة في الجدول for x=1,spaces-1 do first_space = String.Find(text, " ", when_last, false) second_space = String.Find(text, " ",1+first_space, false) when_last = second_space word_p = String.Mid(text, first_space+1, second_space-(first_space+1)) max = Table.Count(all_words) Table.Insert(all_words, max+1, word_p) end نراكم على خير هيثم يقول صراحة قمة في الروعة ولتكتمل الروعة المطلوب من الاخ صفا وضع الملف المفتوح المتعلق بهذا الاستفسار هنا | |
|
Khaled
المساهمات : 2 تاريخ التسجيل : 30/04/2013
| موضوع: رد: كيفية معرفة عدد الكلمات في المتغير الثلاثاء أبريل 30, 2013 7:11 pm | |
| مع احترامی للاخوه، فی طریقه اسهل من هذا: - الكود:
-
txt = TextFile.ReadToString("C:\\MyFile.txt"); my_tbl = DelimitedStringToTable(txt, " ")
الفانکشن موجود فی هذا العنوان: AutoPlay Media Studio 8\Gallery\Scripts\DelimitedStringFunctions.lua | |
|