2013-08-02 85 views
1

下面是一個按鈕的代碼,該代碼用於解析csv文件並用客戶端和客戶端名稱填充2X2表。我在網上看過,但找不到我想要做的一個合適的例子,使用VS 2012和C#我想通讀該文件,只取出並插入客戶端和客戶端名稱,但目前我的代碼只是將所有內容在文件內。根據csv拆分字符串

我打算採取csv並通讀它,如果找到關鍵字;使用它,然後繼續搜索,只是想知道有人能告訴我如何?

例如,我想通過laClient列表進行搜索,如果我找到HTY,我想在接下來的6個字符後繼續搜索。

private void btnUpload_Click(object sender, EventArgs e) 
{ 
    //Browse for file 
    OpenFileDialog ofd = new OpenFileDialog(); 
    //Only show .csv files 
    ofd.Filter = "Microsoft Office Excel Comma Separated Values File|*.csv"; 
    DialogResult result = ofd.ShowDialog(); 

    //If the user selects a valid file 
    if (result == DialogResult.OK) 
    { 
     //File is delimited by a comma 
     char[] laClientDelim = { ',' }; 

     //New object for string manipulation 
     objStringManipulation = new StringManipulation(); 

     // Parse the csv file 
     List<string[]> lsClientList = objStringManipulation.parseCSV(ofd.FileName, laClientDelim); 

     foreach (string[] laClient in lsClientList) 
     { 
      //Create new object for manipulating the database 
      objSqlCommands = new SqlCommands("Client", "ClientName"); 
      laClient[8]. 


      //Inserts the client info into datbase 
      objSqlCommands.sqlCommandInsertorUpdate("INSERT", laClient[0]); 
      //Refreshs the Client table on display from the 
      this.clientTableAdapter.Fill(this.ImpDataSet.Client); 

      //update the view 
      dgvClientlst.Update(); 

     } 
    } 
} 

CSV數據看起來是這樣的(如下圖),由於這個佈局我試圖連接的可讀性畫面的質量較差,但讓我不能這樣做,我沒有10美譽。

ISBU,共享名,狀態,分享CCY,基準,NAV頻率,CLASSCODE,仿真,對衝,FUNDCCY

1,1,2,Cj0162289439,FGHT全球基金 - 亞洲含韓國股票,激活, USD,每日下午5:00(CVT),AC,不適用,N ,,

2,1,2,Cj0622164928,FGHT全球基金 - 亞洲,包括韓國股票,已激活,美元,每日下午5點(CCT),ACEUR,n/a,N ,,

3,1,2,Cj0212851702,FGHT全球基金 - 亞洲包括韓國股票,已啓動,美元,每日下午5點(CST),ACHEUR,n/a,Y ,,

4,1,2,Cj0042850808,FGHT全球基金 - 亞洲含韓國股票,激活,美元,(CET)每日下午5:00,AD,N/A,N ,,

5,1, 2,Cj0212851884,FGHT全球基金 - 亞洲包括韓國股票,已激活,美元,每日下午5:00(CDT),ADHEUR,不適用,Y ,,

6,1,2,Cj0162849209,FGHT Global Funds - 亞洲,包括韓國股票,已激活,美元,每日下午5點(瑞士法郎),歐共體,不適用,N ,,

7,1,2,Cj0622165065,FGHT全球基金 - 亞洲,包括韓國股票,非 - 激活,美元,每日下午5點(CET),ECEUR,n/a,N ,,

8,1,2,Cj0112316214,FGHT全球基金 - 亞洲包括韓國股票,已激活,美元,每日下午5:00(CGT),ED,n/a,N ,,

9,4,2, Cj0162193169,FGHT全球基金 - 亞洲含韓國股票,激活,美元,(CBT)每日下午5:00,IC,N/A,N ,,

+2

添加CSV數據的樣本。 –

+0

@HenkHolterman我不能添加一個文件或圖片,所以複製粘貼的數據,看起來凌亂 – user2546071

回答

0

你應該能夠讀取CSV,並獲得此代碼的單個值:

string[] records = File.ReadAllLines(fileName); // read the file completely line by line 

// loop through all lines 
foreach (string record in records) 
{ 
    string[] fields = record.Split(splitChar); // reads all the single values per line. 'splitChar' should be the delimiter. 
} 
+0

謝謝我會試試這個! – user2546071