0

csvファイルから読み取ったデータテーブルがあります。次に、行と列を反復処理し、各値を追加してから、宛先 csv ファイルでもあるファイルに書き込みます。1 つの列のデータを特殊文字 ("/") で 2 つの列に分けたいと考えています。たとえば、データ テーブルの「タイプ」の列は、「女性/靴とハンドバッグ/ゲス」です。別の列「SubType」があるので、書き込む前にデータ テーブルの 1 列を 2 列に分けたいと思います。推測である3番目のタイプは無視したいだけです。位置「/」をシークする方法はありますか?2 番目の「/」の後に、その値を「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 に答える