פורסם 2008 במרץ 117 שנים שלום לכולם, אני בונה תוכנה בעזרת Visual basic 6 (כן אני דיי ישן, אבל החלטתי לעבוד ולהישאר עם זהבגלל שאנחנו עובדים עם זה גם בבית ספר), ומעוניין לחפש בתוך תיבת טקסט (textbox),מילה שנמצאת בין שני מילים ולהעתיק אותה לתיבת טקסט, אבל אני לא מצליח,פשוט לא עולה לי רעיון אפילו איך להתחיל את הקוד, עשיתי חיפוש דיי ארוךבאינטרנט והבנתי שאולי איכשהו intstr קשור לזה ( כניראה) , אני אשמח אםתוכלו לנסות לעזור לי למצוא את הקוד המתאים, ובבקשה עם הסברים.תודה לכולם!
פורסם 2008 במרץ 117 שנים שתי דרכים:1. תשתמש בפונקציה Split על מנת להפריד את המחרוזת למילים, ואז תחפש מילה מילה (באמצעות השוואה רגילה).1. תשתמש ב-InStr בשביל למצוא את המיקומים של המילים שאתה רוצה לחפש, ואז תפריד רק את הקטע הרלוונטי למילים (ידנית או עם split).
פורסם 2008 במרץ 117 שנים מחבר איך אני משתמש ב-split אבל? העניין פה זה שאני רוצהלהעתיק מקוד HTML דיי ארוך של אתר מסויים ולקחת את המילה שנמצאתבין שני מילים, שני המילים נישארות כול פעם , אבל המילה שנמצאת באמצע משתנהכול פעם (כי האתר מתעדכן כול פעם) , ולכן אני רוצה לקחת את המילה שבאמצע,לא הבנתי מה בדיוק Split עושה ואיך היא מפרידה, וממה שהבנתי INSTR מהשהוא עושה בעצם זה מציג לך 1 לוגי או 0 לוגי אם הוא מוצא את המילה שחיפשת בטקסט...האם אפשר קוד דוגמא לפחות שיוכל להדריך אותי?
פורסם 2008 במרץ 117 שנים http://msdn2.microsoft.com/en-us/library/aa263365(VS.60).aspxהפונקציה InStr לא מחזירה 0 או 1, היא מחזירה לך את המיקום של המילה בתוך הטקסט (או 0 אם המילה לא נמצאה).
פורסם 2008 במרץ 117 שנים מחבר http://msdn2.microsoft.com/en-us/library/aa263365(VS.60).aspxהפונקציה InStr לא מחזירה 0 או 1, היא מחזירה לך את המיקום של המילה בתוך הטקסט (או 0 אם המילה לא נמצאה).נגיד היא מחזירה לי את המספר 4667 זה המיקום של המילה, אבל מה זה אומר לי , המיקום של האות הראשונה של המילה?ולמה אני צריך את ה-Split, אני אמור בעצם לקחת את המיקום של המילה הראשון ואת המיקום של המילה השנייה, ואז בעצםלהפריד אותם בעזרת SPLIT? איך אני משתמש בזה ? האם אני צודק?אני אנסה לשבת על זה עוד יומיים כניראה אני אחזור עם קוד אולי שאני יצליח לעלות.. (מקווה),ותודה רבה רבה על העזרה... אשמח אם תוכל לענות על השאלות הלא מובנות...
פורסם 2008 במרץ 117 שנים כן, זה בדיוק מה שהיא עושה.לדעתי הדרך הפשוטה היא דווקא הראשונה שהצעתי - תשתמש ב-Split על מנת להפריד את הטקסט למילים, ואז פשוט תחפש את המילים שלך (תעבור מילה מילה ותשווה).
פורסם 2008 במרץ 217 שנים מחבר אוקיי, אז ככה, אני אתן עכשיו דוגמא של מה שאני רוצה לעשות ומה שניסתי...מה שאני מנסה לעשות זה לקחת מתיבת טקסט שבטופס אחד מילה (לא בדיוק מילה אלא סוג של סיסמא או קוד שמשולב עם מספרים ואותיות),ולהעביר אותה לתיבת טקסט שב-Form2, עכשיו נגיד והמילה שלי נמצאת בין המילים Hello , ו- </br> (קוד HTML),עוד משהו חשוב ששחכתי לציין, אין במילים רווח מפני שזה באמצע קוד HTML(אבל לפעמים יש רווחים)אני רוצה שבעצם מה שיקרה התוכנה תעתיק את המילה הזו (שהיא משתנה כול פעם), לText1 ב-טופס מספר 2,מה שעשיתי ביינתים זה תיבת טקסט ומשתנה בשם findועשיתי ככה:find = instr(form1.text1.text, "Hello")והוספתי עוד משתנה בשם dataועשיתי ככה:data=instr(form1.text1.text,"</br>")ראיתי שהוא מצא לי בעצם את המיקום של ההתחלה של המילים הללו,אך אני לא יודע מה לעשות הלאה, אני לא יודע איך אני משתמש במיקומים האלה בשביל למצוא את המילה שבאמצע?ואם תוכלו לפרט על הדרך הקלה יותר (SPLIT) , ובבקשה אם תוכלו לתת דוגמא... תודה רבה רבה!
פורסם 2008 במרץ 217 שנים הבנתי.קודם כל, כשאתה כותב קוד, עטוף אותו בטג קוד (כפתור # למעלה) כדי שיהיה קריא.Split באמת לא מתאים כאן, בדיוק כי המילה לא בהכרח מוקפת ברווחים.נניח שזה הטקסט שלך:Hello shy<br/>אז אחרי שתפעיל את החיפוש, find יהיה שווה 1 (כי המילה Hello מופיעה בתחילת הטקסט) ו-data יהיה שווה 10 (כי המילה </br> מופיע החל מהתו העשירי בטקסט).עכשיו אתה צריך לשלוף את הטקסט החל מסוף המילה Hello (כלומר - הערך של find + אורך המילה Hello) ועד תחילת המילה </br> (הערך של data). יש?חוץ מזה, אתה צריך לדאוג להעיף רווחים אם יש כאלה.
פורסם 2008 במרץ 217 שנים מחבר הבנתי את ההסבר שלך (הסבר מצויין ד"א תודה), אחרי שאני יודע נגיד כמו שאמרת ש-FIND יהיה שווה ל-1 וDATA יהיה שווה ל-10,השאלה היא איך אני שולף את הטקסט הזה? מה הפקודה? ואיך ניתן להעיף רווחים (אם יש),בקשר ל-MID אני עכשיו יעשה חיפוש בקשר לפקודה הזו ואיך משתמשים, ביינתים תודה רבה על העזרה!ובבקשה תענו על השאלה שלמעלה.... ממש ממש תודהעריכה:הצלחתי!! תודה רבה לכולם!הקוד למי שאיי פעם יחפש:inf = InStr(Form1.Text1.Text, "Hello:")data = InStr(Form1.Text1.Text, "<br/>")find2 = InStr(inf, "O")find = Mid(Form1.Text1.Text, inf, data - inf)found = Mid(find, 6, data - find2)Text1.Text = foundהסבר קצר:Inf, data,find,find2 found הם משתנים מסוג String.INF זה בעצם המיקום של המילה HelloDATA זה המיקום של המילה</br>FIND זה בעצם "להוציא" את כול המילים שיש בין Hello ל-<br/>, find2 זה בעצם המיקום של האות האחרונה של המילה Hellofound זה בעצם חיסור של המיקום של המילה <br/> עם החיסור של המקום של המילה האחרונה (האות הראשונה של המילה האחרונה והאות האחרונה של המילה הראשונה) שזה בעצם האורך של המילה שאני רוצה, וביקשתי ממנו בעצם להתחיל מ-6 כי זה איפה שהמילה שלי מתחילה בעצם כי Hello מורכב מ-5 תווים וה-6 זה המילה שלי.מצטער שאני קצת לא מובן.. השתדלתי, שברתי את הראש בשביל הקוד הזה... תודה רבה רבה רבה לכולם!!!!
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.