שאלה ב-#C

שאלה נוספת

פתחתי קובץ טקסט כך:
StreamReader sr = File.OpenText(path);​
אני רוצה לחפש מילה בתוך הקובץ ולהחליף אותה באחרת אני צריכה לרוץ על כל הקובץ בשביל זה? או שיש אפשרות אחרת, חיפתי פונקציה כמו seek ולא מצאתי. תודה
 

nattygur

New member
אני הייתי משתמש ב

Replace של StringBuilder בכדי למנוע התעסקות כ Immutable strings.
StringBuilder sb = sr.ReadToEnd(); sb = sb.Replace("@","כרוכית");​
 

gilad g

New member
תיקון קטן ../images/Emo13.gif

StringBuilder sb = new StringBuilder( sr.ReadToEnd() ); sb = sb.Replace("@","כרוכית");​
ReadToEnd מחזיר string ולא StringBuilder
 

gilad g

New member
ו... עוד דבר:

אם כל מה שאת מתכוונת לעשות זה Replace, אין צורך להשתמש ב-StringBuilder, כי המתודה ToString שלו בכל מקרה יוצרת string חדש.
 
תודה רבה, עוד שאלה באותו עניין

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

פשוט פרח לי מהראש ה-IndexOf. ו-לא הבנתי, למה להשתמש ב-StringBuilder ולא ב-string רגיל?
 

nattygur

New member
עדיין Stings יווצרו כמספר הפעמים

ש Replace יחליף strings לכן כדאי להשתמש ב StringBuilder.
 
זה אמור להיות כך?

כתבתי מה שאמרתם, זה עובד אבל נראה לי די מסורבל, כך זה צריך להיות?
StreamReader sr = File.OpenText(path); StringBuilder sb = new StringBuilder( sr.ReadToEnd() ); sr.Close(); sb = sb.Replace(TheWord,"test"); StreamWriter sw = new StreamWriter(path); sw.Write(sb.ToString()); sw.Close();​
ואני לא מוצאת שום פונקציה שרק מחפשרת את המילה ומחזירה לי את המקום שלה או משהו כזה (בלי להחליף, רק לדעת מה כתוב שם)
 
שאלה אחרונה לפני החג../images/Emo142.gif

יש לי DataGrid, כשלוחצים על לינק בטור הראשון (שנקרא Edit) שאר הטורים אמורים לההפך ל-EditBox. כתבתי:
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { if (((LinkButton)e.CommandSource).CommandName == "Edit") { DataGrid1.EditItemIndex = e.Item.ItemIndex; }​
אבל מה שקורה הוא כך: לחיצה ראשונה על המילה edit בשורה מסוימת - לא קורה כלום. לחיצה על המילה edit בשורה אחרת - השורה הקודמת הופכת לeditBox. וכן הלאה - כל לחיצה הופכת את השורה הקודמת שנלחצה ל-editbox/ מה עושים? (חוץ מללחוץ פעמים על אותה שורה)
 
זה מוחק את ה-DataGrid

אז עשיתי את כל הבניה מחדש ועכשיו זה עובד (ובסוף dataBind) תודה רבה
 
למעלה