Abbiamo un caso d'uso in cui chiamiamo Esegui programma e il risultato è una stringa in formato CSV. Fondamentalmente, Run Program sta eseguendo un'applicazione che recupera un file remoto in formato CSV. So che puoi scrivere il CSV nel file system e quindi leggerlo in una tabella dati dal file system, ma è possibile leggere la stringa CSV in memoria da una variabile, direttamente in un datatable?
Questo esempio utilizza il comando dos echo per inviare un piccolo file CSV a JMP. Passa anche un blob, piuttosto che un nome file, alla funzione open.
csvdata = Run Program(
Executable( "CMD.EXE" ),
Options( {"/a", "/q", "/c echo a,b,c&echo 1,2,3&echo 4,5,6"} ),
ReadFunction( "blob" )
);
show(blobtochar(csvdata));
dt = open(csvdata, "text");
Quando la funzione open vede un blob piuttosto che un nome file, dipende dal secondo parametro per scoprire il tipo di dati. CharToBlob convertirà il testo che hai ricevuto da RunProgram in un blob, oppure puoi fare in modo che RunProgram ti dia il blob direttamente come mostrato sopra.
CSV loaded into JMPCSV caricato in JMP