cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-725024%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Enome%20del%20file%20di%20gruppo%20e%20impostazione%20dell'etichetta%20tramite%20loop%20JSL%2C%20funziona%20bene%20ma%20lentamente%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-725024%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHo%20un%20JLS%20che%20funziona%20bene%2C%20ma%20lentamente%2C%20esiste%20un%20metodo%20per%20migliorarlo%3F%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3E1.%20importa%20pi%C3%B9%20file%3C%2FP%3E%3CP%3E2.%20in%20base%20al%20nome%20del%20file%2C%20raggruppa%20le%20regole%20in%20a%2C%20b%2C%20c%2C%20d%2C%20e%3C%2FP%3E%3CP%3E3.%20basarsi%20sulla%20regola%20del%20nome%20file%20per%20decidere%20il%20conteggio%20dei%20file%20e%20impostarlo%20in%20righe%20per%20ciascun%20gruppo%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(1)%3B%0Adir%20%3D%20Pick%20Directory(%20%22Select%20a%20directory%22%20)%3B%0A%0AMultiple%20File%20Import(%0A%09%26lt%3B%3CSET%20folder%3D%22%22%3E%200%2C%20inserisci%20in(a_filelist%2Cfilelist%5Bi%5D)%20)%3B%20if%20(%20b_files%20%26gt%3B%200%2C%20inserisci%20in(b_filelist%2Cfilelist%5Bi%5D)%20)%3B%20if%20(%20c_files%20%26gt%3B%200%2C%20inserisci%20in(c_filelist%2Cfilelist%5Bi%5D)%20)%3B%20if%20(d_files%20%26gt%3B%200%2C%20insert%20into(d_filelist%2Cfilelist%5Bi%5D)%20)%3B%20if%20(e_files%20%26gt%3B%200%2C%20inserisci%20in(e_filelist%2Cfilelist%5Bi%5D)%20)%3B%20)%3B%20for%20(i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20elementi(a_filelist)%2C%20i%2B%2B%2C%20is_reset_file%20%3D%20contiene(a_filelist%5Bi%5D%2C%22NULL%22)%3B%20if(%20is_reset_file%20%26gt%3B%3D%201%2C%20selrows%20%3D%20dt%20%26lt%3B%26lt%3B%20get%20rows%20Where(Contains(char%20(a_filelist%5Bi%5D)%2C%20%3ANome%20file))%3B%20column(dt%2C%22file_lable%22)%5Bselrows%5D%20%3D%200%3B%20b_count%20%3D%200%3B%20)%3B%20if%20(is_reset_file%20%3D%3D%200%2C%20a_count%20%3D%20a_count%20%2B%201%3B%20selrows%20%3D%20dt%20%26lt%3B%20%26lt%3B%20get%20righe%20Dove(Contiene(char(a_filelist%5Bi%5D)%2C%20%3ANome%20file))%3B%20colonna(dt%2C%22file_lable%22)%5Bselrows%5D%20%3D%20a_count%20)%20)%3B%20for%20(i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20elementi(b_filelist)%2C%20i%2B%2B%2C%20is_reset_file%20%3D%20contiene(b_filelist%5Bi%5D%2C%22NULL%22)%3B%20if(%20is_reset_file%20%26gt%3B%3D%201%2C%20selrows%20%3D%20dt%20%26lt%3B%26lt%3B%20get%20rows%20Where(Contains(char%20(b_filelist%5Bi%5D)%2C%20%3ANome%20file))%3B%20column(dt%2C%22file_lable%22)%5Bselrows%5D%20%3D%200%3B%20b_count%20%3D%200%3B%20)%3B%20if%20(is_reset_file%20%3D%3D%200%2C%20b_count%20%3D%20b_count%20%2B%201%3B%20selrows%20%3D%20dt%20%26lt%3B%20%26lt%3B%20get%20righe%20Dove(Contiene(char(b_filelist%5Bi%5D)%2C%20%3ANome%20file))%3B%20colonna(dt%2C%22file_lable%22)%5Bselrows%5D%20%3D%20b_count%20)%20)%3B%20%2F%2F%20il%20seguente%20%C3%A8%20il%20ciclo%20per%20C%2C%20D%2C%20E%3C%2FSET%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%20%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-725024%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EAutomazione%20e%20scripting%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Choose Language Hide Translation Bar
BayesRabbit7133
Level III

group file name and set lable by JSL looping, work fine but slowly

I have a JLS works fine, but slowly, is there any method to improve it?

 

1. import multiple files

2. base on file name rule group into a, b, c, d, e 

3. base on file name rule to decide file count and set into rows for each group

Names Default To Here(1);
dir = Pick Directory( "Select a directory" );

Multiple File Import(
	<<Set Folder(
		dir
	),
	<<Set Show Hidden( 0 ),
	<<Set Subfolders( 0 ),
	<<Set Name Filter( "*.*;" ),
	<<Set Name Enable( 0 ),
	<<Set Size Filter( {1644369, 1653938} ),
	<<Set Size Enable( 0 ),
	<<Set Date Filter( {3783511548, 3783511550} ),
	<<Set Date Enable( 0 ),
	<<Set Add File Name Column( 1 ),
	<<Set Add File Size Column( 0 ),
	<<Set Add File Date Column( 0 ),
	<<Set Import Mode( "CSVData" ),
	<<Set Charset( "Best Guess" ),
	<<Set Stack Mode( "Stack Similar" ),
	<<Set CSV Has Headers( 1 ),
	<<Set CSV Allow Numeric( 1 ),
	<<Set CSV First Header Line( 2 ),
	<<Set CSV Number Of Header Lines( 1 ),
	<<Set CSV First Data Line( 3 ),
	<<Set CSV EOF Comma( 1 ),
	<<Set CSV EOF Tab( 1 ),
	<<Set CSV EOF Space( 1 ),
	<<Set CSV EOF Spaces( 1 ),
	<<Set CSV EOF Other( "" ),
	<<Set CSV EOL CRLF( 1 ),
	<<Set CSV EOL CR( 1 ),
	<<Set CSV EOL LF( 1 ),
	<<Set CSV EOL Semicolon( 0 ),
	<<Set CSV EOL Other( "" ),
	<<Set CSV Quote( "\!"" ),
	<<Set CSV Escape( "" ),
	<<Set XML Method( "guess" ),
	<<Set XML Guess( "huge" ),
	<<Set XML Settings( XML Settings() ),
	<<Set JSON Method( "guess" ),
	<<Set JSON Guess( "huge" ),
	<<Set JSON Settings( JSON Settings() ),
	<<Set Import Callback( Empty() )
) << Import Data;

dt = current data table();
filelist = Files In Directory(dir);
dt << new column("file_lable");
a_count = 0;
b_count = 0;
c_count = 0;
d_count = 0;
e_count = 0;
a_filelist = {};
b_filelist = {};
c_filelist = {};
d_filelist = {};
e_filelist = {};


for (i = 1, i <= N items(filelist), i++,

	a_files = contains(filelist[i],"a_");
	b_files = contains(filelist[i],"b_");
	c_files = contains(filelist[i],"c_");
	d_files = contains(filelist[i],"d_");
	e_files = contains(filelist[i],"e_");
	
	if ( a_files > 0, 
		insert into(a_filelist,filelist[i])
	);
	
	if ( b_files > 0, 
		insert into(b_filelist,filelist[i])
	);
	
	if ( c_files > 0, 
		insert into(c_filelist,filelist[i])
	);
	
	if ( d_files > 0, 
		insert into(d_filelist,filelist[i])
	);
	
	if ( e_files > 0, 
		insert into(e_filelist,filelist[i])
	);
);

	
for (i = 1, i <= N items(a_filelist), i++,
	is_reset_file = contains(a_filelist[i],"NULL");
	if( is_reset_file >= 1, 
		selrows = dt << get rows Where(Contains(char(a_filelist[i]), :File Name));
		column(dt,"file_lable")[selrows] = 0;
		b_count = 0;
	);
	if (is_reset_file == 0, 
		a_count = a_count + 1;
		selrows = dt << get rows Where(Contains(char(a_filelist[i]), :File Name));
		column(dt,"file_lable")[selrows] = a_count
	)
);

for (i = 1, i <= N items(b_filelist), i++,
	is_reset_file = contains(b_filelist[i],"NULL");
	if( is_reset_file >= 1, 
		selrows = dt << get rows Where(Contains(char(b_filelist[i]), :File Name));
		column(dt,"file_lable")[selrows] = 0;
		b_count = 0;
	);
	if (is_reset_file == 0, 
		b_count = b_count + 1;
		selrows = dt << get rows Where(Contains(char(b_filelist[i]), :File Name));
		column(dt,"file_lable")[selrows] = b_count
	)
);

// the following is loop for C , D, E

 

 

0 REPLIES 0

Recommended Articles