保存嵌入式资源

本文关键字:资源 嵌入式 保存 | 更新日期: 2023-09-27 17:51:22

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

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

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. ");
}

保存嵌入式资源

在编译完程序集后,除了一些黑客行为之外,无法更新或更改嵌入的资源。

你为什么不把数据保存到磁盘上,然后当你加载它的时候,把数据和嵌入资源中的数据合并呢?

如果文件不存在,则使用默认嵌入资源,然后写入磁盘。