このファイルには4行のデータがあり、各行の最初の8バイトは年、月、日のデータです。
JSL でテーブルを正しく作成するにはどうすればよいですか?

4 行目の先頭の日付と時刻は次のようになります。
20230120 15:00
ありがとう!
bb = Load Text File( "123.DAT", blob() );
z = Length( bb ) / 56;
For( k = 1, k <= z, k++,
a = Blob Peek( bb, (k - 1) * 56, 56 );
y = Blob To Matrix( a, "uint", 2, "little", 28 );
s = Blob To Matrix( a, "uint", 4, "little", 28 );
b = Blob To Matrix( a, "uint", 4, "little", 28 );
);
すでに行った作業には、実際の日付とコードの 2 つの大きなヒントがあります。 time_t . Time_t は Unix のものです。 エポックコンバーターのようなツールを試して、知っている日付をプッシュしてみましょう:
the red number is what we wantthe red number is what we wantthe red number is what we want赤い数字は私たちが望むものです
おい!その番号は、データ インスペクターにも表示されます。 int32です! つまり、次のようにデータをロードできます。
za = Open( "z:/123.zip", zip );
blob = za << read( "123.dat", Format( blob ) );
dates = Blob To Matrix( blob, "int", 4, "little", 14 )[0, 1];
dates += 1jan1970;
For( i = 1, i <= 4, i += 1,
Show( i, As Date( dates[i] ) )
);
私は= 1;
As Date(dates[i]) = 20Jan2023:06:56:00;
私は= 2;
As Date(dates[i]) = 20Jan2023:06:57:00;
私は= 3;
As Date(dates[i]) = 20Jan2023:06:58:00;
私は= 4;
As Date(dates[i]) = 20Jan2023:07:00:00;
Unix エポックは、0 である 1970 年 1 月 1 日に始まります。 JMP エポックは 1904 年 1 月 1 日に始まります。これは 0 です。 JMP の 1Jan1970 値を Unix の日付に追加すると、Unix の日付が JMP の日付に変換されます。
BLOB からマトリックスへの呼び出しでは、行ごとに 14 個の 4 バイトの数値が作成されます。下付き文字 [0,1] は、0: 4 行すべてを保持し、1: 各行の最初の要素を保持することを意味します。
エポック コンバーターで遊んでいる間に、2038 年のいくつかの日付を試してみてください。2038 年は、次の 2 つの Y2K のようなイベントの年です。 はい、1年に2回発行されます。 最初のものは、エポカリプス2038 年 1 月 19 日の 03:14:07 UTC。 二枚目は三枚目GPS週ロールオーバー、おそらく見過ごされるでしょう。 3 回目のロールオーバーは、2038 年 11 月 20 日から 21 日の間に発生します。