Problema nel formattare i dati numerici dal file TxtCara comunità,
Sto cercando di creare uno script jsl per importare correttamente i dati formattati come nel file di esempio ecnlosed. Sto affrontando delle sfide:
- Il segno decimale è "," invece di ".". Utilizzando la configurazione predefinita delle mie preferenze regionali, JMP interpreta "," come un delimitatore di migliaia. Come forzare JMP a interpretare correttamente questi numeri all'interno di uno script jsl?
- i numeri negativi sono formattati come segue: 64.000-. JMP può gestire tale formato?
Una soluzione potrebbe essere quella di riformattare il file txt, ma è un estratto dell'ERP e il team IT non capisce che io non riesco a gestire quel tipo di file, mentre Excel sì.
Grazie e saluti,
Girolamo
Automazione e scriptingPersonalizzazione di massaRe: Problema a formattare dati numerici da file TxtCiao,
Potresti provare qualcosa di simile al seguente; mentre dici che l'IT non capisce il tuo problema, puoi usare JSL per riformattare il file da solo. Sebbene sia probabile che ci sia un'impostazione di importazione per gestire le virgole come decimali, non riesco a pensarci di persona e non riesco a trovarla nella documentazione. Forse qualcun altro risponderà con quell'impostazione. Fino ad allora, vedi se questo fa il trucco. Ho allegato un file di esempio; se lo metti nella cartella Download, si spera che lo script venga eseguito senza modifiche.
</CODE></P>
<PRE><CODE class=" language-jsl">Names Default To Here( 1 );
//set these to reflect your path and file name
path = "$DOWNLOADS/";
origFile = "example.txt";
holdFile = "example_modified.txt";
//get text of original file and replace commas with decimals
txt = Substitute( Load Text File( path || origFile ), ",", "." );
//save resulting text to a file, open this file as a table, then delete the file
Save Text File( path || holdFile, txt );
dt = Open( path || holdFile );
Delete File( path || holdFile );
//create a new column. if the last character is not "-", the string is immediately converted to a number. If the last
//character IS a "-", the string is converted to a number after the "-" is moved to the first character of the string
dt << New Column( "xx", formula( Num( If( Right( :INFO, 1 ) != "-", :INFO, "-" || Left( :INFO, Length( :INFO ) - 1 ) ) ) ) );
//remove the formula, so we can delete the original INFO column and rename our new column to INFO
dt:xx << Delete Formula;
dt << Delete Columns( "INFO" );
dt:xx << set name( "INFO" );
Saluti,
Brady