Öffnen Sie mehrere Dateien und benennen Sie dann die Spalten in allen Tabellen umIch habe ein Skript, das dem Benutzer die Möglichkeit gibt, mehrere Dateien desselben Typs auszuwählen, sie zu öffnen und dann die Spalten umzubenennen. Das Auswählen und Öffnen der Dateien funktioniert einwandfrei, aber das Umbenennen der Spalten war ein Problem. Unten ist, was ich bisher habe.
Names Default To Here( 1 );
Files = Pick File(
"Select File(s)",
"C:\Users\dkraeuter\Desktop\Temp\Test",
{"All Files|*"},
1,
0,
"",
"multiple"
);
y = {"Test", "Run", "Model"};
For( i = 1, i <= N Items( Files ), i++,
Try( Open( Files[i], "text" ) );
dt = Current Data Table() // Use Current Data Table;
For( n = 1, n < 56, n++,
:Column( n ) << Set Name( y[n] )
);
);
Betreff: Öffnen Sie mehrere Dateien und benennen Sie dann die Spalten in allen Tabellen umErhalten Sie Fehler im Protokoll?
Betreff: Öffnen Sie mehrere Dateien und benennen Sie dann die Spalten in allen Tabellen umHallo Jim, könntest du mir bitte bei Folgendem helfen:
Was passiert, wenn ich zwei Datentabellen importiere und die Namen der Spalten in beiden ändern möchte? Funktioniert der Abschnitt des Skripts unten nicht? So wie es ist, ändert es nur den Namen der Spalten in einer Tabelle, nicht jedoch in der anderen.
dt1 = Datentabelle(1);
dt1 << select where( :Result_Valid != 1 );
dt1 << verstecken und ausschließen;
dt1 << Ausgewählt auswählen;
dt1 << Zeilen löschen;
dt1 << set name ("Data 2");
dt1 << Spalten löschen( "Teilenummer", "Eindeutige ID");
dt1 << Text To Columns(delimiter( "_" ),columns( :File Name ),);
dt1 = :Dateiname 1 << set name ("Run Time");
dt1 = :Dateiname 2 << set name ("Dimension");
dt1 = :Dateiname 3 << set name ("Data Type");
dt2 = Datentabelle(2);
dt2 << select where( :Result_Valid != 1 );
dt2 << verstecken und ausschließen;
dt2 << Ausgewählt auswählen;
dt2 << Zeilen löschen;
dt2 << set name ("Data 1");
dt2 << Spalten löschen( "Teilenummer", "Eindeutige ID");
dt2 << Text To Columns(delimiter( "_" ),columns( :File Name ),);
dt2 = :Dateiname 1 << set name ("Run Time");
dt2 = :Dateiname 2 << set name ("Dimension");
dt2 = :File Name 3 << set name ("Data Type");
Betreff: Öffnen Sie mehrere Dateien und benennen Sie dann die Spalten in allen Tabellen umIhre Y-Liste enthält nur 49 Elemente und Sie versuchen, auf 56 zu kommen.Die andere Möglichkeit besteht darin, dass die Tabelle mit 50 Daten, die Sie lesen, zum ersten Mal mehr als 49 Spalten umfasst.Sie sollten dies im Code überprüfen und nur 49 Spalten durchlaufen, oder, wenn die Datentabelle weniger Spalten hat, nur 1 Schleife durch die Anzahl der Spalten.
Betreff: Öffnen Sie mehrere Dateien und benennen Sie dann die Spalten in allen Tabellen umIch verwende das Skript und bin auf ein Problem gestoßen. Wenn der Wert für „n“ 50 überschreitet, wird nur eine Datei geöffnet und die Spalten umbenannt, unabhängig von der Anzahl der ausgewählten Dateien. Der Fehler, den ich im Protokoll erhalte, lautet: Indexbereich beim Zugriff oder bei der Auswertung von 'y[n]', y[/*###*/n].
Hier ist mein aktuelles Skript.
Names Default To Here( 1 );
Files = Pick File(
"Select File(s)",
"C:\Users\dkraeuter\Desktop\Temp\Azure",
{"All Files|*"},
1,
0,
"",
"multiple"
);
y = {"Blank", "Feed Step 2", "Cycle Stopped", "Spindle Speed 1", "Spindle Speed 2", "Number of Stones",
"Percent of Surface Interuptions", "Honing Time ", "Tool Type", "Fault Code", "Serial Number", "Feed Force 1",
"Feed Force 2", "Bore Compensation", "Feed Position at Bore", "Feed Position at End", "Feed Position at Target",
"Wedge Angle", "Part Count", "Setup Name", "Part Material", "Part Hardness", "Stone Type", "Stone Length",
"Stone Width", "Coolant Type", "Cycle Run Status", "Cycle Stone Condition", "Cycle Incoming Condition",
"Machine Model", "Stroke Speed 1", "Stroke Speed 2", "Feed Rate 1", "Feed Rate 2", "Stroke Length", "Bore Length",
"VSRR Calc", "Average Torq Spindle", "Average Torq Stroker", "Average Torque Feed", "Average Feed Force",
"Average Part Torque", "Target Final Diameter", "Surface Finish Ra", "Surface Finish Rz", "Surface Finish Rt",
"1", "2", "3"};
For( i = 1, i <= N Items( Files ), i++,
Try( dt = Open( Files[i], "text" ) );
Wait( 0 );
For( n = 1, n < 56, n++,
Column( dt, n ) << Set Name( y[n] )
);
);Betreff: Öffnen Sie mehrere Dateien und benennen Sie dann die Spalten in allen Tabellen umDie Fehler, die ich gefunden habe, waren die folgenden
1. Der Pfad zum Standardverzeichnis wurde nicht gefunden.Also habe ich es so korrigiert, dass es auf einen Ordner verweist, von dem ich wusste, dass ich ihn habe, und dann hat die Option „Datei auswählen“ einwandfrei funktioniert
2. Es fehlte ein „;“ am Ende der „y =“-Anweisung.Sobald das behoben war, wurde der Code korrekt analysiert.
3. Die Column()-Funktion ist nicht wie die :Name()-Funktion.Am Anfang steht kein „:“.
4. Ich habe auch das „dt = current data table():“ entfernt.Durch die Platzierung als Ergebnis der Open()-Funktion ist eine Einstellung nicht mehr erforderlich.
5. Ich habe in der Datentabelle auch einen Verweis auf die Column()-Funktion hinzugefügt.Dies ist die formalste Art, die Column()-Funktion anzugeben, und vermeidet die Frage, auf welche Spalte sie verweist.
6. Das Warten( 0 ); ist nur eine Sicherheitsmaßnahme.Es stellt sicher, dass die Datentabelle vollständig eingelesen wurde, bevor die For()-Schleife ausgeführt wird.Vielleicht möchten Sie auch verwenden
dt << run formulas;
Außerdem wird sichergestellt, dass die Datentabelle ausgeführt wurde.
Hier ist meine Version Ihres Codes:
Names Default To Here( 1 );
Files = Pick File( "Select File(s)", "C:\Users\<YOUR logonid="">", {"All Files|*"}, 1, 0, "", "multiple" );
y = {"Test", "Run", "Model"};
For( i = 1, i <= N Items( Files ), i++,
Try( dt = Open( Files[i], "text" ) );
wait( 0 );
For( n = 1, n < 56, n++,
Column( dt, n ) << Set Name( y[n] )
);
);</YOUR>
Betreff: Öffnen Sie mehrere Dateien und benennen Sie dann die Spalten in allen Tabellen umMein Fehler sagt etwas über ein nicht erkanntes „;“ aus. oder ")". Soweit ich das beurteilen kann, hat es etwas mit dem Open-Befehl direkt nach der For-Schleife zu tun. Wenn ich den Open-Befehl auskommentiere, scheint die zweite for-Schleife in Ordnung zu sein.
Die 55 ergibt sich aus der tatsächlichen Anzahl der Spalten, die ich umbenenne. Als ich erneut gepostet habe, habe ich die Gesamtzahl der von mir aufgeführten Spaltennamen geändert, aber vergessen, die zulässige Gesamtzahl „n“ zu ändern.
Betreff: Öffnen Sie mehrere Dateien und benennen Sie dann die Spalten in allen Tabellen umWelche Fehlermeldung erhalten Sie im Protokoll?Ich vermute, dass es darauf ankommt, dass Ihr Index außerhalb des zulässigen Bereichs liegt.Sie durchlaufen Ihre Variable „n“ von 1 bis 55 und verweisen auf Ihre Variable „y“.Sobald „n“ gleich 4 ist, sind in Ihrer „y“-Liste keine Werte mehr vorhanden.