如何重新格式化CSV文件?

时间:2014-01-05 10:54:58

标签: c# csv

我需要更改CSV文件的格式。

我的CSV文件:

x,a,b,c
e,,2,1
f,3,15,
g,7,8,9

需要的格式:

ea0
eb2
ec1
fa3
fb15
fc0
ga7
gb8
gc9

我已编写代码,但它无效:

string log = retval(textBox1.Text, 0, 512);
string[,] head = new string[4, 4];

int row=0;
int column=0;

string[] lines = log.Split('\n');
foreach (string l in lines)
{
    string[] split = l.Split(',');
    foreach (string item in split)
    {

        head[row, column] = item;
        column++;
    }
    row++;
}


for (row=1; row < 4; row++)
{
    string tmp = "";
    for (column = 1; column < 4; column++)
    {
        tmp = head[row, column];

    }
    listBox1.Items.Add(tmp);
}

2 个答案:

答案 0 :(得分:0)

您正在将索引设为1而不是0,

改为使用:

    for (row=0; row < 4; row++)
    {
        string tmp = "";
        for (column = 0; column < 4; column++)
        {
            tmp = head[row, column];

        }
        listBox1.Items.Add(tmp);
    }

答案 1 :(得分:0)

我不是百分之百确定你要去的地方,但是这个怎么样:

foreach (string l in lines)
{
    string[] split = l.Trim().Split(',');
    foreach (string item in split)
    {

        head[row, column] = item;
        column++;
    }
    row++;
    column = 0;
}

for (row = 1; row < 4; row++)
{
    for (column = 1; column < 4; column++)
    {
        string rowAndColumn = head[row, 0] + head[0, column];
        string value = string.IsNullOrEmpty(head[row, column]) ? "0" : head[row, column];

        listBox1.Items.Add(rowAndColumn + value);
    }
}

重要的变化是第一个column = 0;循环中的foreach。如果没有这个,你的column索引总是会超出范围。

第二个foreach循环检索行和列值并将其与数值连接。这样做,我得到你想要的输出。