我需要更改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);
}
答案 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
循环检索行和列值并将其与数值连接。这样做,我得到你想要的输出。