6

タイピング アプリケーションを作成しており、よく使用されるさまざまな単語を含むテキスト ファイルをプロジェクトに追加して、後で読み取ることができるようにしたいと考えています。ただし、[プロジェクト] -> [既存のアイテムを追加] に移動すると、VB コード ファイルをプロジェクトに追加するオプションしかありません。プロジェクトにテキスト ファイルを追加する方法はありますか? または実行時にファイルからデータをインポートする必要がありますか?

4

1 に答える 1

18

プロジェクト リソース (Resx) バージョン:

このバージョンは、あなたの例での作業が少し簡単です!

  • プロジェクトを右クリック
  • プロパティを選択
  • リソースセクションに移動
  • 以下のスクリーンショットに示すように、リソース セクションの左上隅にドロップダウンが表示されます。
  • ドロップダウンから「ファイル」を選択します。
  • [リソースの追加] ボタンをクリックします。
  • [ファイルの選択] ダイアログ ボックスが表示されます。
  • ファイルを選択
  • プロジェクトを保存する

Resx リソース

このファイルにアクセスするには、次のようなものを使用するだけです...

Dim content As String = My.Resources.mytextfile

注: 拡張機能は必要ありません。これも厳密に型指定されます。

埋め込みリソースのバージョン:

  • プロジェクトを右クリックします。
  • Add->Existing Item に移動します。
  • 右下にドロップダウンがあります (ファイル名の横)。
  • 「すべてのファイル (*.*)」を選択
  • ファイルの場所を参照します。
  • ファイルを追加します。

すべてのファイルを選択

ファイルを追加したら、ソリューション エクスプローラー ウィンドウでファイルを選択すると、「ビルド アクション」を選択できます。オプションから [コンテンツ] または [埋め込みリソース] を選択できます。

  • Content : Application.GetContentStream( uri ) を使用して、(アセンブリと同じディレクトリにある) ファイルをストリームとして取得できます。このメソッドが機能するには、ファイルを「コンテンツ」としてマークしたときに VS が適切に追加する AssemblyAssociatedContentFile カスタム属性が必要です。
  • 埋め込みリソース: ファイルを専用のアセンブリ マニフェスト リソースに埋め込みます。

から取られた; https://stackoverflow.com/a/145769/1305169

埋め込みリソースを選択した場合、テキスト ファイルを読み取るには、次のようなコードを使用できます。

Dim executing_assembly As System.Reflection.Assembly = _
    Me.GetType.Assembly.GetEntryAssembly()

' Get our namespace.
Dim my_namespace As String = _
    executing_assembly.GetName().Name.ToString()

' Load a text file.
Dim text_stream As Stream = _
    executing_assembly.GetManifestResourceStream(my_namespace _
    + ".text1.txt")
If Not (text_stream Is Nothing) Then
    Dim stream_reader As New StreamReader(text_stream)
    Label1.Text = stream_reader.ReadToEnd()
    stream_reader.Close()
End If

出典: http://www.vb-helper.com/howto_net_embedded_resources.html

于 2013-01-29T20:19:51.377 に答える