PDA

View Full Version : سوال: کمک برای اتمام پروژه !! باز و ذخیره کردن و بستن فایل های متنی !!



tam2145
پنج شنبه 18 اسفند 1390, 10:07 صبح
سلام دوستان !!
بالاخره برنامه من هم داره کامل می شود !! فقط اینجاش مونده !!
83833
توضیح برنامه :
برنامه من کارش اینکه قالب یک سرویس وبلاگ دهی را می گیره و به یک سرویس دیگر ترجمه می کنه !!
کمک :
توی منوش گیر کردم !! البته new آن اسان هست ولی open و ... آن سخته !! ببینید من می خواهم یک فایل متنی از نوع txt (( فارسی هم داره )) را باز کرده و به textbox1 بدهم و روش تغییراتی ایجاد می کنم و بعد کد ها را توی همون فایل ذخیره می کنم ، البته محتوای قبلی فایل پاک می شه !! بعدش یک گزینه هم خودتون اضافه کنید اون هم save as است که یک فایل متنی با محتوایی که از textbox2 می گیره در هر جایی از کامپیوتر و به هر نامی ایجاد و ذخیره کنه !!
مشکل بعدی هم اینه که چطوری فایل های که برنامه قبلا باز و ویرایش کرده را نمایش دهم !!

اگر دوستان کمک کنند و سورس ساده و بدون اضافات این اعمال را بگذارند ممنون می شوم !!
اگر هم نیاز به گذاشتن کل پروژه بود ، بگذارید ، خودم دان و ویرایش می کنم !!
هم اکنون نیازمند یاری سبزتان هستم .......:خجالت:

Hybrid
پنج شنبه 18 اسفند 1390, 11:36 صبح
سلام دوست عزیز ، امیدوارم حالت خوب باشه ،

این سوال شما شامل چند قسمت هست ،

1 ) باز کردن یک فایل با پسوند .txt داخل برنامه ، این کد میتونه یک راهنمایی باشه :


Dim ofd As New OpenFileDialog

ofd.Title = "لطفا مسیر فایل تکست را انتخاب نمایید"
ofd.Filter = "Text Files(*.txt)|*.txt"

If ofd.ShowDialog = DialogResult.OK Then
Dim FStream As New FileStream(ofd.FileName, FileMode.Open, FileAccess.Read)
Dim fsReader As New StreamReader(FStream)

While fsReader.Peek > -1
TextBox1.Text &= fsReader.ReadLine()
End While

fsReader.Close()
End If

یا به روش ساده تر :


TextBox1.Text = My.Computer.FileSystem.ReadAllText(ofd.FileName)

2 ) واسه اینکه بعد از اینکه تغییرات رو انجام دادی و دکمه ی Save رو زدی تغییرات رو به همون فایل منتقل کنه :

میتونین مسیر فایل رو در یک متغیر(مثلا masirFiele) قرار بدین سپس از طریق متد WriterallText راحت میتونین تغییرات رو ذخیره کنین :


If MasirFile <> "" Then
My.Computer.FileSystem.WriteAllText(MasirFile, TextBox1.Text, False)

MessageBox.Show("تغییرات با موفقیت اعمال شد")

End If

3 ) راحت میتونین از یک Listbox برای اینکار استفاده کنین و بعد از هر تغییر و یا ایجاد فایلی مسیر رو داخل این Listbox اضافه کنین.

موفق باشید./

tam2145
پنج شنبه 18 اسفند 1390, 12:01 عصر
سپاس !! مرسی !!
1 - فقط چطوری فایلی که باز کردم را ببندم ؟؟
2 - کد save as ؟؟
3- متن فارسی + انگلیسی را ساپورت می کنه(( وقتی فایل را باز و نمایش دادم ، مشکل پیدا نمی کنه ، فارسی هاش )) ؟؟
4- برای listbox و ذخیره آدرس و نام فایل ، می شود از یک فایل متنی (( یا از یک متغییر که توی setting معرفی شده )) استفاده کرد ؟؟
5 - چطوری فقط نام را نمایش دهم و کاربر با کلیک بر روی آن فایل باز شود ؟؟
در کل گزینه 3 خودتون را باز تر کنید !!
دمتون گرم !!
منتظرم .......

Hybrid
پنج شنبه 18 اسفند 1390, 12:24 عصر
1 - فقط چطوری فایلی که باز کردم را ببندم ؟؟
اینو خوب نگرفتم!


2 - کد save as ؟؟

این یک نمونه رو ببین :


Dim sfd As New SaveFileDialog
sfd.Filter = "Text Files(*.txt)|*.txt"


If sfd.ShowDialog = DialogResult.OK Then

My.Computer.FileSystem.WriteAllText(sfd.FileName, TextBox1.Text, False)

MessageBox.Show("File created in " & sfd.FileName)
End If



- متن فارسی + انگلیسی را ساپورت می کنه(( وقتی فایل را باز و نمایش دادم ، مشکل پیدا نمی کنه ، فارسی هاش )) ؟؟
آره واسه من که مشکلی نداره ، اگه به صورت Utf-8 فایل ها ذخیره شده باشن که مشکلی نداره.اگر هم ذخیره نشده باشن باید فرمتشون رو به utf-8 تغییر بدین.


4- برای listbox و ذخیره آدرس و نام فایل ، می شود از یک فایل متنی (( یا از یک متغییر که توی setting معرفی شده )) استفاده کرد ؟؟

آره از هر دوتاش میتونین استفاده کنین.


5 - چطوری فقط نام را نمایش دهم و کاربر با کلیک بر روی آن فایل باز شود ؟؟

فکر کنم معمولیش همینه که مسیر رو در Recent ذخیره میکنن داخل vs200 هم میتونین در منوی فایل ببینی.اگر هم زیاد مجبور به استفاده از روش خودتون هستین بگین تا کدش رو واستون بنویسم.

tam2145
پنج شنبه 18 اسفند 1390, 12:48 عصر
سلام دوست عزیز !!
1 - منظورم اینکه من اومدم یک فایل متنی را باز کردم و بعد از انجام تغییرات آن را ذخیره کردم و حالا می خواهم یک فایل متنی دیگر باز کنم ، آیا الان با باز کردن دو فایل متنی در برنامه به مشکل مواجه نمی شوم ؟؟ چه طوری فایل متنی که در حال حاظر توسط برنامه باز شده را ببندم !!
2- بله !! مجبور هستم !! چون نام بهتر از آدرس فایل هست و خیلی طولانی نیست و باعث بهم ریختگی ظاهر نمی شود !! مرسوم هم هست !!
فقط اطلاعات در یک آرایه دو بعدی به نام tamarray در setting برنامه ذخیره شوند و فقط 5 فایل آخر را نمایش دهد و کار های گزینه 5 که قبلا گفتم را انجام بدهد !!
واقعا ممنون !!:قلب::خجالت:
منتظرم ..... ببینم بالاخره یک برنامه واقعی دادم بیرون !!

banitaba.ommolketab
پنج شنبه 18 اسفند 1390, 13:57 عصر
سلام

راحت ترین راهی که میتونی فای ها را باز کنی و بعد از انجام تغییرات ذخیره کنی استفاده از rich textbox هست.

اسم richtextbox به عنوان مثال هست txtfile و حالا برای باز کردن فایل :
txtfile.LoadFile(opendialog.FileName);
و برای ذخیره کردن فایل :
txtfile.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
موفق باشید.

Hossis
شنبه 29 مهر 1391, 06:49 صبح
سلام دوست عزیز !!
1 - منظورم اینکه من اومدم یک فایل متنی را باز کردم و بعد از انجام تغییرات آن را ذخیره کردم و حالا می خواهم یک فایل متنی دیگر باز کنم ، آیا الان با باز کردن دو فایل متنی در برنامه به مشکل مواجه نمی شوم ؟؟ چه طوری فایل متنی که در حال حاظر توسط برنامه باز شده را ببندم !!
2- بله !! مجبور هستم !! چون نام بهتر از آدرس فایل هست و خیلی طولانی نیست و باعث بهم ریختگی ظاهر نمی شود !! مرسوم هم هست !!
فقط اطلاعات در یک آرایه دو بعدی به نام tamarray در setting برنامه ذخیره شوند و فقط 5 فایل آخر را نمایش دهد و کار های گزینه 5 که قبلا گفتم را انجام بدهد !!
واقعا ممنون !!:قلب::خجالت:
منتظرم ..... ببینم بالاخره یک برنامه واقعی دادم بیرون !!
1- وقتی که فایل اولی رو باز, ویرایش و ذخیره کردید, نگران چیزی نبایدب اشید, چون فایل دوم که باز کنید, توی تکست باکس اصلی محتوایش قرار می گیره و فایل قبلی خود بخود بسته و خارج می شه
2- اول نام فایل رو از آدرس اون استخراج می کنید به این صورت (FileName =نام فایل)
dim FN as string =filename.substring(filename.lastindexof("\")+1)
نام در متغیر fn قرار می گیرد
دوم این که وقتی خواستید منو و زیر منو ایجاد کنید(برای فایل های اخیر) این نام بدست آمده را در text و آدرس کامل را در tooltipText جاسازی کنید و در رویداد کلیک بر روی این زیر منو, بنویسید
txtMain.text=io.file.readalltext(MENU.tooltipText)
اگر مشکل دیگری بود, مطرح کنید

m_37_m
شنبه 29 مهر 1391, 08:58 صبح
سلام
من يه متن انگليسي كد شده را دارم ميخواهم به فارسي تبديل كنم ولي وقتي تبديل مي شه متن (برعكس == سكعرب ) ميشه ؟!! كسي راه حلي داره ؟

saeed 444
پنج شنبه 22 فروردین 1392, 16:14 عصر
من هم درگیر مشکل شما هسنم
وقتی یه فایل تکست باز کنم مشکلی نیست ولی اگر دومی رو باز میکنم و تغییرات ایجاد میکنم تغییراتم در تکست اولی ایجاد میشه و دومی هیچ تغییری نمیکنه