Nous avons un cas d'utilisation où nous appelons Run Program, et le résultat est une chaîne au format CSV. Fondamentalement, Run Program exécute une application qui récupère un fichier distant au format CSV. Je sais que vous pouvez écrire le CSV dans le système de fichiers, puis le lire dans une table de données à partir du système de fichiers, mais est-il possible de lire la chaîne CSV en mémoire à partir d'une variable, directement dans une table de données ?
Cet exemple utilise la commande dos echo pour renvoyer un petit fichier CSV à JMP. Il passe également un blob, plutôt qu'un nom de fichier, à la fonction 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");
Lorsque la fonction open voit un blob plutôt qu'un nom de fichier, cela dépend du 2ème paramètre pour connaître le type de données. CharToBlob convertira le texte que vous avez récupéré de RunProgram en un blob, ou vous pouvez demander à RunProgram de vous donner le blob directement comme indiqué ci-dessus.
CSV loaded into JMPCSV chargé dans JMP