读取分隔的文本文件?

use*_*400 5 .net c# io

我试图从分隔的文本文件中读取,但所有内容都在一行和一列中返回.

我的连接字符串是

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
    Path.GetDirectoryName(@textBox1txtPath.Text) + ";" + 
    "Extended Properties=\"text;HDR=YES;IMEX=1;Format=Delimited(|)\"");
Run Code Online (Sandbox Code Playgroud)

我的文本文件是:

ItemNumber|ProductStatus|UPC
0000012|closed|2525
Run Code Online (Sandbox Code Playgroud)

请协助

No *_*ame 4

我不知道你到底需要什么,但你可以这样做:

如果你有string str整个文本,你可以这样做

string[] lines = str.Split('\n');// split it to lines;
Run Code Online (Sandbox Code Playgroud)

然后对于每一行你可以做

string[] cells = line.Split('|');// split a line to cells
Run Code Online (Sandbox Code Playgroud)

如果我们将其提升到一个新的水平,我们可以做到:

public class line
{
  public int ItemNumber { get; set; }
  public string ProductStatus { get; set; }
  public int UPC { get; set; }

  public line(string currLine)
  {
     string[] cells = currLine.Split('|');
     int item;
     if(int.TryParse(cells[0], out item))
     {
        ItemNumber = item;
     }

     ProductStatus = cells[1];

     int upc;
     if (int.TryParse(cells[2], out upc))
     {
        UPC = upc;
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

进而:

string[] lines = str.Substring(str.IndexOf("\n")).Split('\n');// split it to lines;
List<line> tblLines = new List<line>();

foreach(string curr in lines)
{
    tblLines.Add(new line(curr);
}
Run Code Online (Sandbox Code Playgroud)