0

我有从 csv 文件中读取的数据表。然后遍历行和列,并在写入也是目标 csv 文件的文件之前附加每个值。我想将特殊字符(“/”)上的一列数据分成两列。例如,数据表的“类型”列是“女装/鞋履和手袋/猜测”。我还有另一列“子类型”,所以我想在写入之前将数据表中的一列分成两列。我只想忽略第三种猜测。有没有办法寻找位置“/”,在第二个“/”之后,我想将该值插入到数据表的另一列“SubType”中。

    foreach (DataRow dRow in dtSor.Rows)
    {
        for (int i = 0; i < dtSor.Columns.Count; i++)
        {
            if (dRow[i].ToString().Contains(","))
            {
                dest_csv.Append("\"" + dRow[i].ToString() + "\"" + ",");
            }

            else if (dRow[i].ToString() == "")
            {
                dest_csv.Append("NULL" + ",");
            }

            else
            {
                dest_csv.Append(dRow[i].ToString() + ",");
                //dest_csv.Append(dRow[i].ToString());
            }

        }

        dest_csv.Remove(dest_csv.Length - 1, 1);
        dest_csv.Append(Environment.NewLine);
    }

    File.WriteAllText(destination_file, dest_csv.ToString(), Encoding.Default);
}
4

1 回答 1

0

首先检查特殊字符是否在indexOf字段中,然后将字段拆分为 araay 中的特殊字符,并仅获取您感兴趣的部分。

像这样:

const char special = '\\';

string maintype ="";
string subtype ="";

string field = dRow[i].ToString();
if (field.IndexOf(special)>-1)
{
  string[] splitted = field.Split(special);
  maintype = splitted[0];
  subtype = splitted[1];
}
于 2012-08-25T12:24:21.180 回答