نمایش نتایج 1 تا 4 از 4

نام تاپیک: نمایش فایل txt در دیتاگرید با سی شارپ

  1. #1
    کاربر دائمی آواتار علی فتحی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    مهاباد
    سن
    43
    پست
    1,111

    نمایش فایل txt در دیتاگرید با سی شارپ

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

    System.IO.StreamReader file = new System.IO.StreamReader(Application.StartupPath + @"\index.txt");            string[] columnnames = file.ReadLine().Split(' ');
    DataTable dt = new DataTable();
    foreach (string c in columnnames)
    {
    dt.Columns.Add(c);
    }
    string newline;
    while ((newline = file.ReadLine()) != null)
    {
    DataRow dr = dt.NewRow();
    string[] values = newline.Split(' ');
    for (int i = 0; i < values.Length; i++)
    {
    dr[i] = values[i];
    }
    dt.Rows.Add(dr);
    }
    file.Close();
    dataGridView1.DataSource = dt;

  2. #2
    کاربر دائمی آواتار علی فتحی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    مهاباد
    سن
    43
    پست
    1,111

    نقل قول: خواندن از فایل متنی و نمایش در DataGridView

    ممنون میشم دقیقا برای این فایل کد برنامه را اصلاخ فرمایید
    فایل های ضمیمه فایل های ضمیمه

  3. #3

    نقل قول: نمایش فایل txt در دیتاگرید با سی شارپ

    براساس کاراکتر تب یعنی /t بایست split کنید.

  4. #4

    نقل قول: نمایش فایل txt در دیتاگرید با سی شارپ

    نمایش محتویات یک فایل متنی (.txt) در یک کنترل DataGridView در سی شارپ یه فرایند چند مرحله‌ای داره. شما باید فایل رو بخونید، داده‌هاش رو به یه ساختار مناسب (مثل لیست از لیست‌ها یا لیست از اشیاء) تبدیل کنید و بعد اون ساختار رو به DataSource کنترل DataGridView متصل کنید. در اینجا یه توضیح گام به گام به همراه کد نمونه براتون آوردم:
    1. اضافه کردن کنترل DataGridView به فرم:
    اول از همه، باید یه کنترل DataGridView به فرم ویندوزی (Windows Form) خودتون اضافه کنید. این کار رو می‌تونید از طریق پنجره‌ی Toolbox در Visual Studio انجام بدید. کافیه کنترل DataGridView رو پیدا کنید و اون رو روی فرم درگ و دراپ کنید.
    2. نوشتن کد برای خواندن فایل متنی و تبدیل داده‌ها:
    حالا باید کدی بنویسید که فایل متنی رو بخونه و داده‌هاش رو برای نمایش در گرید آماده کنه. فرض کنید فایل متنی شما به این شکله:
    نام,سن,شهر
    علی,25,تهران
    رضا,32,اصفهان
    مریم,28,شیراز



    یعنی هر خط شامل چند مقدار هست که با کاما از هم جدا شدن و خط اول هم عنوان ستون‌ها رو مشخص می‌کنه. کد سی شارپ برای خوندن و تبدیل این داده‌ها می‌تونه به این صورت باشه:
    C#‎

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace ShowTextInDataGridView
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void LoadTextFileToDataGridView(string filePath)
    {
    try
    {
    // لیست برای نگهداری ردیف‌های داده
    List<string[]> dataRows = new List<string[]>();

    // خواندن تمام خطوط فایل
    string[] lines = File.ReadAllLines(filePath);

    if (lines.Length > 0)
    {
    // خط اول به عنوان عنوان ستون‌ها در نظر گرفته می‌شود
    string[] columnHeaders = lines[0].Split(',');

    // تنظیم تعداد ستون‌های دیتاگرید
    dataGridView1.ColumnCount = columnHeaders.Length;

    // تنظیم عنوان ستون‌های دیتاگرید
    for (int i = 0; i < columnHeaders.Length; i++)
    {
    dataGridView1.Columns[i].HeaderText = columnHeaders[i];
    }

    // خواندن داده‌ها از خطوط بعدی
    for (int i = 1; i < lines.Length; i++)
    {
    string[] rowData = lines[i].Split(',');
    dataRows.Add(rowData);
    }

    // اتصال لیست داده‌ها به DataSource دیتاگرید
    dataGridView1.DataSource = new BindingList<string[]>(dataRows);
    }
    else
    {
    MessageBox.Show("فایل خالی است.", "اطلاع", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    }
    catch (Exception ex)
    {
    MessageBox.Show($"خطا در خواندن فایل: {ex.Message}", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    }

    private void buttonLoadFile_Click(object sender, EventArgs e)
    {
    // نمایش دیالوگ باز کردن فایل برای انتخاب فایل متنی
    OpenFileDialog openFileDialog = new OpenFileDialog();
    openFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
    openFileDialog.Title = "انتخاب فایل متنی";

    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
    LoadTextFileToDataGridView(openFileDialog.FileName );
    }
    }
    }
    }



    توضیحات کد:

    • LoadTextFileToDataGridView(string filePath): این متد وظیفه‌ی اصلی رو بر عهده داره. یه مسیر فایل رو به عنوان ورودی می‌گیره.
    • List<string[]> dataRows = new List<string[]>();: یه لیست از آرایه‌های رشته‌ای ایجاد می‌کنیم تا ردیف‌های داده رو نگهداری کنیم. هر آرایه رشته‌ای نماینده‌ی یه ردیف در فایل متنی هست.
    • File.ReadAllLines(filePath);: تمام خطوط فایل متنی رو به صورت یه آرایه از رشته‌ها می‌خونه.
    • خواندن عنوان ستون‌ها: اگه فایل خطوطی داشته باشه، خط اول به عنوان عنوان ستون‌ها در نظر گرفته می‌شه و با استفاده از Split(',') به آرایه‌ای از رشته‌ها تبدیل می‌شه.
    • dataGridView1.ColumnCount = columnHeaders.Length;: تعداد ستون‌های DataGridView رو بر اساس تعداد عنوان ستون‌ها تنظیم می‌کنیم.
    • dataGridView1.Columns[i].HeaderText = columnHeaders[i];: عنوان هر ستون DataGridView رو از آرایه‌ی columnHeaders تنظیم می‌کنیم.
    • خواندن داده‌ها: از خط دوم فایل شروع می‌کنیم و هر خط رو با استفاده از Split(',') به آرایه‌ای از رشته‌ها تبدیل می‌کنیم و به لیست dataRows اضافه می‌کنیم.
    • dataGridView1.DataSource = new BindingList<string[]>(dataRows);: مهم‌ترین قسمت اینجاست. ما لیست dataRows رو به عنوان DataSource کنترل DataGridView تنظیم می‌کنیم. استفاده از BindingList<T> باعث می‌شه که اگه تغییری در لیست dataRows ایجاد بشه، DataGridView هم به صورت خودکار به‌روزرسانی بشه.
    • مدیریت خطا: از بلاک try-catch برای مدیریت خطاهای احتمالی در هنگام خواندن فایل استفاده شده.
    • buttonLoadFile_Click: این رویداد مربوط به کلیک روی یه دکمه هست که یه دیالوگ باز کردن فایل رو نشون می‌ده تا کاربر فایل متنی مورد نظر رو انتخاب کنه. بعد از انتخاب فایل، متد LoadTextFileToDataGridView با مسیر فایل انتخاب شده فراخوانی می‌شه.

    3. اضافه کردن دکمه برای انتخاب فایل (اختیاری):
    برای اینکه کاربر بتونه فایل متنی رو انتخاب کنه، می‌تونید یه کنترل Button به فرم اضافه کنید و رویداد Click اون رو به کد بالا متصل کنید. همچنین یه کنترل OpenFileDialog هم به فرم اضافه کنید تا دیالوگ باز کردن فایل نمایش داده بشه.
    نکته:

    • این کد فرض می‌کنه که فایل متنی شما ساختار منظمی داره و مقادیر هر ردیف با کاما از هم جدا شدن. اگه ساختار فایل شما متفاوت هست، باید منطق خوندن و تبدیل داده‌ها رو بر اساس اون تغییر بدید.
    • برای نمایش داده‌های پیچیده‌تر (مثلاً اگه هر ستون نوع داده‌ی خاصی داره)، بهتره که یه کلاس سفارشی برای نگهداری هر ردیف داده تعریف کنید و یه لیست از اشیاء اون کلاس رو به DataSource متصل کنید. اینجوری می‌تونید نوع داده‌ی هر ستون رو هم در DataGridView مشخص کنید.

    این یه روش کلی برای نمایش فایل متنی در DataGridView با سی شارپ هست. برای یادگیری عمیق‌تر مفاهیم کار با فایل‌ها، کنترل‌های ویندوز فرم و اتصال داده‌ها، پیشنهاد می‌کنم به دنبال آموزش برنامه نویسی سی شارپ در منابع مختلف بگردید. خیلی از وبسایت‌ها و پلتفرم‌های آموزشی، دوره‌های جامعی در این زمینه‌ها ارائه می‌دن.

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: جمعه 26 تیر 1394, 09:32 صبح
  2. پاسخ: 2
    آخرین پست: پنج شنبه 11 خرداد 1391, 11:13 صبح
  3. دسترسی به تکست باکس توی هر سطر دیتاگرید و مقدار دهی دیتاتیبل
    نوشته شده توسط bahar_engineer در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: پنج شنبه 28 آبان 1388, 12:13 عصر
  4. دسترسی به یه ستون دیتا گریدی که از دیتا تیبل استفاده شد
    نوشته شده توسط hassan_RK در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: شنبه 05 شهریور 1384, 20:25 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •