Öffnen Sie mehrere Datendateien rekursiv<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich würde gerne einen Code finden, der Dateien in einem Windows-Verzeichnis rekursiv öffnet.
Nehmen wir an, mein Pfad ist: c:\charlie\data
Ich möchte, dass JMP alle *.txt-Dateien in diesem und den unteren Verzeichnissen findet und sie alle öffnet.
Letztendlich werde ich sie zusammenführen, aber jetzt möchte ich sie nur alle öffnen.
Ich habe es versucht (ohne Erfolg):
path = "C:\charlie\data\data1";
file_list = Dateien im Verzeichnis("C:\charlie\data\data1");
for (i=1, i<=NItems(file_list), i++,
dt =
Offen(
Pfad || Dateiliste ,
Importeinstellungen(
Zeilenende (CRLF, CR, LF),
Ende des Feldes( Komma, Andere( „0x7c“) ),
Strip Quotes( 1 ),
Verwenden Sie Apostroph als Anführungszeichen (0),
Ganze Datei scannen (1),
Behandeln Sie leere Spalten als numerisch (0),
Etiketten( 1 ),
Spaltennamen Start( 1 ),
Datenstarts( 2 ),
Zeilen zum Lesen (Alle),
Jahresregel( „20xx“)
)
);
);
Betreff: Mehrere Datendateien rekursiv öffnenDieses Skript funktioniert sehr gut, um alle Dateien in einem Verzeichnis zu öffnen, sie anhand einiger Kriterien zu filtern und dann alle Dateien zu verketten.
=============================================== =============================================== =
path = "C:\temp\data\";
file_list = {};
file_list = Dateien im Verzeichnis (Pfad, rekursiv);
myFiles = file_list;
For( i = 1, i <= N Items( file_list ), i++,
If( Enthält( file_list , ".Summe" ),
meine Akten = ""
)
);
final_files = meine Dateien;
///////////////////Erste Datei in der Liste öffnen////////////////////
///////zusätzliche Dateien werden an diese angehängt///////////
i=1;
dtjoin = Öffnen(
Pfad || final_files ,
Säulen(
Pass_Fail = Zeichen,
Parameter = Zeichen,
Data_Value = Numerisch,
Einheiten = Zeichen,
LSL = Numerisch,
USL = Numerisch,
Hinweis = Zeichen,
Test_Cond = Zeichen
),
Importeinstellungen(
Zeilenende (CRLF, CR, LF),
Ende des Feldes( Komma, Andere( „0x7c“) ),
Strip Quotes( 1 ),
Verwenden Sie Apostroph als Anführungszeichen (0),
Ganze Datei scannen (1),
Behandeln Sie leere Spalten als numerisch (0),
Etiketten( 1 ),
Spaltennamen Start( 1 ),
Datenstarts( 2 ),
Zeilen zum Lesen (Alle),
Jahresregel( „20xx“)
),
)
<< set name( "Joined1" );
/////////////////////////////////////////////// //////////////////////////
//////////Jetzt die restlichen Dateien in der Liste öffnen//////////////
/////////////////////////////////////////////// //////////////////////////
i=2;
For( i = 2, i <= N Items( final_files ), i++,
dt =
Offen(
Pfad || final_files ,
Säulen(
Pass_Fail = Zeichen,
Parameter = Zeichen,
Data_Value = Numerisch,
Einheiten = Zeichen,
LSL = Numerisch,
USL = Numerisch,
Hinweis = Zeichen,
Test_Cond = Zeichen
),
Importeinstellungen(
Zeilenende (CRLF, CR, LF),
Ende des Feldes( Komma, Andere( „0x7c“) ),
Strip Quotes( 1 ),
Verwenden Sie Apostroph als Anführungszeichen (0),
Ganze Datei scannen (1),
Behandeln Sie leere Spalten als numerisch (0),
Etiketten( 1 ),
Spaltennamen Start( 1 ),
Datenstarts( 2 ),
Zeilen zum Lesen (Alle),
Jahresregel( „20xx“)
)
);
dtjoin = dtjoin << Concatenate(
dt,
Name der Ausgabetabelle( „Joined“ || Char( i ) ),
);
Close( dt, nosave);
Close( "Joined" || Char( i - 1 ), nosave );
Warte( 0,1 );
); //Ende von For
dtjoin << set name( "All Joined" );
Betreff: Mehrere Datendateien rekursiv öffnenCHFields,
Ich habe etwas Ähnliches gemacht, wobei ich jeweils nur eine Datei öffnen und sie dann am Ende der vorherigen Datei verketten wollte.
Die einfache Methode, alle Dateien zu öffnen und sie dann alle auf einmal zu verketten, war aufgrund der Anzahl der Dateien, mit denen ich arbeitete, zu umständlich.
Mit dem angehängten Skript können Sie ein Verzeichnis mit TXT- oder CSV-Dateien auswählen und diese dann alle einzeln verketten.
Dies hilft auch, wenn nicht alle Dateien auf einmal in den Speicher passen.
-B
Betreff: Mehrere Datendateien rekursiv öffnenIch sollte „von MPB“ sagen.Danke MPB.Ich habe noch eine weitere Frage in diesem Sinne an Sie, wenn Sie Zeit haben.
Betreff: Mehrere Datendateien rekursiv öffnenIch habe das „\“ hinzugefügt
Danke!
Jetzt versuche ich, sie alle zu verketten.
Ich habe einen Beitrag von MJB gefunden, der sehr hilfreich war.
Er hat eine Möglichkeit gepostet, dies zu tun, allerdings mit JOIN und nur mit JMP-Dateien.
Ich habe meine Importroutine und die Optionen „Mit Vorschau öffnen“ hinzugefügt.
Ich musste die erste Datei öffnen und dann die Schleife so einstellen, dass die anderen Dateien geöffnet wurden
und verketten Sie sie mit dem ersten.
Es funktioniert immer noch nicht ganz, aber ich bin nah dran.
Betreff: Mehrere Datendateien rekursiv öffnenIhre Pfadvariable endet nicht mit einem Schrägstrich, sodass der resultierende Dateiname fehlschlägt.
Um es rekursiv zu machen und korrekte Dateinamen zu haben:
path = "C:\charlie\data\data1\";
file_list = Files In Directory(path, recursive);
for(i = 1, i <= N Items(file_list), i++,
print(path || file_list);
);
Sie können die Druckanweisung an Ihre Bedürfnisse anpassen.