数据表中有6列,我想合并columns1/rows1&column2/rows2在一起,但保留其余部分。因此,我使用拆分方法分离了多余的间距,但有一些分离的数据我想合并在一起,比如"ZPRP 09-0729-01-MAR"变成"ZPRP09-0729-02-MAR"请帮助:D
样本数据:test1.txt
MY01 CISCO ZPRP 08-0729-01-MAR 08-0729-01 1 EA
MY01CISCO ZPRP 08-0729-01-MAR 08-0729-01 1 EA
MY01CISCO ZPRP 08-0729-01-MAR 08-0729-01 1 EA
MY01CISCO ZPRP 10-2919-01$1 10-2919-01 1 EA
MY01 CISCO ZPRP10-2919-01$1 10-2919-011 EA
MY01
我想要的结果显示在数据表上:
MY01 CISCO ZPRP08-0729-01-MAR 08-0729-01 1 EA
MY01CISCO ZPRP08-0729-01-MAR 08-0729-01 1 EA
MY01CISCO ZPRP08-0729-01-MAR 08-0729-01 1 EA
MY01CISCO ZPRP10-2919-01$1 10-2919-01 1 EA
MY01 CISCO ZPRP 10-2919-01$100 10-2919-011EA
MY01
数据表数据
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
string filepath = @"C:Users2563911sourcerepostest1.txt";
using (System.IO.TextReader tr = File.OpenText(filepath))
{
string line;
while ((line = tr.ReadLine()) != null)
{
if (!line.StartsWith("-"))
{
if (line.Length < 82 || line.Contains("MY01"))
{
string[] items = line.Replace("MY01","").Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
if (dt.Columns.Count == 0 )
{
for (int i = 0; i < items.Length; i++)
dt.Columns.Add(new DataColumn("Column" + i, typeof(string)));
}
dt.Rows.Add(items);
}
}
}
//show it in gridview
this.DataGridView.DataSource = dt;
}
}
}
}
// The simple solution.
// Split the string at every space.
// Return a new array where you join or re-order the columns however you want.
string[] SplitIntoAndCombineColumns(string line)
{
var parts = line.Split(' ');
// Make sure our array is long enough.
// If the string does not contain these fields,
// they will be null in the result.
if(parts.Length < 7) {
Array.Resize(ref parts, 7);
}
var result = new[] {
parts[0], parts[1],
// Combine these two columns
parts[2] + parts[3],
parts[4], parts[5], parts[6]
};
return result;
}