לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #6  
ישן 07-05-2006, 08:40
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 5 שנכתבה על ידי bla_bla שמתחילה ב "אתה טועה, הפונקציה בודקת בתוך..."

ס'ודק, טעות שלי, כיון שלא צויין "תחילת מחרוזת", או "סוף מחרוזת".
בכל אופן נראה לי שבמקרה הזה מעבר על אורך המחרוזת בלולאה תו אחר תו עד מציאת התו העברי הראשון, או עד סיום המחרוזת, ובדיקה באמצעות הפונקציה ord תתן תוצאות יעילות יותר (מבחינת חסכון במשאבי עיבוד).

הייתי מציע גם לבדוק רק עברית, כדאי לדעת אם יש תו עברי במחרוזת, אחרת נניח שמדובר במחרוזת באנגלית בלבד (אלא אם מדובר באתר בינלאומי או כזה שיש סיכוי שיכתבו בו בשפה נוספת).

קוד PHP:
<?php

function isHebrew($str)
{
    
$count strlen($str);
    
$a ord('א');
    
$z ord('ת');

    for(
$i=0$i<$count; ++$i)
        if((
$str{$i} >= $a) && ($str{$i} <= $z))
            return 
true;

    return 
false;
}

$isHebrew isHebrew('some מילים');

?>


כמובן שאין צורך במשתנה המופיע בסוף הקוד, אלא אם נרצה להשתמש במידע שוב, אחרת אפשר בשעת הצורך לקרוא לפונקציה, ואין צורך לשמור את התוצאה במשתנה (אלא אם מעוניינים להשתמש שוב במידע כפי שציינתי - כי אז חבל לערוך בדיקה מחודשת לגבי מלל שכבר נבדק).

השתדלתי לכתוב את הפונקציה שתהיה היעילות מקסימלית בעיקר מבחינת ניצול משאבים.
לדוגמה:
1. פרה קידום (במשתנה i) יעיל יותר מאשר פוסט קידום.
2. שמרתי את אורך המחרוזת במשתנה, כדי למנוע קריאה חוזרת ונשנית אל הפונקציה strlen (ולמרות שלא בדקתי זאת, הגיוני שקריאת ערך שמור כמעט לא מבזבז משהו מהמעבד, בעוד קריאה לפונקציה ואף הקלה ביותר, דורשת הרבה יותר משאבים - באופן יחסי לקריאת ערך ממשתנה).
3. true נכתב באותיות קטנות ולא גדולות.

לגבי שורת הבדיקה המעשית (בדיקת התו הנוכחי וההשואה "קטן מ" ו"גדול מ") לא בדקתי אם ניתן לחסוך משאבים נוספים באמצעות השוואה שביטות שונות, יתכן שיש מקום לחסוך משאבים נוספים.

אני די ממהר, אולי לדור יהיה זמן וחשק להסביר מדוע כתיבה כזאת [לגבי הפרטים שציינתי] חסכונית יותר במשאבים.

נערך לאחרונה ע"י ישראל K בתאריך 07-05-2006 בשעה 09:01.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 05:27

הדף נוצר ב 0.04 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר