2016-01-09 38 views
1

我有一个文本文件作为我想要读入数组的资源。将资源文本文件读入数组

private void button1_Click(object sender, EventArgs e) 
    { 
     string[] questions = new string[4]; 
     StreamReader sr = new StreamReader(Properties.Resources.TextFile1); 


     for(int i = 0; i < 4; i++) 
     { 
      questions[i] = sr.ReadLine(); 
     } 
     sr.Close(); 

     for (int n = 0; n < 4; n++) 
     { 
      textBox1.Text = questions[n]; 
     } 

我然后试图将下面的代码,但总是收到一个空的异常

 string[] questions = new string[4]; 
     var assembly = Assembly.GetExecutingAssembly(); 
     var resourceName = Properties.Resources.TextFile1; 

     using (Stream stream = assembly.GetManifestResourceStream(resourceName)) 
     using (StreamReader reader = new StreamReader(stream)) 
+0

辉煌史蒂夫谢谢你是如此的帮助,也许一个链接,提供一些支持,而不是萎靡不振的问题。我找不到解决我的问题的答案。 –

+0

对不起,但你谈论资源文件,所以你应该使用[GetResourceManifestStream](https://msdn.microsoft.com/en-us/library/xc4235zt(v = vs.110).aspx)而不是一个StreamReader。如果这不起作用,你能更好地解释你的问题吗?我会重新打开它。 – Steve

+0

以及它显而易见的经验丰富的用户,我试图学习,并在这里的YouTube视频和其他问题已经耗尽了大量的时间,仍然无法找到解决方案,所以在最后的尝试,我问了一个问题.... –

回答

3

由于Properties.Resources.TextFile1包含该文件的内容,你不需要使用StreamReader可言。不管你喜欢什么,你都可以解析字符串。你的情况,你可以在换行字符分割字符串:

var questions = Properties.Resources.TextFile1.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 
+0

谢谢,我试过了,我得到一个过载消息。最好的重载比赛有一些无效的争论 –

+0

你得到它的工作? “Split”调用是否出现编译错误?哪些论点是无效的? – Sam