PDA

View Full Version : سوال: ذخيره در يك فايل متني كنار برنامه



docendo
شنبه 16 دی 1391, 08:23 صبح
دوستان عزیز لطفا یک مثال ساده از ذخيره در يك تکست فايل كنار برنامه بنویسند مثلا وقتی نام یکی از شهرهای ایران را از کمبو باکس انتخاب میکنیم بعنوان آخرین نمایش ذخیره گردد که در اجرای دوباره برنامه نخواهیم شهر مورد نظر را دوباره انتخاب کنیم و بطور اتومات نشان داده شود

par3eh
شنبه 16 دی 1391, 09:30 صبح
سلام اگه فیلدهات محدود باشه میتونی از setting استفاده کنی.اینجوری کاربر نمیتونه اون فایل متنیو ببینه.حتی میتونی برای پسورد استفاده کنی.
97875
مثلا برای نوشتن و خواند در پروژه ای به نام PostTracker :

account = PostTracker.Properties.Settings.Default.Account;
//نوشتن
PostTracker.Properties.Settings.Default.Account = account;
PostTracker.Properties.Settings.Default.Save( );



نوشتن و خوندن در یک فایل متنی هم :


using System;
using System.IO;

namespace csharp_station.howto
{
class TextFileWriter
{
static void Main(string[] args)
{
// create a writer and open the file
TextWriter tw = new StreamWriter("date.txt");

// write a line of text to the file
tw.WriteLine(DateTime.Now);

// close the stream
tw.Close();
}
}
}





using System;
using System.IO;

namespace csharp_station.howto
{
class TextFileReader
{
static void Main(string[] args)
{
// create reader & open file
Textreader tr = new StreamReader("date.txt");

// read a line of text
Console.WriteLine(tr.ReadLine());

// close the stream
tr.Close();
}
}
}

docendo
شنبه 16 دی 1391, 12:34 عصر
تشکر از پاسختان

ولی برنامه اجرا نمیشه و بظور اتومات خاموش میکنه
has exited with code 0 (0x0).

ممکنه همین مثال را آماده شده بگذارید تا بفهمم کجا را اشتباه میروم

docendo
شنبه 16 دی 1391, 13:37 عصر
من این کد را از سایت مایکروسافت گرفتم ولی کار نکرد لطفا یکی از دوستان تست کند تا ببینم اشکال برنامه من کجاست

using System;
using System.IO;
using System.Text;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{ string mydocpath = Environment.GetFolderPath(Environment.SpecialFolde r.MyDocuments);
StringBuilder sb = new StringBuilder();
foreach (string txtName in Directory.EnumerateFiles(mydocpath,"*.txt"))
{
using (StreamReader sr = new StreamReader(txtName))

{
sb.AppendLine(txtName.ToString());
sb.AppendLine("= = = = = =");
sb.Append(sr.ReadToEnd());
sb.AppendLine();
sb.AppendLine();
}
}
using (StreamWriter outfile = new StreamWriter(mydocpath + @"\AllTxtFiles.txt"))
{
outfile.Write(sb.ToString());
}
}
}


___________________

using System;
using System.Text;

using System.Windows;
using System.IO;
namespace WpfApplication
{
public partial class MainWindow : Window
{ public MainWindow()

{ InitializeComponent();
}
private async void AppendButton_Click(object sender, RoutedEventArgs e)
{
string mydocpath = Environment.GetFolderPath(Environment.SpecialFolde r.MyDocuments);
StringBuilder sb = new StringBuilder();
sb.AppendLine("New User Input");
sb.AppendLine("= = = = = =");

sb.Append(UserInputTextBox.Text);
sb.AppendLine();
sb.AppendLine();
using (StreamWriter outfile = new StreamWriter(mydocpath + @"\UserInputFile.txt", true))
{
await outfile.WriteAsync(sb.ToString());
} }
}
}



ممنون هستم

par3eh
شنبه 16 دی 1391, 19:02 عصر
من این کد را از سایت مایکروسافت گرفتم ولی کار نکرد لطفا یکی از دوستان تست کند تا ببینم اشکال برنامه من کجاست

using System;
using System.IO;
using System.Text;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{ string mydocpath = Environment.GetFolderPath(Environment.SpecialFolde r.MyDocuments);
StringBuilder sb = new StringBuilder();
foreach (string txtName in Directory.EnumerateFiles(mydocpath,"*.txt"))
{
using (StreamReader sr = new StreamReader(txtName))

{
sb.AppendLine(txtName.ToString());
sb.AppendLine("= = = = = =");
sb.Append(sr.ReadToEnd());
sb.AppendLine();
sb.AppendLine();
}
}
using (StreamWriter outfile = new StreamWriter(mydocpath + @"\AllTxtFiles.txt"))
{
outfile.Write(sb.ToString());
}
}
}


___________________

using System;
using System.Text;

using System.Windows;
using System.IO;
namespace WpfApplication
{
public partial class MainWindow : Window
{ public MainWindow()

{ InitializeComponent();
}
private async void AppendButton_Click(object sender, RoutedEventArgs e)
{
string mydocpath = Environment.GetFolderPath(Environment.SpecialFolde r.MyDocuments);
StringBuilder sb = new StringBuilder();
sb.AppendLine("New User Input");
sb.AppendLine("= = = = = =");

sb.Append(UserInputTextBox.Text);
sb.AppendLine();
sb.AppendLine();
using (StreamWriter outfile = new StreamWriter(mydocpath + @"\UserInputFile.txt", true))
{
await outfile.WriteAsync(sb.ToString());
} }
}
}



ممنون هستم



دوست عزیز یک مثال ساده تر برای خوندن و نوشتن در فایل متنی :

string str="";
System.IO.StreamReader file = new System.IO.StreamReader("آدرس فایل");
while ((line = file.ReadLine()) != null)
{
str+=line +"\";
}



using (StreamWriter outfile = new StreamWriter("آدرس فایل")))
{
outfile.Write(str);

}


اولی متن فایلتو خط به خط میخونه دومی همونو دوباره در فایلت ذخیره میکنه....

docendo
شنبه 16 دی 1391, 20:05 عصر
دوست عزیز یک مثال ساده تر برای خوندن و نوشتن در فایل متنی :

string str="";
System.IO.StreamReader file = new System.IO.StreamReader("آدرس فایل");
while ((line = file.ReadLine()) != null)
{
str+=line +"\";
}



using (StreamWriter outfile = new StreamWriter("آدرس فایل")))
{
outfile.Write(str);

}


اولی متن فایلتو خط به خط میخونه دومی همونو دوباره در فایلت ذخیره میکنه....

دستتان درد نکند اما مشکل من خواندن تکست از کمبو باکس است نه از فایل دیگر
من میخواهم آخرین اسمی که قبل از خارج شدن از برنامه به کمبو باکس داده ایم آن ذخیره شود
مثلا از کمبو باکس استان فارس و شهرستان شیراز را انتخاب کرده ایم و از برنامه خارج میشویم وقتی دوباره برنامه را اجرا میکنیم استان فارس و شهرستان شیراز در کمبو باکس فعال باشد یعنی دیده شود نه اینکه دوباره فارس و شهرستان شیراز را کمبو باکس کلیک کنیم

par3eh
شنبه 16 دی 1391, 21:41 عصر
دوست من خوب اگه فقط دوتا فیلد هس که از همون setting استفاده کن و کمبوباکس هم گزینه انتخاب شده رو بریز تو متغیرش.سادست دگ...



myproj.Properties.Settings.Default.ostan = ostanSelect.SelectedText;
myproj.Properties.Settings.Default.shahr = shahrSelect.SelectedText;
myproj.Properties.Settings.Default.Save( );

//موقع ورود به برنامه داده هارو به کمبو منتقبل کن :


ostanSelect.SelectedItem= myproj.Properties.Settings.Default.ostan ;


موفق باشی

docendo
شنبه 16 دی 1391, 22:51 عصر
دوست من خوب اگه فقط دوتا فیلد هس که از همون setting استفاده کن و کمبوباکس هم گزینه انتخاب شده رو بریز تو متغیرش.سادست دگ...



myproj.Properties.Settings.Default.ostan = ostanSelect.SelectedText;
myproj.Properties.Settings.Default.shahr = shahrSelect.SelectedText;
myproj.Properties.Settings.Default.Save( );

//موقع ورود به برنامه داده هارو به کمبو منتقبل کن :


ostanSelect.SelectedItem= myproj.Properties.Settings.Default.ostan ;


موفق باشی


شاید ساده باشد اما نمیشه

docendo
شنبه 16 دی 1391, 23:00 عصر
سلام اگه فیلدهات محدود باشه میتونی از setting استفاده کنی.اینجوری کاربر نمیتونه اون فایل متنیو ببینه.حتی میتونی برای پسورد استفاده کنی.
97875
مثلا برای نوشتن و خواند در پروژه ای به نام PostTracker :

account = PostTracker.Properties.Settings.Default.Account;
//نوشتن
PostTracker.Properties.Settings.Default.Account = account;
PostTracker.Properties.Settings.Default.Save( );



نوشتن و خوندن در یک فایل متنی هم :


using System;
using System.IO;

namespace csharp_station.howto
{
class TextFileWriter
{
static void Main(string[] args)
{
// create a writer and open the file
TextWriter tw = new StreamWriter("date.txt");

// write a line of text to the file
tw.WriteLine(DateTime.Now);

// close the stream
tw.Close();
}
}
}





using System;
using System.IO;

namespace csharp_station.howto
{
class TextFileReader
{
static void Main(string[] args)
{
// create reader & open file
Textreader tr = new StreamReader("date.txt");

// read a line of text
Console.WriteLine(tr.ReadLine());

// close the stream
tr.Close();
}
}
}



اگر ممکن است یکی از دوستان این کدهای بالا را یک مثال عینی بنویسند ممنون میشوم واقعا 4 روز است در این مورد مانده ام

docendo
یک شنبه 17 دی 1391, 10:13 صبح
سلام اگه فیلدهات محدود باشه میتونی از setting استفاده کنی.اینجوری کاربر نمیتونه اون فایل متنیو ببینه.حتی میتونی برای پسورد استفاده کنی.
97875
مثلا برای نوشتن و خواند در پروژه ای به نام PostTracker :

account = PostTracker.Properties.Settings.Default.Account;
//نوشتن
PostTracker.Properties.Settings.Default.Account = account;
PostTracker.Properties.Settings.Default.Save( );



نوشتن و خوندن در یک فایل متنی هم :


using System;
using System.IO;

namespace csharp_station.howto
{
class TextFileWriter
{
static void Main(string[] args)
{
// create a writer and open the file
TextWriter tw = new StreamWriter("date.txt");

// write a line of text to the file
tw.WriteLine(DateTime.Now);

// close the stream
tw.Close();
}
}
}





using System;
using System.IO;

namespace csharp_station.howto
{
class TextFileReader
{
static void Main(string[] args)
{
// create reader & open file
Textreader tr = new StreamReader("date.txt");

// read a line of text
Console.WriteLine(tr.ReadLine());

// close the stream
tr.Close();
}
}
}



اگر ممکن است یکی از دوستان این کدهای بالا را یک مثال عینی بنویسند ممنون میشوم واقعا 4 روز است در این مورد مانده ام

docendo
یک شنبه 17 دی 1391, 19:22 عصر
دوست من خوب اگه فقط دوتا فیلد هس که از همون setting استفاده کن و کمبوباکس هم گزینه انتخاب شده رو بریز تو متغیرش.سادست دگ...



myproj.Properties.Settings.Default.ostan = ostanSelect.SelectedText;
myproj.Properties.Settings.Default.shahr = shahrSelect.SelectedText;
myproj.Properties.Settings.Default.Save( );

//موقع ورود به برنامه داده هارو به کمبو منتقبل کن :


ostanSelect.SelectedItem= myproj.Properties.Settings.Default.ostan ;


موفق باشی

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

docendo
دوشنبه 18 دی 1391, 21:53 عصر
با درود وسپاس از دوستان که لطف کرده و نظراتشان را نوشته اند

من با کد های بالا مشکلی ندارم وقتی در یک مثال ساده از کدهای بالا استفاده کرده همه درست است و خوب هم کار میکند اما وقتی همین کدها در برنامه ای که روش کار میکنم نوشتم هیچکدام کار نمیکند
بعنوان مثال من در این برنامه 4 تا کمبو باکس دارم وقتی در اجرای اول کمبوباکس ها از یک تا چهار را روی موضوعاتی مشخص میکنم بعد از خروج و لود دوباره برنامه موضوعات مشخص شده ظاهر نمیشود و باید دوباره موضوعی را از کمبو باکسها انتخاب کنم
و همچنین سایز و اندازه فاروم تغییر نمیکند