את הסקריפט הזה הוכרחתי לכתוב בגלל האתר שלי. באתר זה ישנם מאמרים וקטעי טקסט
ארוכים מני ים. ונתקלתי בבעיה: אם מישהו מחפש את המילה "כלב" אזי הוא יכול לקבל את
המילה "כלבבי" בתור תשובה אף שלא היה זה מבוקשו. [אמנם יכולתי לכתוב סקריפט אשר
יחפש רק את המילה המבוקשת בדיוק אבל לפעמים זה לא טוב שאז המילה "כלבלב" לא תמצא אף
שודאי המחפש התכוון גם אליה.]
הפיתרון הטוב ביותר לדעתי הוא להציג ציטטה מתוך המאמר [כשבע מילים לפני ואחרי המילת
מפתח] אשר הקורא יחליט אם זה קשור למה שהוא חיפש או לא וזה מטרת הסקריפט הבא.
הסקריפט
<%
'part one
str = "שיר המעלות אשא עיני אל ההרים מאין יבוא עזרי עזרי"
str = str & "מאם אדני עושה שמים וארץ אל יתן למוט רגלך אל ינום שומרך"
S = Instr(str,"יבוא")
i=1
x=s
For i = 1 To 5
x = Instr(x+1,str," ")
if x=0 then
x= Len(Str)+1
i=10
end if
Next
'part two
firstr= Mid(str,1,s-1)
j=StrReverse(firstr)
i=1
y=1
For i = 1 To 5
y = Instr(y+1,j," ")
Next
if y > 0 then
start=s-y
else
start=1
end if
sum=x-start
final= Mid(str,start,sum)
response.write final
%>
הסבר
בחלק הראשון הכנסתי מחרוזת [עם תוכן מועיל] לתוך משתנה מצאתי ע"י instr את מיקום מילת המפתח.
ע"י לולאה מצאתי את הרווח החמישי שאחרי המילה המבוקשת וכך מצאתי את הגבול של המחרוזת הקטנה אשר ברצוני להציג.
בחלק השני רציתי למצוא את ה5 מילים לפני המילה לכן שלפתי את כל המחרוזת מהתחלה עד המילה המבוקשת ע"י mid.
אח"כ הפכתי את המחרוזת החדשה מ"שלום" ל"םולש" ע"י StrReverse.
מצאתי את מספר התווים שנמצאים עד הרווח החמישי (אחר המילה החמישית ועתה יש לי את נקודת ההתחלה.
ועתה יש את נקודת ההתחלה כמות התוים לשליפה ע"י חיסור התו האחרון עם הראשון והמחרוזת הסופית מוכנה.
עוד טיפ קטן
str=replace(str,keyword,"" & keyword & "")
זה פשוט צובע את כל מילות המפתח (הערך שהוזן לחיפוש) לצבע אדום נחמד ושימושי.
בהצלחה!
|