Dateien im Ordner bestellenLeute,
Ich habe eine Liste von Dateien, die ich verketten möchte (siehe erste Abbildung).Die Präferenz wäre wie gezeigt zu verketten, das heißt "surf_12275-87-1..., "surf_12275-87-2...", usw. Wenn ich jedoch eine Liste aus den Dateien im Ordner bilde (nachdem ich unnötige Zeichen entfernt habe), lautet die Reihenfolge "12275-87- 1 , 12275-87- 10 , 12275-87- 11 ". Die Präferenz wäre jedoch "12275-87- 1 , 12275-87- 2 , 12275-87- 3 ". Natürlich lässt sich das Problem am einfachsten umgehen, wenn die Dateien in der Form " -01, -02, ... -10, -11" zu mir kommen, aber das wird nicht immer der Fall sein.
Gibt es eine einfache Möglichkeit, die Dateien in das bevorzugte Ranking-Format zu bringen, damit ich sie öffnen und von niedrig nach hoch verketten kann? Aktuelles Skript angehängt.
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);


SkriptingRe: Dateien im Ordner bestellenDie JMP-Datentabelle scheint eine numerische Sortierung zu verwenden, wenn Sie den Spaltenmodellierungstyp als ordinal haben, sodass Sie dies oder eine for-Schleife verwenden können.
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);Diese könnten eine Idee geben, wie man das Problem angehen kann.
Re: Dateien im Ordner bestellenHier ist eine Möglichkeit, die Liste zu sortieren, indem Sie die Elemente der Namen nehmen und sie in verschiedene Spalten in einer Datentabelle aufteilen, die numerischen Elemente in numerische Spalten ändern und dann die Datentabelle nach allen Elementen sortieren.
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>
Ich bin sicher, dass andere Mitglieder alternative Methoden haben können.
Re: Dateien im Ordner bestellenJarmo,
Vielen Dank, dass Sie mir neue Fähigkeiten beigebracht haben. Ich habe alle Ihre vorgeschlagenen Ansätze ausprobiert, um meine Programmierfähigkeiten zu verbessern. Hier ist meine neueste Version, die genau das tut, was ich will.
Danke nochmal
Neil
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: Dateien im Ordner bestellenJim,
Ich kann Ihnen nicht sagen, wie aufschlussreich dieser Ansatz für ein anderes (nicht mit diesem Thread in Zusammenhang stehendes) Problem war, das ich hatte. Das heißt, Dateinamen mit unvorhergesehenen "Element"-Anordnungen. Zumindest bin ich in der Lage, die Dateinamen zu sezieren und zu einer einheitlichen Beschriftung "umzuordnen".
Danke nochmal für all deine Hilfe.
Neil