Questo file ha quattro righe di dati e i primi otto byte di ogni riga sono i dati di anno, mese e giorno
Come creare correttamente una tabella con JSL?

La data e l'ora all'inizio della riga 4 dovrebbero essere:
20230120 15:00
Grazie!
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 );
);
Hai due grandi suggerimenti nel lavoro che hai già fatto: una data effettiva e il codice tempo_t . Time_t è una cosa Unix. Proviamo uno strumento come il convertitore di epoche e inseriamo la data che conosci:
the red number is what we wantthe red number is what we wantthe red number is what we wantil numero rosso è quello che vogliamo
EHI! quel numero appare anche nel tuo ispettore dati! È un int 32! Ciò significa che possiamo caricare i tuoi dati in questo modo:
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] ) )
);
io = 1;
As Date(dates[i]) = 20Jan2023:06:56:00;
io = 2;
As Date(dates[i]) = 20Jan2023:06:57:00;
io = 3;
As Date(dates[i]) = 20Jan2023:06:58:00;
io = 4;
As Date(dates[i]) = 20Jan2023:07:00:00;
L'epoca Unix inizia il 1 gennaio 1970, che è 0. L'epoca JMP inizia il 1 gennaio 1904, che è 0. L'aggiunta del valore 1Jan1970 di JMP a una data Unix converte la data Unix in una data JMP.
La chiamata da blob a matrice produce 14 numeri a 4 byte per riga; il pedice [0,1] significa 0: mantieni tutte e 4 le righe e 1: mantieni il primo elemento su ogni riga.
Mentre stai giocando con il convertitore di epoche, prova alcune date nel 2038. Il 2038 è l'anno dei prossimi due eventi simili a Y2K. Sì, ci sono due problemi in un anno. Il primo è il Epocalisse alle 03:14:07 UTC del 19 gennaio 2038. Il secondo è il terzo Rinnovo della settimana GPS , che probabilmente passerà inosservato. Il terzo rollover avverrà tra il 20 e il 21 novembre 2038.