C#、windows 表单、StremWriter、Header 行
C#, windows form, StremWriter, Header line
我正在尝试在我的 运行 csv 文件日志中添加一个 header。这就是我想要的,
项目名称、项目序列号、项目构建 < 第一行永远不会改变,除非文件被删除。在这种情况下,创建一个新的 header 行。
在那一行之后,我希望每次都将数据添加到下一行。
这是我目前的情况。
// 写入 CSV
字符串路径 =
如果 (!File.Exists(路径))
{
File.CreateText(路径);
}
string projectName = ProjectName_TextBox.Text;
string projetcBuild = ProjectBuild_TextBox.Text;
string projectSN = SN_TextBox.Text;
string header = "Project Name, Project Build, Project SN\n";
using (StreamWriter sw = new StreamWriter(path, true)) // true for appending data to file, false to overwrite in file
{
sw.WriteLine(header);
sw.WriteLine(string.Format(projectName + "," + projetcBuild.ToString() + "," + projectSN.ToString()));
}
它的作用是在每次单击按钮时添加 header 和数据。我只想将 header 添加到文件中一次。只有来自表单的数据才会附加到我认为我拥有的下一行。请帮忙。
您可以在使用 File.Exists(path) 添加 headers 之前检查文件是否存在。像
string projectName = ProjectName_TextBox.Text;
string projetcBuild = ProjectBuild_TextBox.Text;
string projectSN = SN_TextBox.Text;
string header = "Project Name, Project Build, Project SN\n";
var firstWrite = !File.Exists(path);
using (StreamWriter sw = new StreamWriter(path, true)) // true for appending data to file, false to overwrite in file
{
if(firstWrite)
sw.WriteLine(header);
sw.WriteLine(string.Format(projectName + "," + projetcBuild.ToString() + "," + projectSN.ToString()));
File.CreateText returns 你是一个流媒体作者;您可以使用它,也可以借此机会编写 header
string header = "Project Name, Project Build, Project SN\n";
// Write to CSV string path
try{
StreamWriter sw;
if (!File.Exists(path)) {
sw = File.CreateText(path);
sw.WriteLine(header);
} else
sw = File.AppendText(path);
string projectName = ProjectName_TextBox.Text;
string projetcBuild = ProjectBuild_TextBox.Text;
string projectSN = SN_TextBox.Text;
sw.WriteLine(projectName + "," + projetcBuild + "," + projectSN);
}
finally{
sw.Dispose();
}
您不需要对字符串调用 ToString。您不需要在没有占位符的字符串上调用格式。您真的不应该费心编写自己的 csv 编写器;有很多好的图书馆可以做到这一点。只要有人在其中一个文本框中输入逗号,这个简单的实现就会失败
我正在尝试在我的 运行 csv 文件日志中添加一个 header。这就是我想要的,
项目名称、项目序列号、项目构建 < 第一行永远不会改变,除非文件被删除。在这种情况下,创建一个新的 header 行。
在那一行之后,我希望每次都将数据添加到下一行。
这是我目前的情况。
// 写入 CSV 字符串路径 = 如果 (!File.Exists(路径)) { File.CreateText(路径);
}
string projectName = ProjectName_TextBox.Text;
string projetcBuild = ProjectBuild_TextBox.Text;
string projectSN = SN_TextBox.Text;
string header = "Project Name, Project Build, Project SN\n";
using (StreamWriter sw = new StreamWriter(path, true)) // true for appending data to file, false to overwrite in file
{
sw.WriteLine(header);
sw.WriteLine(string.Format(projectName + "," + projetcBuild.ToString() + "," + projectSN.ToString()));
}
它的作用是在每次单击按钮时添加 header 和数据。我只想将 header 添加到文件中一次。只有来自表单的数据才会附加到我认为我拥有的下一行。请帮忙。
您可以在使用 File.Exists(path) 添加 headers 之前检查文件是否存在。像
string projectName = ProjectName_TextBox.Text;
string projetcBuild = ProjectBuild_TextBox.Text;
string projectSN = SN_TextBox.Text;
string header = "Project Name, Project Build, Project SN\n";
var firstWrite = !File.Exists(path);
using (StreamWriter sw = new StreamWriter(path, true)) // true for appending data to file, false to overwrite in file
{
if(firstWrite)
sw.WriteLine(header);
sw.WriteLine(string.Format(projectName + "," + projetcBuild.ToString() + "," + projectSN.ToString()));
File.CreateText returns 你是一个流媒体作者;您可以使用它,也可以借此机会编写 header
string header = "Project Name, Project Build, Project SN\n";
// Write to CSV string path
try{
StreamWriter sw;
if (!File.Exists(path)) {
sw = File.CreateText(path);
sw.WriteLine(header);
} else
sw = File.AppendText(path);
string projectName = ProjectName_TextBox.Text;
string projetcBuild = ProjectBuild_TextBox.Text;
string projectSN = SN_TextBox.Text;
sw.WriteLine(projectName + "," + projetcBuild + "," + projectSN);
}
finally{
sw.Dispose();
}
您不需要对字符串调用 ToString。您不需要在没有占位符的字符串上调用格式。您真的不应该费心编写自己的 csv 编写器;有很多好的图书馆可以做到这一点。只要有人在其中一个文本框中输入逗号,这个简单的实现就会失败