Fortran が C# のテキスト ファイルからデータを読み取る方法をエミュレートしようとしています。fortranでは次のようなものがあります
READ(60,2005,ERR=9880,END=8000) A,B,C,D
2005 FORMAT(I8,A20,2F10.3)
A、B、C、D は、format ステートメントに基づいて正しい型に自動的に設定されます。
私は次の行に沿って物事を試しました:
private static void Example(string[] Data, ref object[] Variables)
{
for (int i = 0; i < Data.Length; i++)
Variables[i] = (typeof(Variables[i]))Data;
}
しかし、コンパイルされるコードを取得することさえできません。
現時点では、このようにオブジェクト配列内のすべてのデータを渡すことによって変数に割り当てています
private static object[] Example(string[] Data)
{
object[] output = new object[Data.Length - 1];
for (int i = 0; i < Data.Length; i++)
{
int dummyInt;
if (int.TryParse(Data[i], out dummyInt))
output[i] = dummyInt;
/// Try to parse other possible data types
}
return output;
}
private static void UseExample()
{
object[] values = Example(new string[] { " 356", "Some text ", " 956.365", "564050.201" });
int A = (int)values[0];
string B = (string)values[1];
double C = (double)values[2];
double D = (double)values[3];
}
これは単純化されていますが、本質的には私がやっていることです: データの型を決定し、その型にキャストし、すべてのフィールドをオブジェクトとして渡し、データを保持する変数に代入するときに再度キャストします。これには、どの変数が出てくるかを知る必要があり、データ フィールドが多数ある場合は多くの追加コーディングも必要です。
設定する必要があるすべての変数を渡して正しい値に設定する方法を探していますが、そのためにはデータを適切な変数の型にキャストできる必要があります。
これはできますか?可能であれば、どのように行うことができますか?