PDA

View Full Version : درخواست کمک از دوستان برای رفع اشکال کار با فایل



ara.sh
یک شنبه 05 خرداد 1392, 21:39 عصر
سلام
من دانشجو ام خیر سرم رشته نرم افزار 3 روز دیگه امتحان برنامه نویسی پیشرفته دارم سوالای آخر ترم استاد یکیش مربوط به کار با فایل هست هرچی جزوه رو میخونم توش این مبحث رو نگفته دوستان لطف کنید این مشکلم رفع بشه
سوال اینه :
الف)فایل student.txt حاوی اسامی دانشجویان و نمرات آنها موجود است (سطر اول نام دانشجو اول سطر دوم نمره دانشجو اول سطر سوم نام دانشجو دوم سطر چهارم نمره دانشجو دوم تا آخر ...) برنامه ای بنویسید که اطلاعات این دانشجویان را خوانده سپس نام دانشجویان رو در names.txt و نمره دانشجویان رو در scores.txt ذخیره نماید.

با کمک دوستان و دادن لینک آموزش قسمت الف حل شد میمونه قسمت ب :

ب)کار با فایل ها در C#‎ دستوراتی طولانی و بد قلق دارد کاش دستورات ساده تری همچون کار با آرایه ها وجود داشتند که به کمک آنها در هر کجای که یک فایل میخواستیم بخوانیم یا بنویسیم .
کلاس File رو بگونه ای بنویسید که این 3 کار را انجام دهد:
1-با دستور زیر فایل abc.txt رو چه برای نوشتن چه برای خواندن ایجاد کنیم
File f = new File("abc.txt");
2-با دستور زیر در سطر 6 ام این عبارت رو قرار بده
f[5] = "salam";
3-با دستور زیر محتویات سطر 21 ام رو در s قرار بده
string s = f[20];

لطفا کمک کنید این سوال رو حل کنم 90% اوقات سوال کار با فایل که 6 نمره ایه اینه

danialafshari
دوشنبه 06 خرداد 1392, 01:49 صبح
سلام
کار با فایل ساده و شیرین است
تصویری : http://www.hamcodi.ir/article/204

http://ostadyar.org/showthread.php?t=152

موفق باشی

kordestan
دوشنبه 06 خرداد 1392, 02:00 صبح
سلام من با فايلها كار نميكنم ولي يه ویدئو در باره ی نحوه ی کار با فایلها در سیشارپ برات آپ کردم شاید بدردت بخوره

حجمش 24 مگه

رمز : kurdistan

اینم لینک دانلود : http://www.mediafire.com/download/vtm1a65b2z0yj5c/30-struct_file_%28www.EhsanAvr.Com%29.exe

ara.sh
دوشنبه 06 خرداد 1392, 10:02 صبح
خیلی ممنون کارم ردیف شد خودم تونستم با کمک از اون تاپیکه که توی پست اول دادید قسمت الف رو بنویسم اما هنوز دومی رو نتونستم بنویسم

mehrdad1991h
دوشنبه 06 خرداد 1392, 10:02 صبح
کل کاری که برنامه قراره انجام بده اینه که :

رنامه ای بنویسید که اطلاعات این دانشجویان را خوانده سپس نام دانشجویان رو در names.txt و نمره دانشجویان رو در scores.txt ذخیره نماید.خوب راحته که !!!

بیا داداش 2 روش برات نوشتم امیدوارم به کارت بیاد

// روش اول
private void button1_Click(object sender, EventArgs e)
{
string path = @".\all.txt"; //adrese file aslit

string name = @".\names.txt"; //mahale zakhire shodane file name.txt
string scores = @".\scores.txt"; //mahale zakhire shodane file scores.txt

if (File.Exists(path))
{
string[] readText = File.ReadAllLines(path);


TextWriter tw1;
if (!File.Exists(name))
{
StreamWriter sw = File.CreateText(name);
sw.Close();

}

TextWriter tw2;
if (!File.Exists(scores))
{
StreamWriter sw = File.CreateText(scores);
sw.Close();
}

tw1 = new StreamWriter(name);
tw2 = new StreamWriter(scores);

bool a = false;
foreach (string s in readText)
{
if (a == false)
{
//Save name
tw1.WriteLine(s);
a = true;

}
else
{
//Save Scores
tw2.WriteLine(s);
a = false;
}
}
tw1.Close();
tw2.Close();
}
else
{
MessageBox.Show("Please check your surce file");//file asli vojod nadarad
}
}

// روش دوم
private void button2_Click(object sender, EventArgs e)
{
string path = @".\all.txt"; //adrese file aslit

string name = @".\names.txt"; //mahale zakhire shodane file name.txt
string scores = @".\scores.txt"; //mahale zakhire shodane file scores.txt


if (File.Exists(path))
{
string[] readText = File.ReadAllLines(path);


bool a = false;
foreach (string s in readText)
{
if (a == false)
{
//Save name
File.AppendAllText(name, s + "\r\n"); // baraye raftan be khate bad : "\r\n"
a = true;

}
else
{
//Save Scores
File.AppendAllText(scores, s + "\r\n");
a = false;
}
}
}
else
{
MessageBox.Show("Please check your surce file");//file asli vojod nadarad
}
}



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

البته کارای دیگه ای هم میتونی بکنی ولی من فعلا این 2 روش را نوشتم برات ببینی خودت دیگه را میوفتی برای نوشتن سایر راه ها

ara.sh
سه شنبه 07 خرداد 1392, 09:38 صبح
ممنون دوست عزیز اینی که نوشتید مربوط به قسمت الف سوال هستش که خودمم تونستم حلش کنم الان فعلا قسمت ب رو مشکل دارم :
ب)
کار با فایل ها در C#‎‎ دستوراتی طولانی و بد قلق دارد کاش دستورات ساده تری همچون کار با آرایه ها وجود داشتند که به کمک آنها در هر کجای که یک فایل میخواستیم بخوانیم یا بنویسیم .
کلاس File رو بگونه ای بنویسید که این 3 کار را انجام دهد:
1-با دستور زیر فایل abc.txt رو چه برای نوشتن چه برای خواندن ایجاد کنیم
File f = new File("abc.txt");
2-با دستور زیر در سطر 6 ام این عبارت رو قرار بده
f[5] = "salam";
3-با دستور زیر محتویات سطر 21 ام رو در s قرار بده
string s = f[20];

mehrdad1991h
سه شنبه 07 خرداد 1392, 10:10 صبح
ببین من یه سوال ازت دارم
شما این را میبینی
string[] readText = File.ReadAllLines(path);
خوب فایل را بخون بریز داخل یک ارایه بعد با ارایه هر کاری میخوای بکن دیگه !!!
یعنی به نظرم میرسه که شما داخل کلاس فقط باید فایل را بخونی بریزی تویه یک ارایه !
ذخیره کردن و .. هم که مشخصه دیگه چجوریه

ara.sh
سه شنبه 07 خرداد 1392, 12:51 عصر
ممنون ولی فکر کنم اینو میخوادا:
بجای دستوراتی که برای خوندن و نوشتن فایل ها در حالت عادی استفاده میکنیم(streamReader,streamWriter) از این 3 تا دستور استفاده بشه.

mehrdad1991h
سه شنبه 07 خرداد 1392, 16:10 عصر
ممنون ولی فکر کنم اینو میخوادا:
بجای دستوراتی که برای خوندن و نوشتن فایل ها در حالت عادی استفاده میکنیم(streamReader,streamWriter) از این 3 تا دستور استفاده بشه.

بابا بدون اینا که نمیشه !
بهت گفته یه کاری بکن که اونجوری بشه
خوب برا اینکه اونجوری بشه باید بیای یک کلاس با استفاده از streamReader,streamWriter و.... بنویسی که وقتی کاربر میخواد استفاده کنه مثل ارایه بتونه استفاده کنه
بقیه اش را هم گفتم دیگه از این ها استفاده میکنی و فایل را میخونی میریزی داخل ارایه بعد دوباره کاربر تا با ارایه تغییری انجام میده کلاس دوباره میاد از همونا استفاده میکنه و دوباره فایل را بروز رسانی میکنه منتها این عملیات را دیگه کاربر نمیبینه یعنی شما یه کلاس نوشتی که میانبر شده یعنی به جا اینکه 2 ساعت بیاد همه کدا را بزنه یه کد میزنه تموم میشه
اوکی ؟

ara.sh
سه شنبه 07 خرداد 1392, 21:37 عصر
خوب برا اینکه اونجوری بشه باید بیای یک کلاس با استفاده از streamReader,streamWriter و.... بنویسی که وقتی کاربر میخواد استفاده کنه مثل ارایه بتونه استفاده کنه

این یه تیکه رو بلد نیستم