0
任意のテキストファイルから任意の数の行を読み込み、各行を配列に格納し、これらの配列要素をそれぞれ1つの列挙型にする必要があります。私は配列のサイズを取得することができます/ enumファイルを読み込む前に、私は配列を設定することができます、唯一の問題は、列挙型の要素の量を指定することができます。これを行う方法はありますか?または他の巧妙なアプローチ?Ada:配列要素を列挙型に変換できますか?
任意のテキストファイルから任意の数の行を読み込み、各行を配列に格納し、これらの配列要素をそれぞれ1つの列挙型にする必要があります。私は配列のサイズを取得することができます/ enumファイルを読み込む前に、私は配列を設定することができます、唯一の問題は、列挙型の要素の量を指定することができます。これを行う方法はありますか?または他の巧妙なアプローチ?Ada:配列要素を列挙型に変換できますか?
Adaでタイプを作成することはできませんので、短い答えは「いいえ」です。
しかし、(いつものように)トリックがあります:パッケージのAdaソースファイルをメインプログラムから作成し、メインプログラムへの入力データに基づいて内部列挙型を宣言します。次に、これらのソースファイルをダイナミックライブラリにコンパイルし、そのライブラリをオンザフライでメインプログラムにロードし、次に書き込んだパッケージの操作を呼び出すことができます。
Adaの型チェックはコンパイル時に行われます。実行時にファイルをロードすると、型チェックが発生する時点をはるかに越えているので、その時点で列挙型を作成するのは意味がありません。ユースケースを説明することができます。 ¹:実行時に実行する必要があるチェックは、もちろん実行可能ファイルにコンパイルされています。 – flyx
Adaの内部ブロックに型を宣言することは可能ですが、内部ブロックを終了するとその型は存在しなくなります。 –