Ich habe das Gefühl, dass dies eine einfache Frage ist, aber ich schaffe es beim besten Willen nicht, sie zum Laufen zu bringen.
Der Kontext ist, dass ich einen XML-Extraktor habe, der frustrierenderweise mit n-Tupeln meist (abgesehen von einer Zeile) redundanten Einträgen auf ein paar Ebenen in der Struktur umgehen muss. Ich versuche, diese „doppelten“ Einträge zu finden und zu prüfen, ob es sich tatsächlich um Duplikate handelt, bevor ich sie in meine größere Tabelle importiere. Ich muss die Anzahl der Wiederholungen überprüfen, aber es fällt mir furchtbar schwer, meine verschachtelte for/if-Schleife zum Laufen zu bringen. Tatsächlich stürzt die Schleife ständig die gesamte Software ab, wenn ich ein Eval( Eval Expr(....Expr())) an der falschen Stelle verschachtelt habe. Ich bin mir nicht sicher, warum das so ist, und ich frage mich, ob ich die Verwendung dieser Konstruktion einfach falsch verstehe.
Ich vermute, dass es auch ein Problem sein könnte, wenn char() und concatate90 ineinander verschachtelt verwendet werden, obwohl ich mir auch hier nicht sicher bin, warum das so sein sollte. Der aktuelle Code, den ich unten habe, führt zum Absturz der Software.
colnames = dt << Get Column Names( String );
show(colnames);
reps = 0;
show(reps);
For( i = 1, i <= N Items( colnames), i++,
reps = Sum( reps, Contains(colnames[i], "Data - Common Counting Time")); show(reps)
);
check = 0;
//Repeats that split columns
colnamecount = "Scan Append Number_4"; //Using a file that only has three of these columns, so show(colnamecount) = *_4 means its not going past that first if statment
If( reps> 1,
For( i = 2, i = reps, i++,
Eval(Eval Expr(colnamecount = Concat("Scan Append Number_", Char(Expr(i))))); //This is the issue
If(dt:{"Scan Append Number_1"}[1] == Column( colnamecount )[1],
check = check + 1,
check = check + 12
)
)
);
show(check);Der Code funktioniert trotzdem nicht, aber bis ich die If-Anweisung bekomme, die die Spalte mit dem verketteten Namen mit der ersten der n-tupled-Spalten vergleicht, spielt es keine Rolle, und zuerst muss ich die Verkettung zum Laufen bringen und jsl nicht zum Absturz bringen.
Hat jemand irgendwelche Gedanken? Bin ich nur dumm mit der Syntax?