ورود

View Full Version : آموزش: خواندن از فایل متنی و نمایش در DataGridView



mrprestige
دوشنبه 20 بهمن 1393, 15:39 عصر
سلام دوستان وقت گرانبهاتون بخیر ، دوستان من امروز یه برنامه نوشتم که میتونید اطلاعات داخل فایل txt رو توی Data Grid نشون بدید ، خیلی جالبه . برای شروع یه Text Document بسازید و اسمش رو تغییر بدید ( مثلا my db ) بعد از اون اطلاعاتش رو بع این روش که تو نت پد نوشتم بنویسید بعدش save کنید

128321

بعد وارد محیط #C بشید یه Datagrid و یه button روی صفحه فرم قرار بدید و توی دکمه اینو بنویسید


StreamReader ds = new StreamReader(@"C:\Users\Desktop\my.txt");
string all = ds.ReadToEnd();
ds.Close();
DataTable dt = new DataTable();
dt.Columns.Add("شناسه");
dt.Columns.Add("نام");
dt.Columns.Add("تلفن");
string[] rec = all.Split('+');
for (int i = 0; i < rec.Length; i++)
{
string[] w = rec[i].Split(';');
dt.Rows.Add(w[0], w[1], w[2]);
}
dataGridView1.DataSource = dt;





دوست داشتید دربارش توضیح بدم بفرمایید که بنده عرض کنم . برنامه قشنگ و جالبیه . بدرد بخوره مثلا برنامه نویس یه بانکی رو طراحی میکنه توی برنامه کدی رو مینویسه که کاربر در زمان اجرای برنامه ، خودش بگه نام دیتابیسش یا user name و password چیه . و برنامه نویس دیگه هی نخواد سورس کد رو تغییر بده .

پیروز و موفق باشید .

HAMRAHSOFT.IR
یک شنبه 17 اسفند 1393, 23:39 عصر
سلام
شرمنده اگه شوال ابتدای هست
اگه فایل بصورت

1
2
3
4
5
6
یعنی شماره و زیر هم بود کد به این صورت تغیر دادم اما فقط شماره اول میاره چرا

StreamReader ds = new StreamReader(@"D:\my.txt");
string all = ds.ReadToEnd();
ds.Close();
DataTable dt = new DataTable();
dt.Columns.Add("تلفن");
string[] rec = all.Split('+');
for (int i = 0; i < rec.Length; i++)
{
string[] w = rec[i].Split('\n');
dt.Rows.Add(w[0]);
}
dataGridView4.DataSource = dt;

علی فتحی
دوشنبه 03 اسفند 1394, 12:08 عصر
من تاپیک دیگه ایجاد نکردم ممنون میشم جواب بدین چرا بصورت ریز نشون داده نمیشه .

OpenFileDialog a = new OpenFileDialog(); a.Filter = "Text File|*.txt";
a.FileName = textBox1.Text;
string b = a.ShowDialog().ToString();
if (b == "OK")
{
textBox1.Text = a.FileName;
StreamReader ds = new StreamReader(textBox1.Text);
string all = ds.ReadToEnd();
ds.Close();
DataTable dt = new DataTable();
dt.Columns.Add("No");
dt.Columns.Add("TMNo");
string[] rec = all.Split('+');
for (int i = 0; i < rec.Length; i++)
{
string[] w = rec[i].Split(' ');
dt.Rows.Add(w[0], w[1]);
}
dataGridView1.DataSource = dt;

علی فتحی
چهارشنبه 10 بهمن 1403, 01:28 صبح
سلام میشه برای این متن فایل کد و اصلاح کنید

000009 202512822619334_3_1521160714.jpg 0 0
000010 202512822622288_3_1041518882.jpg 0 0
000011 202512822826822_3_1430917728.jpg 0 0
000012 202512822828885_3_1771489671.jpg 0 0
000013 20251282283194_3_1880474710.jpg 0 0
000014 202512822833319_3_1230477965.jpg 0 0
000015 202512822836504_3_1508974060.jpg 0 0
000016 202512822944602_3_1978714675.jpg 0 0
000017 20251282294745_3_1758901538.jpg 0 0
000018 202512822949199_2_709557882.jpg 0 0
000019 202512822951299_3_896450553.jpg 0 0

shahryari
جمعه 26 بهمن 1403, 11:39 صبح
باسلام جناب فتحی عزیز ، تاپیک مال 93 ئه زمانی که دلار 5 هزار تومن بود :افسرده:

در چنین مواقعی باید ستونها و دریف ها با نظم خاصی جدا بشن ، با توجه به ساختاری که فایل شما داره من متوجه شدم 4 ستون با یه اسپیس از هم جدا شدن و هر خط هم یک Row محسوب میشه که بهترین گزینه کد زیر است:

string[] allRecords = System.IO.File.ReadAllLines("records.txt");
foreach (string record in allRecords)
{
string[] col = record.Split(' ');
dataGridView1.Rows.Add(col[0], col[1], col[2], col[3]);
}

دقت داشته باشید که یک خط خالی در فایل یا یک اسپیس نابجا میتونه کل الگوریتمو بهم بزنه
موفق باشید