以“形式”的方式写入txt

时间:2012-08-09 12:32:49

标签: c#

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

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

示例:

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

我希望它更像这样:

问题吗
答案!

问题吗
答案!

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

3 个答案:

答案 0 :(得分: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问题的链接:

How can a Word document be created in C#?

和一个关于PDF:

Creating pdf files at runtime in c#

答案 1 :(得分: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 互操作,要了解visit here

答案 2 :(得分: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()上使用question来摆脱前导和尾随空格(question = question.Trim()),因此“下划线”效果看起来很不错。