PDA

View Full Version : مبتدی: خواندن و نوشتن فایل text



arminrkh
چهارشنبه 10 شهریور 1389, 15:49 عصر
برای نوشتن و خواندن فایل text در C#‎‎‎‎‎‎‎‎‎‎ در یک مسیر مشخص در حالت Windows Form، به گونه ی زیر عمل می کنیم.



نوشتن در یک فایل text:


ابتدا یک پروژه ی جدید از نوع Windows Form Application با نام و مسیر دلخواه خود ایجاد کنید.



برای مثال میخواهیم هر چه در TextBox نوشتیم، در یک فایل مثلا test.txt در درایو d:\ ذخیره شود.



یک Button ایجاد کرده تا برنامه را در آن بنویسید سپس یک TextBox ایجاد کرده تا متن مورد نظر را در آن بنویسید.



بر روی Button دو بار کلیک کنید تا وارد رویداد کلیک آن شوید.



کد زیر را وارد کنید:





System.IO.File.WriteAllText("d:\\test.txt", textBox1.Text);
نکته1: به جای textBox1.Text هر متغیریا ثابت دیگری از نوع string می توانید قرار دهید.





نکته2: می توانید برای راحتی کار، System.IO را در ابتدای متن برنامه صدا بزنید. به این صورت:





using System.IO;
با این کار دیگر نیازی نیست در متن برنامه از آن استفاده کنید. برای مثال:







File.WriteAllText("d:\\test.txt", textBox1.Text);
(برای آدرس دادن فایل هایی که مسیر آن به محل نصب ویندوز بستگی دارد در انتها توضیح خواهم داد –برای مثال می خواهید دسکتاپ کامپیوتری که نرم افزارتان آنجا کار می کند را مشخص کنید و یا نرم افزارتان در System32 فایلی را بسازد و با آن کار کند. این مسیر ها در کامپیوتر های مختلف با توجه به این که ویندوز کجا نصب شده ممکن است متغیر باشد)





حال برنامه را اجرا کنید و در TextBox متن دلخواه خود را وارد کنید و بر روی Button کلیک کنید. اکنون با مراجه به مسیر d:\test.txt ، متنی که در textbox وارد کردید را خواهید دید.





خواندن از روی یک فایل text:


می خواهیم متنی را از فایل text ای که در درایو مثلا d:\ است، بازخوانی کنیم. برای این منظور ابتدا یک فایل text در درایو d:\ با نام (دلخواه) read.txt ایجاد کرده و در آن متن دلخواهتان را قرار دهید.



یک پروژه ی جدید از نوع Windows Form Application با نام و مسیر دلخواه خود ایجاد کنید.

یک Button و یک Label در فرم ایجاد کنید، سپس بر روی Button دو بار کلیک کرده و دستورات زیر را وارد کنید.

System.IO.StreamReader objstream = new StreamReader("d:\\read.txt");
label1.Text = objstream.ReadLine();




برنامه را اجرا کرده و بر روی button کلیک کنید. شما اکنون متنی را که در فایل read.txt در درایو d:\ نوشتید، مشاهده می کنید.





نکته1: objstream دلخواه می باشد و جای آن هر نام دیگری را می توانید جایگزین کنید.



نکته2: می توانید برای راحتی کار، System.IO را در ابتدای متن برنامه صدا بزنید. به این صورت:


using System.IO;

- چگونه نرم افزارمان در هر کامپیوتری که اجرا شد، با توجه به این که مسیر نصب ویندوز متغیر است، فایلی را در دسکتاپ (یا هر مسیری که به محل نصب ویندوز بستگی دارد) ایجاد کنیم؟


برای این منظور، از متفیر هایی که خود ویندوز تعیین کرده استفاده می کنیم.



برای اینکه بهتر متوجه شوید، از منوی run ،start را اجرا کرده و در آن عبارت cmd را تایپ کنید و سپس ok را بزنید.



در cmd تایپ کنید: set و سپس enter را بزنید.



لیستی از متغیر هایی که ویندوز تعیین کرده را می توانید مشاهده کنید. حال شما خواهید آموخت هر کدام از متغیر هایی را که می خواهید در برنامتان استفاده کنید.



از اینجا به بعد را روی یک مثال بررسی می کنیم.



می خواهیم هر عبارتی که در TextBox تایپ کردیم، در فایل test2.txt بر روی دسکتاپ هر کامپیوتری که نرم افزارمان بر روی آن اجرا می شود، ایجاد شود.



ابتدا یک پروژه ی جدید ایجاد کرده و سپس یک TextBox و یک button بر روی آن قرار دهید.



بر روی Button دو بار کلیک کرده و دستورات زیر را در آن قرار دهید:



string uprof = Environment.GetEnvironmentVariable("USERPROFILE");

System.IO.File.WriteAllText(uprof+"\\desktop\\test2.txt", textBox1.Text);






در خط اول، متغیری از نوع string با نام uprof تعیین کردیم تا با استفاده از تابع
Environment.GetEnvironmentVariable()






به آن مقداری که ویندوز برای USERPROFILE قرار داده را قرار دادیم. برای مثال در کامپیوتر کسی که اسم User او Ali است و ویندوز xp او در درایو f:\ نصب شده، متغیر uprof (یا هر نام دلخواه دیگری) به صورت :



f:\Documents and Settings\Ali


مقدار دهی می شود.












حال برنامه را اجرا کنید و متن مورد نظرتان را در textbox تایپ کنید و سپس بر روی button کلیک کنید. حال به دسکتاپ خود مراجه کرده و نتیجه را مشاهده کنید.





دقت کنید که برای آدرس دهی مستقیم باید به جای \ از \\ استفاده کنید. برای مثال دستور زیر مورد قبول کامپایلر قرار نخواهد گرفت:






System.IO.File.WriteAllText("c:\windows\system32", textBox1.Text);






آدرس دهی صحیح:






System.IO.File.WriteAllText("c:\\windows\\system32", textBox1.Text);

javad_r_85
چهارشنبه 10 شهریور 1389, 16:28 عصر
آفرین تشکر فقط یه چیزی بهتره objstream را در آخر میبستی چون باعث میشه که اگر بخواهیم یه موقع دیگه استفاده کنیم با این پیغام روبری شویم که برنامه یه جایی در حال اسفاده است

#aliyari_C
چهارشنبه 10 شهریور 1389, 22:52 عصر
سلام
برای شروع بد نیست:تشویق:



دقت کنید که برای آدرس دهی مستقیم باید به جای \ از \\ استفاده کنید. برای مثال دستور زیر مورد قبول کامپایلر قرار نخواهد گرفت:




کد:
System.IO.File.WriteAllText("c:\windows\system32", textBox1.Text);


البته اینم اضافه می کردی


System.IO.File.WriteAllText(@"c:\windows\system32", textBox1.Text);