עבודה עם string ב c#

svoivandim

New member
עבודה עם string ב c#

אני צריך להציג בפקד textbox or label את מחרוזת הבאה:
"<P><FONT face=\"Tahoma, Verdana, Arial\" size=2> This a mail saying... </FONT></P>\n<P><FONT face=Tahoma size=2></FONT> </P>\n<P><FONT face=Tahoma size=2> sd;lkfsd;klf </FONT></P>\n<P><FONT face=Tahoma size=2></FONT> </P>\n<P><FONT face=Tahoma size=2> Thanks </FONT></P>"​
אבל רק את הקטעים המודגשים כאשר אני עושה השמה של המחרוזת הזאת לפקד label הבעיה שקיימים עדיין רווחים, השאלה שלי כזאת איזה פונקציות של string יכולים לעזור לי להפטר מכל הHTML ולהשאיר רק את המחרוזות המודגשות?
 

svoivandim

New member
מצאתי משהו,אבל

זה מוריד לי הכל,גם את התוכן, כלומר את המחרוזת שאני רותה שתישאר
Regex regex = new Regex("</?(.*)>", RegexOptions.IgnoreCase | RegexOptions.Multiline); //str = regex.Replace(str, string.Empty);​
 

EdotK

New member
אז....

תמשיך לחפש בשביל למצוא משהו מתאים.. או שתלמד regex בסיסי על מנת לבנות את הביטוי המבוקש. אפשר להתחיל ב http://www.regular-expressions.info/reference.html
 

EdotK

New member
אתה יכול להשתמש בliteral

במקום בlabel, ויש לו אפשרות להוריד את כל התגים ע"י שימוש במאפיין Mode אאל"ט.
 

svoivandim

New member
שאלה חדשה:

איך אני יוצר דבר כזה: אני הבנתי שעושים את זה עם IFRAME מישהו יכול לשפוך אור על הטכניקה הזאת, כלומר איך לחפש את זה ב google?
 

svoivandim

New member
הכוונה כמובן לבחירת שורה מסויימת

וכתוצאה מהבחירה נפתח מידע נוסף
 

EdotK

New member
קטעים. זה אתר שאנחנו כתבנו ../images/Emo13.gif

אם כי השימוש כאן בIFRAME לא במקום לטעמי, ועדיף בהרבה שימוש בdiv ששולף נתונים באג'קס. יחד עם זאת, הפתרון שמבוצע באתר הוא מאוד אלגנטי, היות והIFrame הזה נפתח בתוך GridView, וזה טריק שבכלל לא קל לעשות
 

svoivandim

New member
זהו,הנקודה היא שאני לא יודע איך

לגשת לפיתוח כזה(בין אם מדובר בDIV -IFRAME -AJAX), כלומר אני יודע HTML,JAVA SCRIPT ,ASP.NET,C SHARP ,ברמה לא גבוה במיוחד, האם יש איזשהו מדריך או משהו אשר מסביר ביתר פירוט איך לממש את מששאלתי לגביו מלכתחילה?
 

24sharon

New member
סתם לצורך סקרנות

למה להשתמש בIFRAME? ואיך באמת מכניסים IFRAME לGRID? בצורה אופקית?
 

DISGUISE

New member
split

מכיוון שאמרת שיש לך רווחים בין כל מילה שאתה רוצה לקוד ה-HTML, הכי משתלם לעשות split לstring הראשי לפי רווחים. יווצר לך מערך של string , שממנו תוכל לדלות את המחרוזות . string []all = mainstring.split(); for (int i=0 ; i < all.length(); i ++) { פה תפריד בין המחרוזות שמכילות ">" או "<" וכל השאר זה המחרוזות שאתה רוצה... }
 

[eLad]

New member
הסרת תגיות HTML מתוך מחרוזת בעזרת Regex

public static string StripHtml(string html) { return Regex.Replace(html,@"<script[\s\S]+?<\/script>|<style[\s\S]+?<\/style>|<!--[\s\S]+?-->|<[\s\S]+?>",""); }​
וקצת הסבר: לתגיות מסויימות יש תוכן שגם לא צריך להציג, כמו script, style, הערות. לכן יש גם למחוק את כל התגית והתוכן שלה. נקודה (.) ב-RX משמעותה כל תו מלבד ירידת שורה. כדי להשיג גם ירידות שורה אפשר להשתמש ב-
(?:.|\n)+​
שבודקת כל תו - האם הוא נקודה או ירידת שורה (ולא שומרת אותו ב-matches של ה-RX עקב שימוש ב :?). שיטה יותר יעילה היא
[\s\S]+​
שיטה זו מכינה רשימת תווים - כל תו שהוא רווח, ירידת שורה, טאב (s\) וכל תו שהוא אינו אחד מאלה (S\). כלומר - כל התווים האפשריים. שתי השיטות נותנות אותה תוצאה. סימן השאלה לאחר ה-+ מסמל ביטוי מינימילי, עליו ניתן לקרוא כאן: http://www.tapuz.co.il/tapuzforum/main/ForumFAQAnswer.asp?id=130&QID=5134
 
למעלה