install Folder Read

install Folder に格納されているファイルの入力です。

前田稔の超初心者のプログラム入門

FILE を入力

  1. install folder から "test.txt" を入力して TextBox に表示します。
    Store App では、直接 API 呼び出しによってアプリケーションのためのアクセス可能なフォルダは限られています。
    アプリをインストールした場所(install folder)に格納されているファイルはアクセスすることが出来ます。
  2. Visual Studio を起動して、Blank App(XAML)を作成して下さい。
    MainPage.xaml をダブルクリックしてレイアウトウインドウを表示します。
    ツールボックスから Button を貼り付けます。
    ボタンクリックの Event Handler("Button_Click_1") を設定して下さい。
  3. 次にツールボックスから TextBox をウインドウにドラッグします。
    TextBox に名前("OutputText")を付けます。
    TextBox の位置とサイズは適当に設定して下さい。
  4. create_task() を使うので pch.h に次の行を追加して下さい。
    #include <ppltasks.h>
    
  5. MainPage.xaml.cpp を修正します。
    File を扱うので concurrency; と Windows::Storage; を定義します。
    using namespace concurrency;
    using namespace Windows::Storage;
    
  6. ボタンのクリックで "test.txt" からデータを入力して TextBox に表示します。
    1. InstalledLocation を StorageFolder に設定します。
    2. GetFileAsync() で StorageFile を取得します。
    3. ReadTextAsync(file) でファイルからデータを入力します。
      Async を使うと Task の終了を待ち合わせます。
    4. previousTask.get() で String^ str に格納して、TextBox に表示します。
      void App1::MainPage::Button_Click_1(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
      {
          StorageFolder^ folder =
              Windows::ApplicationModel::Package::Current->InstalledLocation;
          create_task(folder->GetFileAsync(L"test.txt")).then([this](StorageFile^ file) 
          {
              return FileIO::ReadTextAsync(file);
          }).then([this](task<String^> previousTask) 
          {
              try
              {
                  String^ str = previousTask.get();
                  OutputText->Text = "test.txt: " + str;
              }
              catch (...)
              {
                  OutputText->Text = "test.txt: <not found>";
              }
          });
      }
      
  7. "test.txt" を Editor などで作成して、事前にプロジェクトのフォルダに格納して[既存の項目]からプロジェクトに組み込んで下さい。
    拡張子が *.txt のファイルは、Image(画像)と同様にリソースとして設定してくれるようです。
    "test.txt" の内容は問わないので、TEXT 形式で適当にタイプして下さい。
  8. コンパイル&実行して、ボタンをクリックすると TextBox にデータが表示されることを確認して下さい。
    Windows10(ストアアプリ)では、C# と C++ は同じ要領だと思っていましたが、かなり違いがあるようです。
    C# でも同様のプログラム install folder を作成しているので、説明不足の所はこちらで補って下さい。

超初心者のプログラム入門(C/C++)