2012-06-27 6 views
3

Довольно простой, я надеюсь. У меня есть текстовая статья, которую я хочу отобразить в окне. Теперь вместо того, чтобы иметь массивную нагрузку текста в центре моего кода, могу ли я добавить его в качестве ресурса и как-нибудь его прочитать?Отображение текстового содержимого

Для тех, кто спрашивает, почему это просто потому, что это массивная статья и будет очень уродливым, выглядящим в середине моего кода.

ОБНОВЛЕНИЕ ЗА H.B.

Я пробовал несколько разных подходов к этому, и в настоящее время я просматриваю GetManifestResourceStream и используя встроенный файл (txt) и записываю его на экран. Еще не закончил тестирование, но если это сработает, было бы намного лучше, чем копировать и вставлять весь текст txtbox1.Text = "...blah blah blah".

_textStreamReader = new  
StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("Problem.Explaination.txt")); 
         try 
         { 
          if (_textStreamReader.Peek() != -1) 
          { 
           txtBlock.Text = _textStreamReader.ReadLine(); 
          } 
         } 
         catch 
         { 
          MessageBox.Show("Error writing text!"); 
         } 

Мой запрос остается, есть лучший способ достижения этой цели (при условии, что это даже успешно) Благодаря

ПРИМЕЧАНИЕ

В моем примере выше, я хочу только одну строку текста , Если вы адаптировали это для чтения нескольких строк из файла, вы бы так изменили его;

StreamReader _textStreamReader; 
     _textStreamReader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("Problem.Explaination.txt")); 
     var fileContents = _textStreamReader.ReadToEnd(); 
     _textStreamReader.Close(); 

     String[] lines = fileContents.Split("\n"[0]); 
     String[] lines2; 
     Int16 count; 
     foreach (string line in lines) 
     { 
     txtBlock.Text += line; 
     } 
+0

Является ли эта статья статическим текстом? Нередко размещать такие материалы в рамках ресурсов. Я даже не говорю о коде. –

+0

Чтобы ответить на вопрос - да, конечно, вы можете, и я уверен, что вы получите более правильный ответ в течение нескольких минут, который поможет вам понять, как это сделать. Но повторить комментарий Анатолия - почему? Чтобы лучше понять и помочь вам, было бы хорошо знать причину. =) –

+0

@downvoter Причина голосования? – windowskm

ответ

1

Добавить файл в качестве ресурса и, в вашем коде, загрузите его в строку.

StringBuilder sb = new StringBuilder(); 
    using (var stream = this.GetType().Assembly.GetManifestResourceStream("MyNamespace.TextFile.txt")) 
    using(var reader = new StreamReader(stream)) 
    { 
     string line; 
     while ((line = reader.ReadLine()) != null) 
     { 
      sb.AppendLine(line); 
     } 
    } 
    ViewModel.Text = sb.ToString(); 
1

Вы можете поместить этот текст в текстовый файл и читать его в коде

http://msdn.microsoft.com/en-us/library/db5x7c0d.aspx

+0

Да, это то, с чем я сейчас возился, но мне нужен текстовый файл, скопированный с помощью exe, поэтому я пытаюсь использовать «ManifestResourceStream». – windowskm

+1

У вас есть на это взгляд? http://support.microsoft.com/kb/319292 – JohnnBlade

+0

Открывайте его, когда мы говорим :) – windowskm

Смежные вопросы