JSL FOR-Schleife, um Werte in Zellen zu überprüfen und das siebte Zeichen zu entfernen, falls vorhandenDieser Ausschnitt unten ist ein Teil meines Skripts. Zu diesem Zeitpunkt habe ich eine Datentabelle und einige der Zellen in verschiedenen Zeilen haben an der 7. Position ein besonderes Sonderzeichen ... ja, seltsamer Datensatz. Manche nicht. Es gibt mehrere Zeilen und mehrere Spalten, deren Anzahl variieren kann.
Deshalb verwende ich eine FOR-Schleife, um den Wert jeder Zelle für jede Zeile und Spalte zu überprüfen und dann das 8. Zeichen zu kürzen oder zu entfernen, falls vorhanden. Tatsächlich kann das Skript einfach ein left(dt,7) ausführen, und damit wäre ich zufrieden. Wo ich mich gerade befinde, steckt jedoch fest, denn wenn ich die Funktion GETVALUES verwende, werden die Zellwerte für diese Spalte in eine Matrix eingefügt, und ich kann nicht herausfinden, wie ich den linken Zuschnitt durchführen soll. Wenn ich stattdessen jede Zeile einzeln durchlaufe, indem ich die GETVALUES entferne, kann ich den Wert richtig kürzen, aber nicht herausfinden, wie ich den neuen Wert in die Zelle erzwingen kann. Ich habe beide Möglichkeiten in das folgende Skript aufgenommen.
//Loop to delete the closing crazy characters from each row, it is always the 7th character that needs to be removed.
For(n = 1, n <= ncol(dtWAPFile), n++,
colname = Column(n) << get name;
For( k = 1, k <= N Rows( dtWAPFile ), k++,
RowVal = dtWAPFile:colname << GetValues; //This gets a matrix
NewRowVal = Left(RowVal,6); //This doesn't work with the matrix
dtWAPFile:colname << setvalues(NewRowVal);//This doesn't work...
); For(n = 1, n <= ncol(dtWAPFile), n++,
colname = Column(n) << get name;
For( k = 1, k <= N Rows( dtWAPFile ), k++,
RowVal = dtWAPFile:colname[k]; //This gets the value for a row/column based on the loop
NewRowVal = Left(RowVal,6); //This trims the value
RowVal = setvalues(NewRowVal);//This doesn't work...can't seem to stuff it back in..
);
Betreff: JSL FOR-Schleife, um Werte in Zellen zu überprüfen und das siebte Zeichen zu entfernen, falls vorhandenHat funktioniert. Danke Leute! Ich liebe dieses Forum übrigens, ihr seid brillant und sorgt dafür, dass ich bei der Arbeit gut aussehe
Betreff: JSL FOR-Schleife, um Werte in Zellen zu überprüfen und das siebte Zeichen zu entfernen, falls vorhandenJims Code ein wenig optimieren:
NamesDefaultToHere(1);
// Test Table
dt = New Table( "Test",
Add Rows( 4 ),
New Column( "Column 1",
Character,
"Nominal",
Set Values( {"123456", "1234567", "12345678", "1234"} )
),
New Column( "Column 2",
Character,
"Nominal",
Set Values( {"123456789", "123", "123456", "1234567"} )
)
);
// Truncate each cell to the leftmost six characters
Wait(3);
cols = dt << getColumnNames("String");
for(c=1, c<=NItems(cols), c++,
for(r=1, r<=NRow(dt), r++,
Column(dt, cols[c])[r] = Left(Column(dt, cols[c])[r], 6);
);
);Betreff: JSL FOR-Schleife, um Werte in Zellen zu überprüfen und das siebte Zeichen zu entfernen, falls vorhandenIch habe es nie herausgefunden, aber ich habe eine Lösung gefunden. Aus irgendeinem Grund könnte ich den Code schrittweise durchgehen und es würde funktionieren, aber wenn ich das gesamte Snippet ausführe, würde es nicht ... seltsam.
Letztendlich musste ich die erste FOR-Schleife entfernen und die zweite FOR-Schleife nicht in die erste FOR-Schleife einbetten.Ich hoffe, ich hatte einen einfachen Fehler, aber ich kam einfach nicht dorthin und hatte keine Zeit mehr.
Betreff: JSL FOR-Schleife, um Werte in Zellen zu überprüfen und das siebte Zeichen zu entfernen, falls vorhandenOK.....also habe ich den Code nicht sehr gut getestet...oder eigentlich habe ich ihn wirklich nicht getestet.:-(
Ich bin froh, dass du es herausgefunden hast
Betreff: JSL FOR-Schleife, um Werte in Zellen zu überprüfen und das siebte Zeichen zu entfernen, falls vorhandenWenn ich den Code durchgehe und die Schleife umgehe, funktioniert es.
Betreff: JSL FOR-Schleife, um Werte in Zellen zu überprüfen und das siebte Zeichen zu entfernen, falls vorhandenIch bekomme einen Fehler (unten), aber ich höre gerne, dass ich es zu schwer mache. Hoffentlich sind wir nah dran.
In the following script, error marked by /*###*/
For( n = 1, n <= N Col( dtWAPFile ), n++,
colname = Column( n ) << get name;
For( k = 1, k <= N Rows( dtWAPFile ), k++,
Column( dtWAPFile, n )[k] = Left( Column( dtWAPFile, n )[/*###*/k], 6 )
);
)
Betreff: JSL FOR-Schleife, um Werte in Zellen zu überprüfen und das siebte Zeichen zu entfernen, falls vorhandenIch denke, du machst es zu schwer. Diese Ode sollte funktionieren
For( n = 1, n <= N Col( dtWAPFile ), n++,
colname = Column( n ) << get name;
For( k = 1, k <= N Rows( dtWAPFile ), k++,
Column( dtWAPFile, n )[k] = Left( Column( dtWAPFile, n )[k], 6 )
);
);