【问题标题】:Multiple data type values to CSV fileCSV 文件的多种数据类型值
【发布时间】:2014-07-20 09:45:50
【问题描述】:

有人可以解释如何将具有不同值类型的多个值写入 CSV 文件。我猜您必须使用 Stream writer,但是在写入文件之前如何准备值?

public static void SaveGame(GridReference[] TrapPositions, GridReference MonsterPosition, GridReference PlayerPosition, GridReference FlaskPosition, bool MonsterAwake)
{
    //StreamWriter sw = new StreamWriter (filename);

    /* string filePath = "path" + "filename.csv";
    if (!File.Exists(filePath))
    {
        File.Create(filePath).Close();
    } */

    string delimiter = ",";

    int PlayerX = PlayerPosition.X_CoOrd;
    int PlayerY = PlayerPosition.Y_CoOrd;
    bool Awake = MonsterAwake;
    int FirstTrapX = TrapPositions [1].X_CoOrd;
    int FirsttrapY = TrapPositions [1].Y_CoOrd;
    int SecondTrapX = TrapPositions [2].X_CoOrd;
    int SecondTrapY = TrapPositions [2].Y_CoOrd;
    int MonsterX = MonsterPosition.X_CoOrd;
    int MonsterY = MonsterPosition.Y_CoOrd;
    int FlaskX = FlaskPosition.X_CoOrd;
    int FlaskY = FlaskPosition.Y_CoOrd;
}

【问题讨论】:

标签: c# csv export-to-csv streamwriter


【解决方案1】:

不清楚你想做什么。 如果您想要包含所有值的单行,那么我将首先在您的位置类中编写一个 ToCsv() 方法-

internal public ToCsv()
{
   return X_CoOrd + "," + Y_CoOrd;
}

然后我会创建一个数组并加入它

var vals = new List<string>();
vals.Add(PlayerPosition.ToCsv());
foreach (var trapPosition in TrapPositions)
    vals.Add(trapPosition.ToCsv());
vals.Add(MonsterPosition.ToCsv());
vals.Add(FlaskPosition.ToCsv());
vals.Add(MonsterAwake.ToString());
File.WriteAllText("filename.csv", string.Join(",", vals.ToArray());

【讨论】:

  • 目的是将变量中保存的值保存到 CSV 文件中,以便它们可以使用,以便在以后有效地加载游戏。
【解决方案2】:

CSV 文件是文本文件,因此所有 String 值。将ToString() 放在您要写入的每个值的末尾,然后写入。

一种可能的方法:

StringBuilder sb = new StringBuilder();
foreach (value you mean to write)
{
    sb.Append(thevalue.ToString());
}
//write the line to the stream as sb.ToString()

【讨论】:

    猜你喜欢
    • 2018-07-29
    • 2018-07-03
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    相关资源
    最近更新 更多