PDA

View Full Version : سوال: ایجاد فایل متنی



mbsmbsmbs
پنج شنبه 02 اردیبهشت 1389, 19:21 عصر
با سلام می خواستم نحوه ایجاد فایل متنی و خواندن از اونا رو بدونم
منبع اگه سراغ دارین ممنون میشم در اختیارم بذارین

Netsky
پنج شنبه 02 اردیبهشت 1389, 19:38 عصر
سلام دوست عزيز .
با اين كد ميتوني يه فايل تكست بسازي و داخلش بنويسي :



System.IO.StreamWriter Writer = System.IO.File.AppendText(@"C:\1.txt");
Writer.WriteLine("I'm a Text File");
Writer.Close();

با اين يكي هم ميتوني از فايل تكست بخوني :



System.IO.StreamReader Reader = System.IO.File.OpenText(@"C:\1.txt");
string strText = Reader.ReadToEnd();
Reader.Close();
MessageBox.Show(strText);

موفق باشيد ...........

Mahdad999
پنج شنبه 02 اردیبهشت 1389, 19:40 عصر
سلام دوست من،
بهترين منبع براي اينكار msdn هستش كه مثال هم براي ايجاد فايل متني گذاشته.
ميتونيد عبارتهاي 'read' و يا 'write' رو جستجو كنيد

موفق باشيد

sds1920
پنج شنبه 02 اردیبهشت 1389, 19:59 عصر
براي ساخت :


System.IO.File.Create("Address");


براي خوندن و نوشتن:


System.IO.File.ReadAllText("Address");

و

System.IO.File.WriteAllText("Address");

s.khoshfekran
پنج شنبه 02 اردیبهشت 1389, 20:05 عصر
دوست عزیز این مقاله فارسی برای کار با فایله
موفق باشی
http://rapidshare.com/files/378866468/Work_with_Streams_in_C_.rar.html

maryam_20
سه شنبه 20 اردیبهشت 1390, 12:38 عصر
سلام به همگي
من يه مشكلي دارم اگه راهنمايي كنين ممنون مي شم
من از طريق كد زير ميام فايل مي سازم و به درستي كار مي كنه .
مشكلم اينه كه مي خوام هر بار اسم اين فايل عوض شه. مثلا تاريخ جاري رو بگيره
هر چي باهاش كلنجار ميرم درست نميشه


StreamWriter Writer = File.AppendText(@"C:\test.txt");
TextWriter tw = new StreamWriter("test.txt");
tw.WriteLine("Im Text File And Created By You");
tw.Flush();
tw.Close();



تغييرش دادم به اين صورت ولي كار نمي كنه

string tarikh = DateTime.Now.ToString();
tarikh = tarikh + ".txt";
StreamWriter Writer = File.AppendText(@"C:\"+tarikh.ToString());
TextWriter tw = new StreamWriter(tarikh.ToString());
tw.Flush();
tw.Close();


وقتي اجراش مي كنم همچين خطايي ميده:
The given path's format is not supported.

اگه كسي مي تونه كمك كنه ممنون مي شم

ma.rad
سه شنبه 20 اردیبهشت 1390, 13:09 عصر
سلام جواب شما در لینک زیر
http://barnamenevis.org/showthread.php?285619-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86-%D9%88%D9%86%D9%88%D8%B4%D8%AA%D9%86-%D9%81%D8%A7%DB%8C%D9%84-Text
حل شد تشکر یادتون نره

maryam_20
سه شنبه 20 اردیبهشت 1390, 16:52 عصر
ممنون
اين كديه كه من با توجه به لينكي كه شما دادين نوشتم. ولي فايل نمي سازه.
در ضمن موقع اجرا از من مسير مي خواد كه كجا ذخيره كنه. درسته همچين چيزي؟


SaveFileDialog saveFileDialog1 = new SaveFileDialog();


string tarikh = DateTime.Now.ToString();
saveFileDialog1.FileName = tarikh+".txt";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(tarikh + ".txt", "hello", Encoding.UTF8);
}

Farshid007
سه شنبه 20 اردیبهشت 1390, 17:21 عصر
من که از کد شما هیچی نفهمیدم
شما یه رشته درست کردی و زمان سیستم رو در اوردی
بعدا به پارامتر pathرشته ای که توش چند تا عدد هست رو دادید
1-سیو فایل دیالو گ شما filterنداره
2-نمشیه که فایلی رو تو ادرس چند تا عدد ذخیره کنی
به این یه نگاه بنداز اگه متوجه نشدی بگو توضیح بدم
69795

maryam_20
سه شنبه 20 اردیبهشت 1390, 19:10 عصر
[QUOTE=Farshid007;1261931]من که از کد شما هیچی نفهمیدم
شما یه رشته درست کردی و زمان سیستم رو در اوردی......


ممنون واقعا
حقيقتش من اصلا با فايل كار نكردم
همين يه ذره اي هم كه نوشته بودم حاصل جستجو توي سايت بود.
اين برنامه تون رو كه ديدم تازه فهميدم مفهوم اين چيزايي كه نوشتم رو

فقط يه سوال ديگه دارم الان
من يه آرايه دارم
مي خوام دونه دونه از آرايه ام بخونم بريزم تو فايل
وقتي از
System.IO.File.WriteAllText(s1.FileName, richTextBox1.Text, UTF8Encoding.UTF8);
استفاده مي كنم همه رو روي قبلي ها ميريزه
اين طوري كه من دستگيرم شده بايد از append استفاده كنم تا به قبلي ها اضافه بشه. درسته؟
append فقط يك آرگومان قبول مي كنه
مي شه طريقه استفاده از append رو هم برام توضيح بدين
واقعا ممنونم از كمكتون

ma.rad
سه شنبه 20 اردیبهشت 1390, 20:03 عصر
ممنون
اين كديه كه من با توجه به لينكي كه شما دادين نوشتم. ولي فايل نمي سازه.
در ضمن موقع اجرا از من مسير مي خواد كه كجا ذخيره كنه. درسته همچين چيزي؟


SaveFileDialog saveFileDialog1 = new SaveFileDialog();


string tarikh = DateTime.Now.ToString();
saveFileDialog1.FileName = tarikh+".txt";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(tarikh + ".txt", "hello", Encoding.UTF8);
}

بله مسیر میخواد چون شما از SaveDialog استفاده می کنید اگر خواستید باید از این برای نوشتن استفاده کنید
1
System.IO.File.WriteAllLines(@"D:\a.txt", new string[] {DateTime.Now.ToString() }, Encoding.UTF8);

ma.rad
سه شنبه 20 اردیبهشت 1390, 20:10 عصر
بله مسیر میخواد چون شما از SaveDialog استفاده می کنید اگر خواستید باید از این برای نوشتن استفاده کنید
1
System.IO.File.WriteAllLines(@"D:\a.txt", new string[] {DateTime.Now.ToString() }, Encoding.UTF8);

همین کدی که گفتم شما فقط مقادیر رو از خونه های آرایه بهش بده

maryam_20
چهارشنبه 21 اردیبهشت 1390, 12:44 عصر
من اين كارم كردم ولي بازم فقط مقدار آخرين خونه آرايه داخل notepad هست
over write ميشه
به قبلي ها اضافه نمي شه


for (int g = 0; g <= tedad_kol; g++)
{
System.IO.File.WriteAllLines(s1.FileName, new string[] { disk[g] }, UTF8Encoding.UTF8);

}

Farshid007
چهارشنبه 21 اردیبهشت 1390, 13:09 عصر
من اين كارم كردم ولي بازم فقط مقدار آخرين خونه آرايه داخل notepad هست
over write ميشه
به قبلي ها اضافه نمي شه


for (int g = 0; g <= tedad_kol; g++)
{
System.IO.File.WriteAllLines(s1.FileName, new string[] { disk[g] }, UTF8Encoding.UTF8);

}


خوب رشته رو بخونید و هر رشته ای رو که می خواهید بهش اضافه کنید
سپس رشته کل رو سیو کنید

haghft
چهارشنبه 21 اردیبهشت 1390, 13:10 عصر
اگه یه فایل متنی داره که میخای متون جدید بهش اضافه بشه باید اینکارو بکنی:
System.IO.File.AppendAllLines(s1.FileName, new string[] { disk[g] }, UTF8Encoding.UTF8);

ma.rad
چهارشنبه 21 اردیبهشت 1390, 13:15 عصر
int[] arr = { 1, 2, 3 };
System.IO.File.WriteAllLines(@"D:\a.txt", new string[] {arr[0].ToString(),arr[1].ToString(),arr[2].ToString() }, Encoding.UTF8
اگر میخوای توی خط باشن بینشون + بزار

mc_avr
چهارشنبه 21 اردیبهشت 1390, 16:25 عصر
سلام
اینکه موقع ذخیره این ارور رو میده The given path's format is not supported. دلیلش اینه که نام فایل شما حاوی کاراکتر های غیر مجازه (/ و : ) بهتره که اگر اصرار بر این دارید که نام فایلتون بر مبنای تاریخ دریافتی از سیستم باشه این کاراکترا رو با کاراکترای مجاز مثل ( . و - و _ ) عوض کنید.
اینطوری

System.IO.StreamWriter sr =
System.IO.File.AppendText("C:\\" + DateTime.Now.ToString().Replace('/','-').Replace(':','.')+".txt");

از append هم به شکل زیر استفاده کنید.

System.IO.StreamWriter sr = System.IO.File.AppendText("C:\\" + "A.txt");
sr.Write(DateTime.Now.ToString());
sr.WriteLine(DateTime.Now.ToString());
// هر دستوری که لازم دارین بنویسین و در پایان کار عمل زیر رو انجام بدین
sr.Flush();
sr.Close();

maryam_20
پنج شنبه 22 اردیبهشت 1390, 02:01 صبح
خوب رشته رو بخونید و هر رشته ای رو که می خواهید بهش اضافه کنید
سپس رشته کل رو سیو کنید


اتفاقا خودمم این کار به ذهنم رسید همه رو ریختم تو یه رشته جدید و بعد ذخیره کردم
متاسفانه باید هر خط رو enter بزنه بیاره خط بعد
منم اومدم این طوری نوشتم:
String reshteye_asli=null;
For(int g=0;g<tedade_kol;g++)
Reshteye_asli=”/n”+disk[g];

ولی تو notepad مفهوم n/ رو نمی فهمه
t/ می زنم tab می خوره ولی n/ می زنم همه رو پشت سر هم میریزه

Farshid007
پنج شنبه 22 اردیبهشت 1390, 15:51 عصر
اتفاقا خودمم این کار به ذهنم رسید همه رو ریختم تو یه رشته جدید و بعد ذخیره کردم
متاسفانه باید هر خط رو enter بزنه بیاره خط بعد
منم اومدم این طوری نوشتم:
String reshteye_asli=null;
For(int g=0;g<tedade_kol;g++)
Reshteye_asli=”/n”+disk[g];

ولی تو notepad مفهوم n/ رو نمی فهمه
t/ می زنم tab می خوره ولی n/ می زنم همه رو پشت سر هم میریزه
اگه منظورت کاراکتر کنترلی هست!
n\ نه n/

Farshid007
پنج شنبه 22 اردیبهشت 1390, 15:53 عصر
اگه از ارایه استفاده میکنی می تونی با array.resize خط جدید بهش اضافه کنی

haghft
پنج شنبه 22 اردیبهشت 1390, 18:17 عصر
کد اینتر

\r\n

maryam_20
جمعه 23 اردیبهشت 1390, 23:00 عصر
اگه منظورت کاراکتر کنترلی هست!
n\ نه n/

ببخشيد اشتباه تايپي بود. اينحا اشتباه نوشتم. تو برنامه n\ گذاشتم كه جواب نداد ولي t\ كار مي كرد

maryam_20
جمعه 23 اردیبهشت 1390, 23:09 عصر
با r\n\ درست شد . ممنون از همه
ولي پيرم كرد اين فايل ........

Farshid007
شنبه 24 اردیبهشت 1390, 10:49 صبح
هم r\و همn\ برای خط جدید هستند
نمی دونم حالا چرا اینجا باید از هر دو تاش استفاده کرد
حالا زیاد مهم نیست >مهم اینه که مشکل شما حل شد