שלח תשובה

זירת השאלות

254
צפיות
19
תשובות

שאלה על מערכים

,‏ 17 ביוני, 2004

במאמר על מערכים ב VBS יש הסבר על FILTER  אז חשבתי אם אפשר לעשות חיפוש עם הפילטר לבחור את המילים עם האות או הסטרינג שחיפשנו ולשים להם צבע BACKGROUNG  ז"א לעשות את החיפוש עצמו עם WHERE או איך שאתם עושים לאחר שמוצאים את התוצאות מחפשים איפה הסטרינג שחיפשנו עם FILTER לסמן אותו ואז לחבר אותם עם פונקציית JOIN  ואז יוצא שהמילים שחיפשנו יסתמנו בצבע וכל שאר המילים  לא …
אז שאלתי היא…  האם מה שאמרתי זה נכון , האם אפשר לעשות דבר כזה ?

תגיות:

19 תשובות

  1. מה רע ברפלייס פשוט?
    בלי להכביד עם מערכים.

  2. BuildHome הגיב:

    דוגמא קטנה

    <%
        str = Request.Form("Search")
        str = Replace(str,str,"<span style=""background-color:yellow;"">"&str&"</span>")
    %>

    הקוד מחליף את מילת החיפוש באותה המילה רק עם רקע בצבע צהוב.
    שיטה פשוטה וקלה.

  3. ניר טייב הגיב:

    במקרה שהדגמת מספיק רק לשרשר אליו את
    התגיות

    <% str = "<span style=""background-color:yellow;"">"&Request.Form("Search")
    &"</span>")

  4. BuildHome הגיב:

    כן נכון אבל הפתרון שלך לא מתאים לו
    הוא צריך לבצע החלפה בתוך כל תוכן הודעה או כל תוכן אחר כך שמה שכתבתי מתאים לו מאחר והוא מבצע החלפה בתוך תוכן מלא ושונה וצריך לבצע החלפה רק למילת החיפוש ולא לכל התוכן.

  5. ניר טייב הגיב:

    עדיין אתה טועה
    כך צריך להיראות הריפלייס

    strSearch = Request.Form("Search")
    strMessage = Replace(strMessage,strSearch,"<b>"&strSearch&"</b>")

  6. BuildHome הגיב:

    כן אני יודע
    ראיתי שטעיתי בשורה הראשונה אבל חבל היה לכתוב עוד הודעה..

  7. MasterMind הגיב:

    אהה אוקי ויש לי עוד שאלה
    הוצאתי מידע עם GETSTRING  והוא נראה ככה 1,2,3,3,4,8,97,5
    (זה בשביל פורום רקורסיבי) אז איך אני יכול להגיד לו שלמשל ה5 נתונים הראשונים שייכים להודעה הראשונה  וה 5 נתונים השניים שייכים לשנייה
    איך עושים את זה ?

  8. ניר טייב הגיב:

    אז ככה…
    עליך לפצל את המחרוזת למערך ע"י הפונקציה SPLIT

    JS:
    str = str.split(",")

    VBS:
    str = SPLIT(str,",")

    לאחר מכן אתה מוזמן לקרוא את המאמר שלי על ה-getRows ב-JS כי המערך שאתה מקבל יהיה כמו מערך getRows של JS ובמאמר שלי על פורום רקורסיבי אני משתמש בטכניקה הזו
    (מדור ASP מאמרים למתקדמים)

  9. MasterMind הגיב:

    אני קראתי את המאמר שלך
    אבל במאמר אתה משתמש בפונקציית GETSTRING


    strRecArray = rs.getString(2,-1, ",", ",")

  10. ניר טייב הגיב:

    נכון ולאחר מכן
    אני מעביר את המחרוזת ללקוח ומפרק אותה למערך חד מימדי (כמו מערך חד מימדי של GETROWS ב-JS)

  11. MasterMind הגיב:

    אההה
    ואז נגיד התא הראשון הוא השם משתמש
    התא השני הוא ההודעה
    ככה זה הולך ?
    ואתה קורא להם ככה ?


    INDEX+1

    ולשני


    INDEX+2

  12. ניר טייב הגיב:

    תא ראשון הוא רק INDEX
    תא שני הוא INDEX+1
    אתה יכול להתייחס אל INDEX כאילו הוא 0 ב-getRows שנפלט ב-VBS

    לפי השיטה שלי כך פונים לאיבר במערך ה-getRows בכתיבת JS

    INDEX = מספר השורה*מספר השדות+מס’ השדה

    כאשר שורה ראשונה היא 0 ומס’ השדה הראשון ברשומה הוא 0

    נגיד יש לנו 5 רשומות ובכל רשומה 7 תאים
    אנו רוצים לפנות לשדה השני ברשומה 4 אז נעשה כך:

    index = 4*6+1 = 25

  13. MasterMind הגיב:

    הלוואי וזה היה כזה קל
    אחרי כל הלמידה עדדין לא מצליח לי  ניר  סתכל מה עשיתי


    ASP::

    rs.open " SELECT top 5 * from Forum ", oConn, 3, 3

    If Not rs.EOF Then
    strRecArray = rs.getString(2,-1, ",")
    cntFields = rs.fields.count
    End If

    JS::
    <script type="text/javascript">
    var recArray = "<% =strRecArray %>"
    recArray = recArray.split(",")
    </script>


    הטעות היא  קבוע מחרוזת לא גמור
    הנה הקוד מקור של התוצאה


    <script type="text/javascript">
    var recArray = "1,13,0,3,3,13,08/06/04 17:06:55,08/06/04 15:28:59
    1,2,0,1,1,2,08/06/04 15:28:59,08/05/04 15:28:59
    1,4,2,2,2,4,08/06/04 15:41:13,11/06/04 15:41:13
    1,14,0,123,123,14,08/06/04 17:10:53,08/06/04 17:10:53
    1,15,4,נועם,נעופ
    ,4,08/06/04 17:17:32,
    "
    recArray = recArray.split(",")
    </script>

    עזרה, פליז…

  14. ניר טייב הגיב:

    נסה:


    <script type="text/javascript">
    var recArray = "<% =strRecArray %>"
    recArray = recArray.substr(0, (recArray.length-1))
    recArray = recArray.split(",")
    </script>

  15. ניר טייב הגיב:

    ובשרת


    strRecArray = rs.getString(2,-1, ",")
    strRecArray = replace(strRecArray, vbCrLf, "")

  16. MasterMind הגיב:

    עדיין
    שגיאה " קבוע מחרוזת לא גמור"  
    ניר  ניסיתי לרשום במקום הStr Rec Array
    רק 5 וזה פעל אז אולי הבעייה בגאטסטרינג

    ( גאטסטרינג  GET STRING   AKA )
    הנה הקוד ששמתי בגאטסטרינג


    rs.open " SELECT * from Forum ", oConn, 3, 3
    If Not rs.EOF Then
    strRecArray = rs.getString( 2 ,-1 , ",")
    End If

  17. ניר טייב הגיב:

    עכשיו שמתי לב…
    לא הלכת לפי המאמר

    strRecArray = rs.getString(2,-1, ",",",")

  18. MasterMind הגיב:

    עובד אבל מתוסבך
    מופיעות לי 2000 הודעות בעמוד אחד וזה נתקע לי אחרי כמה שניות !
    וכאשר אני לוחץ על אחד מההודעות למטה זה פותח לי את ההודעה למעלה
    וכאשר אני לוחץ שוב זה סוגר ז"א אני לוץ על הודעה בסוף הדף וזה פותח את ההודעה בתחילת הדף !
    ניר אתה לא יכול לשלוח לי פורום רקורסיבי מוכן ז"א רק העמודים של הקודים
    כי אני מנסה ומנסה  אולי אם תביא ואני אקרא אני אראה איפה טעיתי !
    בכל מקרה אם אתה רוצה לשלוח אז תעשה את זה בקובץ TXT  הרי זה כי קל…

    ZNX מראש   נועם צברי

  19. ניר טייב הגיב:

    טוב שמע
    לפני כמה זמן העלתי כאן קובץ תיקון (תעשה חיפוש)
    בכל מקרה במהלך השבוע אני אשלח לילדה את התיקונים (היא לא מצאה הבדלים בין הקודים) והיא תשנה את הקודים

שלח תשובה