3

我正在实现一个 Windows 应用程序,以便在我的工作场所更轻松地规划项目,我想知道是否有任何巧妙的方法可以使 txt 文件结构良好。

该应用程序非常简单,它所做的几乎就是给用户一个问题,该问题在下面的文本框中得到回答。然后问题和答案都会发送到一个文件中,但看起来很俗气。

例子:

问题?答案!问题?答案!

我希望它更像这样:

问题?
回答!

问题?
回答!

我也对其他类型的文件感到好奇,是否可以像使用 txt 一样使用 Pdf 或 MS word?

4

3 回答 3

3

您可以File.AppendAllLines()将不同的字符串作为数组使用和传递。它们将在文本文件中显示为单独的行。您还需要using System.IO在文件顶部添加一个。

例如:

// Ensure file exists before we write
if (!File.Exists("<YOUR_FILE_PATH>.txt"))
{
    using (File.CreateText("<YOUR_FILE_PATH>.txt")) {}
}

File.AppendAllLines("<YOUR_FILE_PATH>.txt", new string[] {
    "Question1",
    "Answer1",
    "Question2",
    "Answer2",
    "Question3",
    "Answer3"
});

我希望这就是你所追求的——这个问题有点含糊。

对于 Word 和 PDF 文件,这更复杂。这是关于 Word 的 StackOverflow 问题的链接:

如何在 C# 中创建 Word 文档?

还有一个关于PDF:

在 C# 运行时创建 pdf 文件

于 2012-08-09T12:46:21.350 回答
1

对于一个简单的文本文件,您可以使用

StringBuilder fileData = new StringBuilder();
fileData.AppendLine("Question: blah! blah! blah! blah!");
fileData.AppendLine("Answer: blah! blah! blah! blah!");

FileStream fs = new FileStream("yourFile.txt", FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
sw.Write(fileData.ToString());
sw.Flush();
fs.Flush();
fs.Close();

但当然它不会给你那种大胆的问题风格,因为你必须使用其他东西,

喜欢MS Word互操作,了解访问这里

于 2012-08-09T12:40:16.483 回答
1

我想提一下这个String.Format功能。

假设,你有你的字符串questionanswer你可以做一些

using (var stream = new StreamWriter('myfile.txt', true)) // append=true
  stream.Write(String.Format("\n{0}\n{1}\n\n{2}\n", 
                             question, 
                             new String('=',question.Length), 
                             answer);

得到一个文本文件,如

Question 1
==========
Answer

Second Question
===============
Answer

您可能还想使用String.Trim()onquestion去除前导和尾随空格 ( question = question.Trim()),因此“下划线”效果看起来不错。

于 2012-08-09T13:00:42.953 回答