폴더의 파일 순서 지정여러분,
연결할 파일 목록이 있습니다(첫 번째 그림 참조).기본 설정은 "surf_12275-87-1..., "surf_12275-87-2..."등. 그러나 폴더의 파일에서 목록을 구성하면 (불필요한 문자를 제거한 후) 순서는 "12275-87- 1 , 12275-87- 10 , 12275-87- 11 ". 그러나 기본 설정은 "12275-87- 1 , 12275-87- 2 , 12275-87- 삼 ". 분명히 문제를 해결하는 직접적인 방법은 파일이 "-01, -02, ... -10, -11" 형식으로 내게 오는 것이지만 항상 그런 것은 아닙니다.
파일을 원하는 순위 형식으로 가져와 낮은 것에서 높은 순서로 열고 연결할 수 있는 직접적인 방법이 있습니까? 현재 스크립트가 첨부되었습니다.
s_path = {};
X_path = {};
f1 = Files In Directory( SD1, recursive(1));
For( i = 1, i <= N Items( f1 ), i++,
b = f1[i];
c = Contains Item(b, "surf", "_");
If( c==1,
d = Word(2, b, "_");
Insert Into(s_path,d),
Insert Into(X_path, d)
)
);
Show(s_path);


스크립팅Re: 폴더의 파일 순서 지정JMP 데이터 테이블은 열 모델링 유형을 서수로 사용하여 해당 또는 for 루프를 사용할 수 있는 경우 숫자 정렬을 사용하는 것 같습니다.
Names Default To Here(1);
a = {
"surf_12275_87-1_r250",
"surf_12275_87-2_r250",
"surf_12275_87-3_r250",
"surf_12275_87-4_r250",
"surf_12275_87-5_r250",
"surf_12275_87-6_r250",
"surf_12275_87-7_r250",
"surf_12275_87-8_r250",
"surf_12275_87-9_r250",
"surf_12275_87-10_r250",
"surf_12275_87-11_r250",
"surf_12275_87-12_r250",
"surf_12275_87-13_r250",
"surf_12275_87-20_r250",
"surf_12275_87-22_r250"
};
a = Sort List(a); //break the ordering
Show(a);
dt = New Table("",
New Column("SortList", Character, Ordinal, Set Values(a)), private
);
dt << Sort(By(:SortList), Order(Ascending), Replace Table);
b = dt:SortList << Get Values;
Close(dt, no save);
Show(b);
c = {};
For(i = 1, i <= N Items(a), i++,
Insert Into(c, a[i], Num(Words(a[i], "-_")[4]));
);
Show(c);이것들은 문제에 접근하는 방법에 대한 아이디어를 줄 수 있습니다.
Re: 폴더의 파일 순서 지정다음은 이름의 요소를 가져와 데이터 테이블의 다른 열로 분리하고 숫자 요소를 숫자 열로 변경한 다음 모든 요소를 기준으로 데이터 테이블을 정렬하여 목록을 정렬하는 한 가지 방법입니다.
names default to here(1);
f1={"surf_12275-87-11_r250_50x_mean_2.jmp", "surf_12275-87-2_r250_50x_mean_2.jmp",
"surf_12275-87-10_r250_50x_mean_2.jmp", "surf_12275-87-4_r250_50x_mean_2.jmp",
"surf_12275-87-5_r250_50x_mean_2.jmp", "surf_12275-87-6_r250_50x_mean_2.jmp",
"surf_12275-87-7_r250_50x_mean_2.jmp", "surf_12275-87-8_r250_50x_mean_2.jmp",
"surf_12275-87-9_r250_50x_mean_2.jmp", "surf_12275-87-1_r250_50x_mean_2.jmp",
"surf_12275-87-3_r250_50x_mean_2.jmp"};
dt = new table("Sort Table",
add rows(nitems(f1)),
new column("File Names", character)
);
dt:File Names << set values(f1);
// Create and populate separate columns for each element in the names
sortList = {};
i=1;
While(word(i,f1[1],"_-.") != "",
dt<<NEW column=""></NEW>
다른 회원이 다른 방법을 사용할 수 있다고 확신합니다.
Re: 폴더의 파일 순서 지정자모,
새로운 기술을 가르쳐 주셔서 감사합니다. 코딩 능력을 향상시키기 위해 제안한 모든 접근 방식을 시도했습니다. 여기에 내가 원하는 것을 정확히 수행하는 최신 개정판이 있습니다.
다시 감사합니다
닐
f1 = Files In Directory( SD1, recursive(1));
f1 = Sort List(f1);
dt = New Table("",
New Column("SortList", Character, Ordinal, Set Values(f1)), private
);
dt << Sort( By(:SortList), Order(Ascending), Replace Table);
b = dt:SortList << Get Values;
Close(dt, no save);
For( i=1, i <= N Items(b), i++,
file_1 = Open(SD1 || b[1]);
If(i > 1,
file_nxt = Open(SD1 || b[i], Private);
file_1 << Concatenate(file_nxt, Append to first table);
)
);
file_1 << Save(SD1 || "All Summary");Re: 폴더의 파일 순서 지정짐,
이 접근 방식이 내가 겪고 있는 다른(이 스레드와 관련이 없는) 문제에 대해 얼마나 통찰력이 있었는지 말할 수 없습니다. 즉, 예상치 못한 "요소" 배열이 있는 파일 이름입니다. 적어도 파일 이름을 분석하고 일관된 레이블로 "재정렬"할 수 있습니다.
모든 도움에 다시 한 번 감사드립니다.
닐