根据csv拆分字符串

时间:2013-08-02 09:52:49

标签: c# csv visual-studio-2012

下面是一个按钮的代码,该按钮用于解析csv文件并用客户端和客户端名称填充2X2表。我看过网上但找不到我想做的合适的例子,使用VS 2012和C#我想读取文件,只取出并插入客户端和客户端名称,但此刻我的代码只需要一切在文件中。

如果找到关键字,我打算采用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,ShareName,Status,Share CCY,Benchmark,NAV Freq,CLASSCODE,SIMULATION,HEDGED,FUNDCCY

     

1,1,2,Cj0162289439,FGHT全球基金 - 亚洲包括韩国股票,激活,美元,每日下午5:00(CVT),AC,n / a,N ,,

     

2,1,2,Cj0622164928,FGHT全球基金 - 亚洲包括韩国股票,激活,美元,每日下午5:00(CCT),ACEUR,n / a,N ,,

     

3,1,2,Cj0212851702,FGHT全球基金 - 亚洲包括韩国股票,激活,美元,每日下午5:00(CST),ACHEUR,不适用,Y ,,

     

4,1,2,Cj0042850808,FGHT全球基金 - 亚洲包括韩国股票,激活,美元,每日下午5:00(CET),AD,n / a,N ,,

     

5,1,2,Cj0212851884,FGHT全球基金 - 亚洲包括韩国股票,激活,美元,每日下午5:00(CDT),ADHEUR,n / a,Y ,,

     

6,1,2,Cj0162849209,FGHT全球基金 - 亚洲包括韩国股票,已激活,美元,每日下午5:00(CHT),EC,n / a,N ,,

     

7,1,2,Cj0622165065,FGHT全球基金 - 亚洲包括韩国股票,未激活,美元,每日下午5:00(CET),ECEUR,n / a,N ,,

     

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

     

9,4,2,Cj0162193169,FGHT Global Funds - Asia包括韩国股票,已激活,美元,每日下午5:00(CBT),IC,n / a,N ,,

1 个答案:

答案 0 :(得分: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.
}