加入一维数组以覆盖具有多条记录的 CSV 文件
Join one-dimesional array to write over a CSV file with multiple records
我正处于保存功能的最后一步,我需要帮助弄清楚如何将数据结构化回我的 CSV 格式,以便我可以覆盖原始数据。这是 link 对我的其他 code/post 帮助我达到这一点: 我已经分离了记录并更改了正确的值,但现在我需要将记录重新加入相同的位置格式为 CSV 文件,然后覆盖原始 CSV。
这是我的代码:
string txt = System.IO.File.ReadAllText("Assets/Resources/characters.csv.txt");
string[] data = txt.Split(new char[] { '\n' });
foreach(string record in data){
var dataValues = record.Split(',');
if(dataValues.Length >= 6 && dataValues[1] == trickName)
{
dataValues[3] = currentXP.ToString();
dataValues[4] = currentLevel.ToString();
dataValues[5] = maximumXP.ToString();
}
foreach(string row in dataValues)
{
//prints out a one-dimesional array, single lines no commas
Debug.Log(row);
}
}
使用 string.Join()
将分离的和更新的值连接回一行。
// string txt = System.IO.File.ReadAllText("Assets/Resources/characters.csv.txt");
// string[] data = txt.Split(new char[] { '\n' });
// use ReadAllLines function instead of ReadAllText
string[] data = File.ReadAllLines("Assets/Resources/characters.csv.txt");
foreach(string record in data)
{
var dataValues = record.Split(',');
if(dataValues.Length >= 6 && dataValues[1] == trickName)
{
dataValues[3] = currentXP.ToString();
dataValues[4] = currentLevel.ToString();
dataValues[5] = maximumXP.ToString();
}
// concatenate values into comma delimited line
string outputLine = string.Join(",", dataValues);
Debug.Log(outputLine);
}
我正处于保存功能的最后一步,我需要帮助弄清楚如何将数据结构化回我的 CSV 格式,以便我可以覆盖原始数据。这是 link 对我的其他 code/post 帮助我达到这一点:
这是我的代码:
string txt = System.IO.File.ReadAllText("Assets/Resources/characters.csv.txt");
string[] data = txt.Split(new char[] { '\n' });
foreach(string record in data){
var dataValues = record.Split(',');
if(dataValues.Length >= 6 && dataValues[1] == trickName)
{
dataValues[3] = currentXP.ToString();
dataValues[4] = currentLevel.ToString();
dataValues[5] = maximumXP.ToString();
}
foreach(string row in dataValues)
{
//prints out a one-dimesional array, single lines no commas
Debug.Log(row);
}
}
使用 string.Join()
将分离的和更新的值连接回一行。
// string txt = System.IO.File.ReadAllText("Assets/Resources/characters.csv.txt");
// string[] data = txt.Split(new char[] { '\n' });
// use ReadAllLines function instead of ReadAllText
string[] data = File.ReadAllLines("Assets/Resources/characters.csv.txt");
foreach(string record in data)
{
var dataValues = record.Split(',');
if(dataValues.Length >= 6 && dataValues[1] == trickName)
{
dataValues[3] = currentXP.ToString();
dataValues[4] = currentLevel.ToString();
dataValues[5] = maximumXP.ToString();
}
// concatenate values into comma delimited line
string outputLine = string.Join(",", dataValues);
Debug.Log(outputLine);
}