Wir haben einen Anwendungsfall, in dem wir Run Program aufrufen und das Ergebnis eine CSV-formatierte Zeichenfolge ist. Grundsätzlich führt Run Program eine Anwendung aus, die eine Remote-Datei im CSV-Format abruft. Ich weiß, dass Sie die CSV in das Dateisystem schreiben und dann aus dem Dateisystem in eine Datentabelle lesen können, aber ist es möglich, die CSV-Zeichenfolge im Speicher aus einer Variablen direkt in eine Datentabelle zu lesen?
In diesem Beispiel wird der Befehl dos echo verwendet, um eine kleine CSV-Datei zurück an JMP zu senden. Es übergibt auch einen Blob anstelle eines Dateinamens an die open-Funktion.
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");
Wenn die Open-Funktion eher einen Blob als einen Dateinamen sieht, hängt es vom 2. Parameter ab, um den Datentyp herauszufinden. CharToBlob konvertiert den Text, den Sie von RunProgram erhalten haben, in einen Blob, oder Sie können RunProgram dazu bringen, Ihnen den Blob direkt wie oben gezeigt zu geben.
CSV loaded into JMPCSV in JMP geladen