עבור לתוכן

חזרתי לנסות לשמור מידע בקובץ.. הצלחתי בערך.. צריך עזרה...

Featured Replies

פורסם

חבר עזר לי ואני מצליח לקרוא מקובץ, אבל לא לקרוא ולרשום ביחד...

StreamReader x = new StreamReader(game_path_txt.Text + "\\settings.ini");
StreamWriter f = new StreamWriter(game_path_txt.Text + "\\settings.ini");

if (x.ReadLine().IndexOf("ORIGINAL") >= 0)
{
f.Write("MODDED");
radioButton1.Checked = false;
radioButton2.Checked = true;
}
x.BaseStream.Seek(0, SeekOrigin.Begin);
if (x.ReadLine().IndexOf("MODDED") >= 0)
{
f.Write("ORIGINAL");
radioButton1.Checked = true;
radioButton2.Checked = false;


}

יש לי את הקוד הזה... אבל אני מקבל שגיאה שהקובץ נמצא בשימוש.. דבאג הראה שזה משהו עם השורה השנייה...

מה אני אמור לעשות?

פורסם

אתה יוצר שגיאה באיך שאתה משתמש בקובץ שם, תעשה FileStream חדש לקובץ תדאג שההרשאה תהיה ReadWrite ואז תיצור streamReader ו streamWriter ששניהם יכולים לקבל בתור פרמטר FileStream

פורסם
  • מחבר

אני מקבל 2 שגיאות... כנראה לא רשמתי נכון...

The best overloaded method match for 'System.IO.FileStream.FileStream(string, System.IO.FileMode)' has some invalid arguments

Argument '2': cannot convert from 'System.IO.FileAccess' to 'System.IO.FileMode'

FileStream y = new FileStream(game_path_txt.Text + "\\settings.ini", FileAccess.ReadWrite);

פורסם

במקום fileaccess תרשום FileMode נקודה ותראה מה יוצר.

פורסם
  • מחבר

הצלחתי.. תודה... רק בעיה אחת... הוא רושם לי את זה אחרי הטקסט שכבר רשום, אני רוצה להחליף את מה שרשום... מה אני עושה?

פורסם

אם אתה רוצה להחליף את מה שכתוב פשוט תדרוס את הקובץ, אם אתה רוצה להחליף רק חלק אז תשמור את הטקסט בזיכרון, תשנה את מה שאתה רוצה ותכתוב שוב את הקובץ. אם אתה רוצה רק להוסיף אז ב filemode תעשה append

..

נ.ב למה חזרת ל INI?? הרי ברור שיהיה לך יותר קשה ומסורבל לעבוד איתו לעומת XML

פורסם
  • מחבר

לדרוס את הקובץ?! :P

...

חבר הביא לי דרך לשמור לכל קובץ, אז החלטתי שזה יהיה INI... אני יכול לשנות לTXT אם אני ירצה...[br]פורסם בתאריך: 2.09.2007 בשעה 15:53:35


לדרוס את הקובץ?! מה הכוונה? איך אני עושה את זה? ???
פורסם

ככה:

FileStream y = new FileStream(game_path_txt.Text + "\\settings.ini", FileMode.Create);

פורסם
  • מחבר

הוא רושם לי שכבר קיים משתמש בשם Y...

      FileStream y = new FileStream(game_path_txt.Text + "\\settings.ini", FileMode.OpenOrCreate);
StreamReader z = new StreamReader(y);
StreamWriter c = new StreamWriter(y);
if (z.ReadLine() == "ORIGINAL")
{
c.Write("MODDED");
radioButton1.Checked = false;
radioButton2.Checked = true;
}
z.BaseStream.Seek(0, SeekOrigin.Begin);

if (z.ReadLine() == "MODDED")
{
c.Write("ORIGINAL");
radioButton1.Checked = true;
radioButton2.Checked = false;
}
c.Close();
z.Close();

איפה אני בכלל אמור להוסיף את זה?

פורסם

מה זאת אומרת "קיים משתמש בשם y"?

ואמרתי לך להשתמש ב-Create, לא OpenOrCreate.

מה שאתה צריך לעשות זה ככה:

א. לפתוח את הקובץ לקריאה (FileMode.Open).

ב. לקרוא את כל הנתונים שאתה צריך.

ג. לסגור את הקובץ.

ד. לפתוח את הקובץ מחדש לכתיבה (FileMode.Create).

ה. לכתוב את כל הנתונים שצריך.

ו. לסגור את הקובץ.

זה עושה את העבודה הרבה יותר פשוטה מאשר לנסות לקרוא ולכתוב בו זמנית.

פורסם
  • מחבר

אתה יכול לרשום את הקוד שאני צריך? אני לא ממש מבין...[br]פורסם בתאריך: 2.09.2007 בשעה 23:05:34


מישהו יכול לעזור ???
פורסם

ilan שמות המשתנים שלך זוועתיים!! תתן למשתנים שמות בעלי משמעות! :cool2:

פורסם
  • מחבר

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

פורסם

תכתוב בדיוק אבל בדיוק מה אתה רוצה שיקרה ואני אכתוב לך את הקוד.

פורסם
  • מחבר

אני צריך שתשנה לי את הקוד כדי שיוכל לעבוד..

      FileStream y = new FileStream(game_path_txt.Text + "\\settings.ini", FileMode.OpenOrCreate);
StreamReader z = new StreamReader(y);
StreamWriter c = new StreamWriter(y);
if (z.ReadLine() == "ORIGINAL")
{
c.Write("MODDED");
radioButton1.Checked = false;
radioButton2.Checked = true;
}
z.BaseStream.Seek(0, SeekOrigin.Begin);

if (z.ReadLine() == "MODDED")
{
c.Write("ORIGINAL");
radioButton1.Checked = true;
radioButton2.Checked = false;
}
c.Close();
z.Close();

הכוונה היא שבמקרה שרשום בקובץ settings.ini את המילה "ORIGINAL", הוא יחליף אותה ל"MODDED" ויפעיל את radioButton2 ויכבה את radioButton1

במקרה ורשום בקובץ "MODDED" שישנה ל-"ORIGINAL" ויכבה את radioButton2 וידליק את radioButton1

מקווה שהבנתה.. וזה חשוב שיהיה עם הקובץ settings.ini כי כבר חלק עשוי עם הקובץ הזה... כל מה שצריך ליהיות רשום בקובץ זה "ORIGINAL" או "MODDED"

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים