PDA

View Full Version : سوال: خواندن از روی فایل txt



aagghh
دوشنبه 15 فروردین 1390, 16:01 عصر
سلام
من میخوام از روی یک فایل text اطلاعاتی رو بخونم ولی آدرس این فایل رو از کاربر نگیرم.
من با openFileDialog این کار رو کردم ولی میخوام از اونجایی که من میخوام فایل text رو بخونه
مرسی

sabloger
دوشنبه 15 فروردین 1390, 18:04 عصر
سلام دوست عزیز

سوالتون کمی گنگه
اما چه زمانی که آدرس رو از کاربر میگیرید و چه زمانی که میخواید خودتون آدرس بدید تنها فرقی که بینشود هست اینه که توی اولی متغیری رو که آدرسی رو که کاربر زده توش هست رو به عنوان پارامتر برای تابع خواندن از فایلتون میگذارید و یا این که خودتون آدرس رو مستقیما میزنید، مثل:
"c:\123.txt"@
که میشه اینطوری باهاش کار کرد:
System.IO.File.ReadAllText(@"C:\123.txt", "متن شما");

اما اگر منظور دیگه ای دارید واضح تر بگید تا کمکتون کنم

موفق باشید

doostl
دوشنبه 15 فروردین 1390, 19:06 عصر
سلام
فکر مي کنم براي خواندن کل فايل متني مي توني با دستور زير اونو توي يه متغير بريزي و هر کاري مي خاي باهاش بکني:

system.io.file.readAllText(directory)
//directory (file://\\directory) _forExample_ c:\a.txt
فکر مي کنم دستوري که sabloger گذاشته براي نوشتن تو فيل ساتفاده مي شه

Farshid007
دوشنبه 15 فروردین 1390, 20:38 عصر
سلام دوست عزیز
System.IO.File.ReadAllText(@"C:\123.txt", "متن شما");
موفق باشید
به نظرت یه خورده ایراد نداره!
بجای نوع Encodeنوشتی متن شما!
اقا/خانم sabloger

sabloger
دوشنبه 15 فروردین 1390, 20:50 عصر
به نظرت یه خورده ایراد نداره!
بجای نوع Encodeنوشتی متن شما!
اقا/خانم sabloger


سلام خدمت شما دوست محترم
باید عرض کنم که اگر کمی به overload های این متد دقت کنید میفهمید که یکی از اونها (string contents,string path) هست و اون یکی (string contents,string path,Encoding encoding)هست
بنده با overload اولی کار کردم
که در اون آدرس و مقادیر رشته ای که قصد نوشتن اون رو توی فایل داریم به عنوان پارامتر وجود داره

موفق باشید

aagghh
چهارشنبه 17 فروردین 1390, 18:06 عصر
دست همتون درد نکنه
پیداش کردم

using system.IO;

fileStream f=new fileStream();
streamReader s=new streamReader("@\c:\");
s.read(); //فقط سطر را میخواند
s.readLine(); //سطر را میخواند و سر خط میرود
s.close();

فقط یه سوال دیگه:
چجوری بگیم که مثلا فقط سطر 4 را بخواند یا مثلا سطر 5 را پاک کند و یه چیز دیگه بنویسد.
من برای مثلا خط سوم این کار را کردم ولی اصلا جالب نیست
s.readLine();
s.readLine();
string str=s.readLine();
خیلی ممنون

morteza271
چهارشنبه 17 فروردین 1390, 18:27 عصر
شما برای خواندن فایل یا میتونی کل آنرا به یکباره بخونی و یا خط به خط و نمیشه که فقط خط 5 رو بخونی.
برای این کار باید از یه حلقه استفاده کنی.
برای اینکه به جای یه خط یه چیز دیگه بنویسی هم باید اول کل فایل رو در یه حلقه بخونی و خط به خط در یه فایل دیگه بریزی و به جای خط مورد نظر متن خودتون رو بذارید و یا اینکه خط به خط بخونید و در یه StringBuilder بریزید و سپس در فایل بنویسید.
موفق باشید.

Farshid007
چهارشنبه 17 فروردین 1390, 19:16 عصر
سلام خدمت شما دوست محترم
باید عرض کنم که اگر کمی به overload های این متد دقت کنید میفهمید که یکی از اونها (string contents,string path) هست و اون یکی (string contents,string path,Encoding encoding)هست
بنده با overload اولی کار کردم
که در اون آدرس و مقادیر رشته ای که قصد نوشتن اون رو توی فایل داریم به عنوان پارامتر وجود داره

موفق باشید
تو همینی که نوشتیو بنویس تو VS2005اگه خطا نداد(خطای دستوری)من اسممو عوض می کنم:
البته من قصد توهین ندارم!
پارامتربندی شما هم اشتباه
string contents,string path,Encoding encoding
به ولله VS2005 هم چین چیزی رو نداره!
اون WriteAllTextهستش که پارامتر String Contentes رو داره به این ترتیب
String Path,String Contents,Encoding encoding
و String Contentsهمو م چیزیه که می خواهی رایتش کنی
با اون ترتیب پارامتری که گفتی می نویسی خطا نمی ده ولی رایت هم نمی کنه!
موید و موفق باشد
فرشید شاهمرادی 15 ساله از کرج(غلام شما)

sabloger
چهارشنبه 17 فروردین 1390, 19:46 عصر
تو همینی که نوشتیو بنویس تو VS2005اگه خطا نداد(خطای دستوری)من اسممو عوض می کنم:
البته من قصد توهین ندارم!
پارامتربندی شما هم اشتباه
string contents,string path,Encoding encoding
به ولله VS2005 هم چین چیزی رو نداره!
اون WriteAllTextهستش که پارامتر String Contentes رو داره به این ترتیب
String Path,String Contents,Encoding encoding
و String Contentsهمو م چیزیه که می خواهی رایتش کنی
با اون ترتیب پارامتری که گفتی می نویسی خطا نمی ده ولی رایت هم نمی کنه!
موید و موفق باشد
فرشید شاهمرادی 15 ساله از کرج(غلام شما)


سلام دوست عزیز
شما درست میفرمایید
یک اشتباه لپی ار من بوده!
حواسم به WriteAllText بود و نوشتمش
اما مورد دیگه این که ترتیب پارامتر ها رو اشتباه دونستید باید بگم که باید یقه سایت رو بگیرید چون اون توی وارد کردن درهم فارسی و انگلیسی مشکل داره

و همچنین اینکه بنده با VS2010 برنامه نویسی میکنم و اینطوریه!!

--------------------------
در جواب به این دوست عزیزمون هم باید بگم که میتونید ReadAllLine بکنید و خط به خط فایل رو بصورت یک آرایه رشته ای داشته باشید و براحتی باهاش کار کنید
البته با این روش هم حذف یک خط کمی مشکله و باید یک آرایه دیگه درست کنین که تعداد خونه هاش به تعداد خط هایی که میخوایید حذف بشه کمتر باشه و توی یک آرایه همه فیلد ها رو بجز اونی که میخوایید حذف بشه رو توی آرایه جدید بریزید

البته با اجازه دوستان! این روش من بود!