פורסם 2011 באוקטובר 2014 שנים יש לי תרגיל שבו אני קורא נתונים מקובץ טקסט, כל שורה זה אובייקט והא מורכבת ממספרים שמופרדים בניהם בפסיק, המספר האחרון בכל שורה זה מספר העותקים של אותו אובייקט (זה אובייקט מסוג Movie).אחת המתודות שעלי לכתוב זה השכרת סרט אז אחרי ההשכרה אני רוצה לעדכן את המלאי ולהוריד את מספר העותקים של אותו סרט (בתנאי כמובן שמלכתכילה הוא עמד על יותר מאפס), אז מה שקורה שבהשכרת סרט החבר שמשכיר נותן את שם הסרט (שנמצא בתחילת של שורה במקום הראשון) ואז אם אותו סרט קיים הוא מושכר.אז מה שאני עושה זה אחרי שהמתודה מקבלת סרט מסויים היא קוראת שורה מהקובץ ואם ה-ID של הסרט שהחבר נתן שווה ל-ID של השורה שנקראה הסרט יושכר לחבר ואני רוצה לערוך את אותו השורה שמייצגת סרט ולהוריד את המלאי אבל אני רוצה לעדכן את הקובץ טקסט, כתבתי משהו אבל הקובץ קטסט שלי (נקרא בתוכנית data.txt) לא מתעדכן: public void RentMovie(Movie m) { FileStream fs = new FileStream("data.txt", FileMode.Open, FileAccess.ReadWrite); StreamReader sRead = new StreamReader(fs); StreamWriter sWrite = new StreamWriter(fs); while (!sRead.EndOfStream) { string ReadLine = sRead.ReadLine(); string[] split = ReadLine.Split(new char[] { ',' }); if (m.mMovieID == split[0]) { int Number = int.Parse(split[3]); if (Number > 0) { Number--; string newLine = split[0] + "," + split[1] + "," + split[2] + "," + Number; break; } else { } } } fs.Close(); }
פורסם 2011 בנובמבר 114 שנים קובץ הטקסט לא משתנה כי לא שינית אותו חבוב.שים לב שכל מה שאתה עושה זה לקרוא שורות מהקובץ וליצור בכל איטרציה מחרוזת של השורה החדשה. עם זאת, לא באמת החלפת את השורה הישנה בשורה החדשה בקובץ...בהצלחה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.