private void btnReader_Click(object sender, EventArgs e)
{
ds = Convert(@"E:/MSNData/material.txt", "material", "/t");
}
//转换函数
private static DataSet Convert(string File, string TableName, string delimiter)
{
DataSet result = new DataSet();
StreamReader s = new StreamReader(File);
string[] columns = s.ReadLine().Split(delimiter.ToCharArray());
result.Tables.Add(TableName);
foreach (string col in columns)
{
bool added = false;
string next = "";
int i = 0;
while (!added)
{
string columnname = col;
columnname = columnname.Replace("#", "");
columnname = columnname.Replace("'", "");
columnname = columnname.Replace("&", "");
if (!result.Tables[TableName].Columns.Contains(columnname))
{
result.Tables[TableName].Columns.Add(columnname);
added = true;
}
else
{
i++;
next = "_" + i.ToString();
}
}
}
string AllData = s.ReadToEnd();
string[] rows = AllData.Split("/r/n".ToCharArray());
foreach (string r in rows)
{
if (r.Length > 0)
{
string[] items = r.Split(delimiter.ToCharArray());
result.Tables[TableName].Rows.Add(items);
}
}
return result;
}
//delimiter定义说明
/n | new line |
/r | carriage return |
/t | horizontal tab |
/v | vertical tab |