עזרה בפקודה

  • פותח הנושא kalg
  • פורסם בתאריך

kalg

New member
עזרה בפקודה

שלום השאלה שלי היא: איך אני עושה בפקודת $read שמתי שאני יגיד לו למצוא ולקרוא מקובץ טקסט שורה שמתחילה במילה מסויימת הוא ידלג על המלה המסויימת הזאת ויתחיל לקרוא את המשפט מהמלה השניה
 

havlaz

New member
ישנה פונקציה

בשם $gettok היא יכולה לחלק לך מחרוזת, לחלקים לפי קריטריון
$gettok(text,num,chr)​
למשל כדי לדעת כמה מילים יש במשפט פורום מירק וIRC הפורום הטוב במדינה נכתוב:
$gettok(פורום מירק וIRC הפורום הטוב במדינה,0,32)​
0 סימנו שאנחנו רוצים לקבל את מספר המילים לפי חיתוך של רווח, שזה צ´ר 32 אותו דבר היינו יכולים לעשות עם לקבל את מספר המילים לפי חיתוך של - אז למקרה שלך, כדי לקבל את המילה השניה כתוב
$gettok(text,2,32)​
עכשיו זה יחזיר את המילה השניה, כדי לקבל את שאר המשפט לאחר המילה השניה או שתבנה לולאה שתכניס את הכל למשתנה החל מגטוק 2 עד הסוף (בודקים עם 0) או שנהיה קצת יותר מתוחכמים ונכנס ללמוד עוד כמה פקודות $len יביא לנו את מספר התווים במחרוזת $mid נוכל לקבוע מאיפה עד איפה לקבל מחרוזת למשל
$mid(text,2,4)​
יחזיר לנו ext מהתו השני עד הרביעי עכשיו נאחד את הכל, כדי לבדוק כמה שווה המילה הראשונה, ואז להשתמש בmid גדי לשלוף את כל מה שאחריה
$mid(abcd cow,$calc($len($gettok(abcd cow,1,32))+1),$len(abcd cow))​
יחזיר לנו מתוך abcd cow רק את cow תהנה
 

Rul3R

New member
אני סתם מטריד

אבל
$mid(text,2,4)​
לא מחזיר מהתו השני עד התו הרביעי כמו שאמרת, הוא יתחיל לספור מהתו השני - ארבע תווים, ויציג את כולם, זאת אומרת מהתו השני עד התו החמישי. במקרה הספציפי הזה זה לא משנה כי כתבת רק מילה אחת (text) אבל אם זאת הייתה מילה יותר ארוכה או יותר ממילה אחת זה כבר היה משנה ומחזיר גם את התו החמישי.
 

havlaz

New member
צודק, טעות שלי

עכשיו אני גם שם לב ששמתי $len בסוף, במקרה שלנו רצינו את כל המשפט אז זה לא מפריע, אבל אנחנו יוצאים מהיקף המחרוזת
 
למעלה