16

كود روبي لتفكيك كلمات جملة ما وتضمينها في مصفوفة

الحمد لله بالأمس كنت أعمل على تطوير محرك البحث الخاص بمدونتي حيث أنني لم أحب إستخدام محرك بحث قوقل المخصص لذلك بدأت في تطوير محرك بحث خاص بالمدونة و كوّنت كود بلغة روبي عندما يقوم المستخدم بإدخال جملة البحث يقوم هذا الكود بتفكيك الجملة إلى مكوناتها و هي الكلمات و إضافة هذه الكلمات إلى مصفوفة لأتمكن من البحث في التدوينات عن كل كلمة لوحدها .

مثلا :

params[:txt] = "How are you ?"
Array = ["How","are",you","?"]

وهذا هو الكود أحببت أن أشاركه معكم و أتمنى أن أستقبل أرائكم :

txt_long = params[:s_txt].length.to_i
for x in 0..txt_long
    if params[:s_txt][x] == " "
        counter = counter.to_i + 1.to_i
    end
end

comma = Array.new(counter.to_i)
x = 0

for j in 0..txt_long
    if params[:s_txt][j] == " "
        comma[x] = j.to_i
        x = x.to_i + 1.to_i
    end
end

words = Array.new((counter.to_i + 1.to_i))

for x in 0..counter.to_i
    if x == 0
        words[x] = params[:s_txt][0..comma[x.to_i].to_i - 1.to_i]
    elsif x == counter.to_i
        words[x] = params[:s_txt][comma[x.to_i - 1.to_i].to_i + 1.to_i..txt_long.to_i]
    else
        words[x] = params[:s_txt][comma[x.to_i - 1.to_i].to_i + 1.to_i..comma[x.to_i].to_i - 1.to_i]
    end
end

طبعاً لم أستخدم البرمجة الكائنية المنحى في برمجة هذا الكود و لكن سأسعى لتحويله إلى Class و مجموعة Methods تقوم بهذا العمل .


التعليق السابق

تستطيع استخراج الكلمات ببساطة باستخدم:

"params[:txt].scan /\S+/"a

بدون "a"

يبدو أنك مبتدأ في Ruby أنصحك بالتعلم من RubyMonk و مراجعة ruby-doc.org

for عادة ﻻ تستخدم في Ruby

أكثر شيء يستخدم مكانها each

مثلا: params[:txt].each { |letter| puts letter }"aa"

تجاهل الـ "aa"

شكراً اخي , هل يمكننا التواصل على الفيسبوك ؟