保存嵌入式资源

时间:2013-01-10 08:11:32

标签: c# embedded-resource

我目前正在为学习目的编写刽子手。为此,我有一个大约6000字的文本文件作为嵌入式资源。程序读取文件并从中取出一个随机字符串。现在为了增加复杂性,我做了一个措辞,你可以写自己的话。现在我的问题是:如何将已编辑的字符串数组保存到资源文件中?

此代码读取资源文件并将其显示在多行文本框中。

public editorForm()
{
  InitializeComponent();
  string[] Lines = Properties.Resources.wordRes.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
  for (int i = 0; i < Lines.Length; i++)
    {
      textBox1.Text += Lines[i] + Environment.NewLine;               
    }
  textBox1.SelectionStart = textBox1.Text.Length;          
}

这是我目前保存的代码,现在它只是将编辑后的文件保存到桌面,但我希望它将其保存为资源。

private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
  string[] words = textBox1.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
  FileStream overwrite = new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Hangman.txt", FileMode.Create);
  using (StreamWriter file = new StreamWriter(overwrite))
  {
    for (int i = 0; i < words.Length; i++)
    {
      file.Write(words[i] + Environment.NewLine);
    }
  }     
  MessageBox.Show("Words saved. ");
}

1 个答案:

答案 0 :(得分:1)

除了hacky之外,编译程序集后,无法更新或更改嵌入式资源。

为什么不将数据保存到磁盘,然后在加载时将数据与嵌入资源中的数据合并。或者只是将文件放在磁盘上并获取嵌入式资源,或者如果文件不存在则使用嵌入式资源作为默认值,然后写入磁盘。