PDA

View Full Version : مشکل با ذخیره و باز کردن فایل با open & savefiledialog



user68
دوشنبه 18 خرداد 1388, 01:14 صبح
با سلام من یه برنامه شبیه notepad نوشتم ولی یه مشکلی توش دارم اینکه موقعی که یه فایل رو با savedialog ذخیره میکنم وقتی بیرون از برنامه با دابل کلیک بازش میکنم یه سری نوشته های بی ربط نشون میده ولی وقتی با خود برنامه بازش میکنم درست نشون میده
و وقتی هم که یه فایل با پسوند txt یا doc رو میخوام با opendialog باز کنم پیغام میده format is not valid ولی وقتی فایلی که با خود برنامه ذخیره شده رو میخوام باز کنم نشون میده!؟
با تشکر

mohsen_csharp
دوشنبه 18 خرداد 1388, 10:52 صبح
از utf8 استفاده کنید.
اگه درست نشد کدتونو بگذارید ببینیم مشکل چیه

user68
دوشنبه 18 خرداد 1388, 20:08 عصر
از utf8 استفاده کنید.

چه طوری ازش استفاده کنم میشه بیشتر توضیح بدید؟
با تشکر

mohsen_csharp
دوشنبه 18 خرداد 1388, 20:13 عصر
کدتونو بگذارید تا بررسی کنیم

user68
سه شنبه 19 خرداد 1388, 11:52 صبح
کد open


openFileDialog1.Filter = ".txt|*.txt|*.doc|*.doc|All Files|*.*"; ;
result=openFileDialog1 .ShowDialog();
filename =openFileDialog1.FileName;
if(result!=DialogResult .Cancel )
richTextBox1.LoadFile(filename);
this.Text = filename;


کد save


private void saveas()
{
saveFileDialog1.Filter = "*.txt|*.txt|*.doc|*.doc";
result=saveFileDialog1.ShowDialog();
filename = saveFileDialog1.FileName;
if(result!=DialogResult .Cancel )
richTextBox1.SaveFile(filename);

}

Reza_Yarahmadi
سه شنبه 19 خرداد 1388, 12:07 عصر
فقط کافیه دستور خوندن و نوشتن رو به این صورت بنویسی


richTextBox1.SaveFile(filename, RichTextBoxStreamType.UnicodePlainText);

richTextBox1.LoadFile(filename, RichTextBoxStreamType.UnicodePlainText);

ولی به نظرم اگه از Streamها استفاده کنی بهتر باشه چون قابلیتهای بالاتری دارن.

user68
سه شنبه 19 خرداد 1388, 13:05 عصر
با سلام
این دفعه ارور نمیگیره ولی نوشته های انگلیسی رو به شکل symbol و نوشته های فارسی رو مربع نشون میده!ولی save ش درست شد. فقط open ش اشکال داره.
در مورد stream ها هم نمیدونم چیه ولی اگه بشه بدون اونا حل بشه بهتره!(البته دوست دارم بدونم stream ها چیه و چه طوری کار میکنه)
با تشکر

mohsen_csharp
سه شنبه 19 خرداد 1388, 13:45 عصر
فقط open ش اشکال داره.
آیا open مربوط به فایل های جدید هست یا همون فایل های قدیمی مدنظرتون هست.
بیشتر توضیح بدید

user68
سه شنبه 19 خرداد 1388, 15:17 عصر
فایل هایی که توسط خود برنامه save شده تو باز کردن دوبارش مشکلی نیست ولی فایل های متنی که از قبل ایجاد شده رو به صورت یه سری نوشته هایی که قبلا گفتم نشون میده که البته قبلا همین رو هم نشون نمیداد و ارور میگرفت.

Reza_Yarahmadi
سه شنبه 19 خرداد 1388, 17:26 عصر
اون کدی رو دادم به کد زیر تغییر بدید


richTextBox1.SaveFile(filename, RichTextBoxStreamType.PlainText);

richTextBox1.LoadFile(filename, RichTextBoxStreamType.PlainText);

و اما در مورد Streamها
یه مثال ساده از ذخیره و باز کردن فایل میزنم اگه خودتون یه مقدار باهاش کار کنید دستتون میاد!
برای Save


StreamWriter SW = new StreamWriter(filename);
SW.Write(richTextBox1.Text);
SW.Close();
و برای باز کردن فایل


StreamReader SR = new StreamReader(filename, Encoding.Default);
richTextBox1.Text = SR.ReadToEnd();
SR.Close();
Straeam ها قابلیتهای بیشتری دارند این فقط یه مثال ساده بود.
من خودم از FileStream بیشتر خوشم میاد چون به نسبت، کارهای بیشتری میشه باهاش انجام داد ولی دردسرش هم بیشتره!
امیدوارم به دردتون بخوره. موفق باشید.