2012-02-23 9 views
3

テキストドキュメントをC#フォームアプリケーションにハードエンコードしようとしています。基本的に私はテキストボックスに入力したいWebページHTMLを持っています。私はストリームリーダーでこれを簡単に行うことができ、永遠に文字列に書き込むことができます。ソリューションに追加できるさまざまな要素を見てみると、テキストファイルでした。テキストファイルを参照するVisual Studio C#

私は、アプリケーションにテキストファイルなどを読み込ませてテキストボックスに入力する簡単な方法を探しています。これまで私はフォームに追加したテキストファイルをどのように参照するのか分かりません。

これは、デフォルトのドキュメントとしてexeにコード化します。私は外部ファイルを編集することができないようにしたいので、プログラムは簡単に移植可能になります。

このファイルを内部的に埋め込み、クラスや何かのようにアクセスする方法に関する提案はありますか?

答えて

7

を経由して、その項目にストリームを取得することができ、あなたのプロジェクトに.htmlを追加プロジェクトとクリックのプロパティ。あなたは、左側にたくさんのタブを持つ普通の画面を手に入れます。 「リソース」と言うものをクリックします。文字列やその他のものを追加できますが、テキストファイルを追加することもできます。

上部のプルダウンをファイルに変更し、[リソースの追加]をクリックします。テキストファイルを参照し、名前を付けてください。これにより、ファイルがアセンブリに追加されます。これは逆コンパイルできるので、あまりにも興奮しないでください。秘密のメッセージを残しておかないでください。

これは、.netサイト、mvcサイト、コンソールアプリケーションなどで行うことができます。以下のコードは、コンソールアプリケーションスタイルで、簡単に保つことができます。確かに、これは単なるテキストファイルですが、リソースの使用の基本を教えてくれます。これは、レポートテンプレート、フォーマットファイル、xmlなどの3つ目の要素を含む他の種類のファイルにも展開することができます。そうしないと、コードを宣伝する際に常に設定に確実に含まれます。欠点は、変更を加えるために再コンパイルする必要があることです。

using System; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var output = Properties.Resources.helloword; 
      Console.WriteLine(output); 
      Console.ReadLine(); //just so you can see it 
     } 
    } 
} 
+0

うわー、私はもっと緑色の反応をチェックしたいと思っています。私はテキスト表示を得るためにステップバイステップをたどったので、私はこれをしました。このコミュニティは素晴らしいです。私の最大の問題は、私が探していたコンセプトがわからないことでした。これは完璧でした。ありがとうございました。 – eatumup

6

説明しているコンセプトはembedding resourcesです。

すべての種類のファイルをリソースとして埋め込むことができます。アイコン、画像、XML、さらにはプレーンテキストファイルや例えば、このようなコードから参照して、:http://msdn.microsoft.com/en-us/library/0c6xyb66.aspx

+0

最初の行は私を長い間助けてくれます。有難うございます。あなたが何を探しているのかわからないときは、検索するのが難しいです。どうもありがとうございました! – eatumup

2
:使用可能なドキュメントの

internal string GetFromResources(string resourceName) 
{ 
    Assembly assem = this.GetType().Assembly; 
    using (Stream stream = assem.GetManifestResourceStream(resourceName)) 
    { 
     using (var reader = new StreamReader(stream)) 
     { 
      return reader.ReadToEnd(); 
     } 
    } 
} 

ありますトン、あなたはこのような探しているものを知っているとき

私は似たようなことをします。

その後埋め込まれたリソースにプロパティに

ビルドアクションを設定し、あなたがあなたの上で右をクリックし

Assembly.GetExecutingAssembly().GetManifestResourceStream("your.namespace.yourFile.html"); 
関連する問題