Come estrarre parti di un file binario e valutarle separatamente?Ciao!
Ad esempio, questo file con questo script può ottenere come primo dato una data.

Come faccio a usare uno script per estrarre questo "A2 3F 32 01"
e utilizzare uno script per calcolare il valore decimale corrispondente = 20070306
Grazie!
Automazione e scriptingIngegneria della qualità e dei processiFinestreRe: Come estrarre parti di un file binario e valutarle separatamente?bb = Load Text File( "I:\E\00820070306.zst", blob() );
ymd = Blob To Matrix( bb, "uint", 4, "little", 8 );
a=Munger(char(bb),contains(char(bb),"(")+4,12);
b=Char To blob(a, "utf-8" );;
mat=blobtomatrix(b, "uint", 4, "little", 8 );Re: Come estrarre parti di un file binario e valutarle separatamente?Forse BLOB Peek(blob, offset, lunghezza) funzionerebbe? Anche questo potrebbe essere un buon orologio Importazione di dati binari con JSL (2022-EU-45MP-946)
Re: Come estrarre parti di un file binario e valutarle separatamente?Grazie!

Re: Come estrarre parti di un file binario e valutarle separatamente?Il tuo codice
bb = Load Text File( "I:\E\00820070306.zst", blob() );
ymd = Blob To Matrix( bb, "uint", 4, "little", 8 );
sta creando una matrice bidimensionale che stai chiamando "ymd" con i valori convertiti in valori decimali.Tutto quello che devi fare è creare una nuova tabella di dati, quindi creare una nuova colonna e impostare i valori nella nuova colonna sulla prima colonna della matrice ymd.
Names Default To Here( 1 );
bb = Load Text File( "I:\E\00820070306.zst", blob() );
ymd = Blob To Matrix( bb, "uint", 4, "little", 8 );
dt = New Table( "zst" );
dt << New Column( "col 1" );
Column( dt, 1 ) << set values( ymd[0, 1] );
Quindi ripetilo per le restanti 7 colonne nella matrice

Re: Come estrarre parti di un file binario e valutarle separatamente?Grazie Jim!
Sì, ho ricevuto questo codice da Craige.
Questo codice è utile quando conosce la struttura dei dati binari.
Ma questo nuovo file non conosco la sua struttura dei dati. Sono in missione.
Sto avvolgendo questo file a intervalli di 00. Ottengo i dati per questo.
Fatta eccezione per la prima riga che so contiene la data.
Ma i dati che iniziano nella seconda riga sono dati interi, dati in virgola mobile. Ma quale campo è una virgola mobile o un numero intero. Non lo so.

Posso solo ripristinare il confronto campo per campo.
Non l'ho ancora capito.
Re: Come estrarre parti di un file binario e valutarle separatamente?Buona fortuna
Re: Come estrarre parti di un file binario e valutarle separatamente?
Come si può prendere qualcosa in forma esadecimale e calcolarlo in virgola mobile?
~D9~40~D9~CE
Il codice seguente è stato eseguito in modo errato
b = Char To Blob( "~D9~40~D9~CE", "ascii~hex" );
f = Blob To Matrix( b, "float", 4, "little", 4 );
Grazie!
Re: Come estrarre parti di un file binario e valutarle separatamente?Grazie!