PDA

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



پیام حیاتی
شنبه 27 دی 1393, 23:58 عصر
سلام
در فرم یک دکمه Read داریم می خوام با کلیم بر روی آن با استفاده از openFileDialog مسیر یک فایل متنی رو بدم و محتوای فایل متنی در TextBox نمایش داده بشه.
این فرم من هست :

127679
این کدهای فایل کلاس :
namespace read_write
{
public class Class1
{
public void read(string r)
{
OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
StreamReader sr = new StreamReader(op.FileName);
sr.ReadToEnd();
sr.Close();


}
}
}

این کدهای دکمه :

private void button1_Click(object sender, EventArgs e)
{
string reading;
reading = textBox1.Text;
Class1 red = new Class1();
red.read(reading);

}

برنامه خطایی نداره اما کار هم نمیکنه.
تشکر

mrprestige
یک شنبه 28 دی 1393, 00:36 صبح
سلام . شما تابع void داخل کلاستون به این شکل تغییر بدید



public void read()


{
OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
StreamReader sr = new StreamReader(op.FileName);
textBox1.Text=sr.ReadToEnd();
sr.Close();




}



و موقع فراخوانی هم عبارت read() تایپ کنید . موفق باشید

aminmousavi
یک شنبه 28 دی 1393, 00:43 صبح
سلام پیام جان .
فکر میکنم خسته بودی مقداری ، بیشتر شبیه write تا Read :دی

متد read پارامتر ورودی نداره که ! باید براش خروجی تعریف کنی اونم از نوع string .
برای نمایش هم اصلا مقداری به textbox انتساب ندادی !

SabaSabouhi
یک شنبه 28 دی 1393, 07:23 صبح
سلام
روش ساده‌تری هم وجود داره.
برای خوندن از متد File.ReadAllText استفاده کن و برای نوشتن هم از File.WriteAllText

صبا صبوحی

پیام حیاتی
یک شنبه 28 دی 1393, 08:13 صبح
سلام . شما تابع void داخل کلاستون به این شکل تغییر بدید



public void read()


{
OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
StreamReader sr = new StreamReader(op.FileName);
textBox1.Text=sr.ReadToEnd();
sr.Close();




}



و موقع فراخوانی هم عبارت read() تایپ کنید . موفق باشید
مشکل اینجاست در کلاس نمیتوم از نام های ابزار استفاده کنم :
Error 1 The name 'textBox1' does not exist in the current context C:\Users\payam\Documents\Visual Studio 2013\Projects\read_write\read_write\Class1.cs 20 12 read_write

محمد رضا فاتحی
یک شنبه 28 دی 1393, 08:27 صبح
سلام پیشنهاد من
class Class1
{
public string read(string inputfile)
{
StreamReader sr = new StreamReader(inputfile);
return sr.ReadToEnd();
}
}


و در هنگام فراخوانی

OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
Class1 cs = new Class1();
textBox1.Text = cs.read(op.FileName);

پیام حیاتی
یک شنبه 28 دی 1393, 09:27 صبح
سلام پیشنهاد من
class Class1
{
public string read(string inputfile)
{
StreamReader sr = new StreamReader(inputfile);
return sr.ReadToEnd();
}
}


و در هنگام فراخوانی

OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
Class1 cs = new Class1();
textBox1.Text = cs.read(op.FileName);


بسیار ممنون:تشویق: :بوس:
لطفا" اگر امکانش هست کد برای عملیات نوشتن هم قرار بدید.
تشکر

محمد رضا فاتحی
یک شنبه 28 دی 1393, 09:36 صبح
خواهش می کنم اینو به کلاس اضافه کن
public void write(string file, string code)
{
StreamWriter sw = new StreamWriter(file, true);
sw.WriteLine(code);
sw.Close();
}


نحوه استفاده هم که ان شا الله سادس