سلام
بازم exception عکس میزارم MSDN هم گشتم ولی چیزی تفهمیدم ...
سلام
بازم exception عکس میزارم MSDN هم گشتم ولی چیزی تفهمیدم ...
یعنی stream شما محتواش آسیب دیده یا connection ی چیزی قطع شده.
تا کد اینجا نزارید که چیزی معلوم نمیشه.
آخرین ویرایش به وسیله FastCode : دوشنبه 01 شهریور 1389 در 13:57 عصر
public static string searchWord(string word)
{
if (File.Exists("Words.wd"))
{
using (FileStream objFS = new FileStream("Words.wd", FileMode.Open, FileAccess.Read))
{
StreamReader objSR = new StreamReader(objFS, Encoding.UTF8);
BinaryFormatter objBF = new BinaryFormatter();
objFS.Seek(0, SeekOrigin.Begin);
while (objFS.Position != objFS.Length)
{
Word objWord = new Word();
objWord = (Word)objBF.Deserialize(objFS);
if (string.Compare(objWord.EStr.ToLower(), word.ToLower()) == 0)
{
return objWord.PStr;
}
//objFS.Position = 0;
}
objFS.Close();
//objSR.Close();
}
}
return "";
}
خط آبی exception میده ...
این کاری که شما کردی اصلاْ اصولی نیست.
برای این کارها از یه فایل sqlite استفاده کنید.
کد نویسیش کمتره.سرعتش خیلی بیشتره.یعنی یه چیزی حدود ۱ میلیون برابر توی یه میلیون کلمه.
و فایلش یه این راحتی آسیب نمیبینه.
مشکل فایل شما هم الان میتونه این باشه که واقعاْ آسیب دیده.چون من چیز زیادی از کد شما متوجه نشدم.
سلام ممنون از چواب اگه میشه یه منبع در مورد این sqlite به من بدین
در مورد اینکه میگین فایل ممکنه آسیب دیده باشه من این طور فک نمیکنم
به این قسمت از کد دقت کنید :
if (string.Compare(objWord.EStr.ToLower(), word.ToLower()) == 0)
{
return objWord.PStr;
}
هر موقع این if و true میشه برنامه هیچ مشکلی نداره اما هر موقع false میشه eception میده این کمکی نمیکنه مشکل مشخص بشه ؟؟
ایراد 1.
= new Word();
اضافیه.
ایراد 2.
اگر اینطور که گفتید باشه,فقط یه کلمه توی فایلتون هست.
بله درسته یک کلمه بیشتر نداره اصلا من خودم به فایل کلمه اضافه میکنم فعلا هم فقط یه کلمه بیشتر داخلش نزاشتم
من یک کلمه رو میدم به تابع اون داخل فایلو میگرده که آیا کلمه مشابهی هست اگه هست که :
return objWord.PStr;
حالا اگه نیست چرا exception میده با تموم شدن FileStream (اینجا objFS) از حلقه WHILE بره بیرون
من با این کد داخل فایل مینویسم
private void btnAdd_Click(object sender, EventArgs e)
{
Word objWord = new Word();
objWord.PStr = txtPersian.Text;
objWord.EStr = txtEnglish.Text;
BinaryFormatter objBF = new BinaryFormatter();
try
{
FileStream objFS = new FileStream("Words.wd", FileMode.Append, FileAccess.Write);
StreamWriter objSW = new StreamWriter(objFS, Encoding.UTF8);
objFS.Seek(0, SeekOrigin.Current);
objBF.Serialize(objFS, objWord);
objSW.Close();
objFS.Close();
}
catch (Exception error)
{
MessageBox.Show(error.Message);
}
}
اگه میشه یه منبع در مورد این sqlite به من بدین