Subscribe Bookmark RSS Feed

How do I select files and create the pathway to it as a string?

anders_bankefor

Community Trekker

Joined:

Dec 8, 2015

Hi,

I would like to create a function that enables me to pick multiple files, retrive the local pathway to them and then store this pathway as a string in order to import them to JMP.

dtname = {};

dt.file = Pick File (...);

//select the dir.

path = Pick Directory ("Select a directory.");

for (i=1, i<= N Items(dt.file), i++,

//String of my file name

dtname = dt.file << Get Name ;

Open (

path||"\"||dtname,

//the import settings should predefine which row is header, new column etc.

Import Settings(..)

)

)

when executing this I get a return message that says "Send Expects Scriptable Object in access or evaluation of 'List*...."

What am I doing wrong? Do I have to eval my dt.file = Pick File (...); function?

1 ACCEPTED SOLUTION

Accepted Solutions
Solution

You can open multiple files with pick file().  You can also specify the excel import options right in open().  Look at Open() in the Scripting Index, example 2.

file = Pick File("Pick a file", "$DOCUMENTS", {"Excel|csv;xlsx;xls","JMP Files|jmp;jsl;jrn", "All Files|*"}, 1,0, "", multiple);

For(i=1, i<=nitems(file), i++,

       Open(file[i], /*excel options ie: ,Table Contains Column Headers( 1 ), Column Names are on line (3), ect.*/)

);

3 REPLIES
ms

Super User

Joined:

Jun 23, 2011

Pick File() by default returns file name, including the path to the file, as a string.

This should work:

dt.file = Pick File();

Open(dt.file)

anders_bankefor

Community Trekker

Joined:

Dec 8, 2015

Hi MS and thank you for your quick reply.

yes this is exactly what I thought since I can use dt.file << Get Name;

I can see now that I've made an error in my discussion, dt.file should be a list so that I may stack several csv files. Therefore I need to iterate/recursively go through the list and import the excel file to JMP.

Moreover, I would like to use "import settings(...)" to predefine the parameters for importing data to JMP, if I use open I have to define these parameters manually for each file that I import.

I've corrected my original post and I look forward to your reply.

BR

Anders

Solution

You can open multiple files with pick file().  You can also specify the excel import options right in open().  Look at Open() in the Scripting Index, example 2.

file = Pick File("Pick a file", "$DOCUMENTS", {"Excel|csv;xlsx;xls","JMP Files|jmp;jsl;jrn", "All Files|*"}, 1,0, "", multiple);

For(i=1, i<=nitems(file), i++,

       Open(file[i], /*excel options ie: ,Table Contains Column Headers( 1 ), Column Names are on line (3), ect.*/)

);