现在我正在使用 c# 构建一个游戏应用程序,这将需要从游戏脚本的文本文件中加载。(相当简单的视觉小说游戏)
现在,当主窗体加载时,我从文件 script.txt 加载脚本并声明:
StringReader reader = new StringReader(script);
作为一个全局变量
现在在阅读器位于字符串脚本中间的游戏中间,我需要从阅读器的下一行开始追加。基本上我想要实现的目标:
将“news.txt”中的所有文本附加到从 reader.ReadLine() 开始的脚本中[即在字符串脚本的中间]
实现这一目标的最有效解决方案是什么?
我知道的:
StreamReader sr = new StreamReader("news.txt");
string news = sr.ReadToEnd();
//Now how to append 'news' to reader.ReadLine() ??
编辑以获得更多说明(对不起,这是我第一次在这里问):我将尝试更多地解释我在这里想要实现的目标。我现在有什么:
//global variables
string script;
StringReader reader;
//during form_load
StreamReader sr = new StreamReader("script.txt");
script = sr.ReadToEnd();
reader - new StringReader(script);
//And as the game progresses, I keep on implementing reader.ReadLine()..
//At one point, the program will ask the user, do you want to watch the news?
DialogResult dialogResult = MessageBox("Do you want to watch the news?", , MessageBoxButtons.YesNo
if(dialogResult == DialogResult.Yes)
{
StreamReader newsSr = new StreamReader("news.txt");
string news = newsSr.ReadToEnd();
//now I want to append the contents of 'news' to the string 'script' after reader.ReadLine() - any best way to implement this?
}
一种可能的方法(我认为这也是最糟糕的方法)是通过引入一个计数变量,以获取最后一个 reader.ReadLine() 的起始位置,并使用 Insert 执行所需的结果,如下所示: script = script.Insert (开始索引,新闻)