[VB Net]Tách dữ liệu txt file vào datagridview

0 thích 0 không thích
68 lượt xem
đã hỏi 27 Tháng 6, 2018 trong Phần mềm ứng dụng bởi Huỳnh Đạt Thành (160 điểm)

chào mọi người

mình đang có file txt có dữ liệu như sau. có cách nào để add vào dòng datagridview theo gồm
cột đầu "PURCHASE ORDER NO :", cột tiếp "STORE NO ", cột tiếp "ART. DESCR." và cuối cùng "QTY (MU)"

vào từng cột, và file txt đó sẽ rất nhiều page: có thể lên đến 10.000 page như vậy.

nhờ cao nhân chỉ dạy.


bccde12p   PAGE : 1                                                                                                DATE : 21/06/18
                                                    PURCHASE ORDER DISTRIBUTION                                            
 
WAREHOUSE           : 90071  WH 71 DRY SOUTH                        FLOW : 9  Consolidated order  
SUPPLIER            : 21643                           
PURCHASE ORDER NO   : 71000046                       PLANNED DELIV. DATE : 06-DEC-17   
BUY ARTICLE         : 120828 Bath NT                      
SUPPLIER ARTICLE    : 313(1)                          
EAN ARTICLE         : 21208287                          
 
STORE NO              SALES ORD. NO.          SELL ART. NO.              ART. DESCR.                                      QTY (MU)
==================================================================================================================================
10028                 8936123454461                  120828              Bath NT                           3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bccde12p   PAGE : 2                                                                                                DATE : 21/06/18
                                                    PURCHASE ORDER DISTRIBUTION                                            
 
WAREHOUSE           : 90071  WH 71 DRY SOUTH                        FLOW : 9  Consolidated order  
SUPPLIER            : 21643                          
PURCHASE ORDER NO   : 71000046                       PLANNED DELIV. DATE : 06-DEC-17   
BUY ARTICLE         : 157789  NLS                         
SUPPLIER ARTICLE    : 157789                          
EAN ARTICLE         : 21577895                          
 
STORE NO              SALES ORD. NO.          SELL ART. NO.              ART. DESCR.                                      QTY (MU)
==================================================================================================================================
10010                 893654673123                 157789              NLS                                30

bccde12p   PAGE : 3                                                                                                DATE : 21/06/18
                                                    PURCHASE ORDER DISTRIBUTION                                            
 
WAREHOUSE           : 90071  WH 71 DRY SOUTH                        FLOW : 9  Consolidated order  
SUPPLIER            : 21643                           
PURCHASE ORDER NO   : 71000046                       PLANNED DELIV. DATE : 06-DEC-17   
BUY ARTICLE         : 190860  NLK                         
SUPPLIER ARTICLE    : 10493                          
EAN ARTICLE         : 21908606                          
 
STORE NO              SALES ORD. NO.          SELL ART. NO.              ART. DESCR.                                      QTY (MU)
==================================================================================================================================
10020                 8936013231434                  190860              NLK                                9

    

1 câu trả lời

1 thích 0 không thích
đã trả lời 29 Tháng 6, 2018 bởi nguyenthao (5,740 điểm)
được bầu chọn là câu hỏi hay nhất 1 Tháng 7, 2018 bởi Huỳnh Đạt Thành
 
Câu trả lời hay nhất

Bạn có thể gởi file txt mẫu.

Dưới đây là code đọc từ file txt

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.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void button1_Click(object sender, EventArgs e)
        {
            DataTable table = new DataTable();
            table.Columns.Add("STORE NO", typeof(string));
            table.Columns.Add("SALES ORD. NO.", typeof(string));
            table.Columns.Add("SELL ART. NO.", typeof(string));
            table.Columns.Add("ART. DESCR.", typeof(string));
            table.Columns.Add("QTY (MU)", typeof(string));

            string data = File.ReadAllText("text.txt");
            MatchCollection matchList = Regex.Matches(data, @"==(.+?)bccde", RegexOptions.Singleline);
            var list = matchList.Cast<Match>().Select(match => match.Value).ToList();

            foreach (string s in list)
            {
                string[] row = Regex.Split(s, @"\r\n");
                row = row.Where(x => x != " ").ToArray();
                string[] arr = Regex.Split(row[1], "    ");
                arr = arr.Where(x => x != "").ToArray();

                table.Rows.Add(arr[0], arr[1], arr[2], arr[3], arr[4]);
            }

            dataGridView1.DataSource = table;
        }
    }
}
 

đã bình luận 1 Tháng 7, 2018 bởi Huỳnh Đạt Thành (160 điểm)

Thanks bạn, nhưng mình còn 1 vấn đề nữa, với đoạn 2,3 dòng trở lên lại không nhận được, và mình cần thêm 1 cột  PURCHASE ORDER NO: lấy dòng 71000046. mỗi cái số nó sẽ khác và cột DATE : 21/06/18.

thanks bạn đã giúp

bccde12p   PAGE : 1                                                                                                DATE : 21/06/18
                                                    PURCHASE ORDER DISTRIBUTION                                            
 
WAREHOUSE           : 90071  WH 71 DRY SOUTH                        FLOW : 9  Consolidated order  
SUPPLIER            : 21643                           
PURCHASE ORDER NO   : 71000046                       PLANNED DELIV. DATE : 06-DEC-17   
BUY ARTICLE         : 120828 Bath NT                      
SUPPLIER ARTICLE    : 313(1)                          
EAN ARTICLE         : 21208287                          
 
STORE NO              SALES ORD. NO.          SELL ART. NO.              ART. DESCR.                                      QTY (MU)
==================================================================================================================================
10028                 8936123454461                  120828              Bath NT                           3
10011                 8936123454461                  120828              Bath NT                           9
10015                 8936123454461                  120828              Bath NT                           60

...