プログラミング演習Ⅲ(2023)

【課題10-02】JSONファイルの入力(リストの入力)

プロジェクトタイプC#コンソールアプリ※
プロジェクト名Prac_10_02
ソリューション名PET10
ターゲットフレームワーク.NET 6.0 (長期的なサポート)
最上位レベルのステートメントを使用しない使用しない(チェックオン)

※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!

【課題9-03】で定義したクラスIntroductionInfoリスト を, JSON形式のテキストファイルから読み込むプログラムを作成せよ.

注意
  • この設問を解くには先に以下の課題を完了する必要がある.
  • 後述の空欄は前提課題の回答と 全く同じ にすること(変えてはならない).
  • この設問ではコンソール(黒画面)への表示処理を作る必要はない.

後述の_にはあらかじめIntroductionInfoのカラ のリストpiyoが宣言されている.このリストに, 後述の入力ファイルから 読み込んだIntroductionInfoの要素を追加 すること ( 注意: 変数 piyo の内容自体を上書きしてはならない! ).

入力ファイルは以下をダウンロードして使用すること.これは_のような内容のファイルである. 同様の形式のどのような入力ファイルに対しても正しく動作するようにプログラムすること

input_list.json

入力ファイルの内容(途中まで)

また,入力ファイルは作業ディレクトリの直下から読み込むこと.設定方法が分からない場合は 準備作業 - 作業ディレクトリの変更を参考にすること.

プログラムの概形は_のようにすること(必ず以下をコピーしProgram.cs全体を上書きすること).

テンプレートコード
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System.Text.Json;

namespace Prac_10_02
{
    /********************************/
    /*                              */
    /*            空欄1             */
    /* IntroductionInfoクラスの定義 */
    /*     (【課題9-03】と同じ)     */
    /*                              */
    /********************************/

    internal class Program
    {
        static void Main(string[] args)
        {

            // 長いので省略

        }// end of Main()
    }// end of class Program
}// end of namespace

Main()メソッドは長いので別に掲載している.以下のボタンをクリックしてコードをコピーし,Main()メソッドを上書きすること.

正しく実装できた場合,実行結果は_のようになる.

HI022099 : 医療太郎(2003-11-04)「一攫千金」
HI024106 : 佐藤一馬(2005-11-05)「因果応報」
HI023095 : 川村裕子(2004-11-06)「融通無碍」
HI022105 : 田中一郎(2003-06-10)「一期一会」
HI021111 : 北村健人(2002-05-19)「天衣無縫」
HI022098 : 下原裕介(2004-02-10)「終始如一」
HI023116 : 山崎康介(2004-09-07)「有言実行」
HI021104 : 医療花子(2003-03-12)「質実剛健」
HI024090 : 上村理恵(2006-01-10)「挙一反三」
HI023101 : 山田太郎(2004-04-01)「日々平穏」
HI022107 : 藤原弓子(2003-07-27)「切磋琢磨」
HI022091 : 一宮花子(2004-03-02)「一月三舟」
HI021113 : 中村次郎(2002-12-01)「奇々怪々」
HI022109 : 西村雄太(2003-10-11)「臥薪嘗胆」
HI024108 : 東堂和子(2005-09-30)「晴耕雨読」
HI023092 : 土屋浩三(2004-04-18)「自由自在」
HI022110 : 南原孝行(2003-04-22)「夷険一節」
HI023097 : 風間正子(2005-03-22)「孤軍奮闘」
HI021099 : 内海庄司(2002-06-11)「泰然自若」
HI022102 : 岩鬼正美(2004-01-01)「豪放磊落」
実行結果

準備作業 - 作業ディレクトリの変更

表示するにはここをクリック

作ったプログラムの実行体は,デフォルトで以下の場所に作成される(_).

ソリューション名\プロジェクト名\bin\コンフィギュレーション名\net6.0\プロジェクト名.exe

例えばソリューションをC:\Users\ユーザー名\sources\repoConsoleApp1(ソリューションも同名)という名前で プロジェクトを作成した場合,デバッグモードでビルドすると実行体は以下の場所に作られる.

C:\Users\ユーザー名\sources\repo\ConsoleApp1\ConsoleApp1\bin\Debug\net6.0\ConsoleApp1.exe
VisualStudioのフォルダ構造

プログラムをデバッグ実行する際もこのフォルダを作業ディレクトリとして実行される. ただし,このフォルダは一度ビルドしないと作成されないので,読み込むファイルの場所を 固定しておきたい場合は不便である.

そのためプログラムをデバッグ実行する際の作業ディレクトリを別の場所に設定し,読み込むファイルは その場所に配置するとよい.たとえばプロジェクトフォルダをデバッグ実行時の作業ディレクトリにする. 具体的な手順は以下となる.

  • 【手順】デバッグ時の作業ディレクトリの変更
    1. プロジェクトを作成する(_).
    2. ソリューションエクスプローラー上で,プロジェクト名を右クリックして「エクスプローラーでフォルダーを開く」をクリックする(_).
      • 入力ファイルはこのプロジェクトフォルダの中に置いておく(_).
    3. 開いたフォルダのアドレスバーをクリックして選択状態にして,プロジェクトの場所(=プロジェクトフォルダのパス)をコピーする(_).
    4. ソリューションエクスプローラー上で,ソリューション名を右クリックして「プロパティ」をクリックする(_).
    5. 「デバッグ」→「全般」→「デバッグ起動プロファイルUIを開く 」をクリックする(_).
    6. 「作業ディレクトリ」に,3でコピーしたパスを貼り付けて保存する(_).
デバッグ時の作業ディレクトリの変更

具体的な作業手順が分からなければ_を参考にすること1,2

デバッグ時の作業ディレクトリの変更(動画)

これでデバッグ時の作業ディレクトリの直下に読み込むファイルが配置されるので, _のようにファイル名のみを指定することで, ファイルを開くことができるようになる(以下は入力ファイル名がhoge.txtである場合の例).

ファイルからの読み込み処理
表示するにはここをクリック : 閉じる

ヒント

なし


  1. Apple社の都合により,iPhone,iPadなどのデバイスでは動画の再生はできません(Apple社はスマートフォン/タブレット製品で,意図的?にVPxやAV1コーデックのサポートを遅らせているため.参考1参考2). ↩︎

  2. Microsoft Edge で動画を閲覧するためには,AV1 Extensionをインストールする必要があります. ↩︎

Last updated on 2024-01-09
Published on 2024-01-09

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.