Hallo, kann mir jemand helfen, diesen Code zu ändern?Ich versuche, CSV-Dateien pro Ordner zu verketten. Der Benutzer muss einen Ordner auswählen und alle qualifizierten CSV-Ordner werden verkettet und entsprechend dem Ordnernamen gespeichert. Bei dieser Methode wählt der Benutzer pro Skriptausführung einen Ordner aus.
Was ich jetzt jedoch versuche, ist, den Benutzer dazu zu bringen, den Hauptordner auszuwählen, dann das Skript auszuführen und die Daten pro Unterordner zu verketten (sie einzeln mit ihrem Ordnernamen als Dateinamen zu speichern, wie in der vorherigen Methode).
Aber mit diesem Code werden alle CSV-Dateien in einer Datei verkettet. Können Sie helfen, die Funktionsweise von Rekursiv zu ändern und zu erklären? Und wie kann ich diese Dateien einzeln speichern (Daten pro Ordner verketten), indem ich einfach den Hauptordner öffne? Ich verwende JMP 15. Danke
p = pick Directory("Select a Folder");<BR />//f = Files In Directory(p);
f = Files In Directory(p, recursive(1));
Dir = Word(-1, p, "/"); //get filename
saveDir = Substr( p, 1, Length( p ) - Length( Word( -1, p, "\/" ) ) - 1 ); //save file outside main folder
/* Removes the file names from the list f which are not CSV files */
for(j=1,j<=N Items(f),j++,
If (Substr(f[j],Length(f[j])-2,3)!= "CSV",
RemoveFrom(f,j,1);
j=j-1;
);
);
A = {}; /* creates a empty list for storing the names of each data table */
B = {};
C = {};
D = {};
k = {};
m = {};
/*Opens each one of the CSV files and deletes all unwanted rows */
for(j=1,j<=N Items(f),j++,
CSV = Open(Concat(p,f[j]), End of Field(comma), Strip Quotes(1), Labels(1),
Column Names Start(3), Data Starts(4), Columns(:MRR=Numeric));
colname = {};
colname = CSV<<GET column="" names="">20 & Contains(colname,"Weight")>50,
InsertInto(A,CSV);
CSV<<SELECT where="">1,
dt2 = dt1<<CONCATENATE>1,
dt3 = dt1<<CONCATENATE></CONCATENATE></CONCATENATE></SELECT></GET>