Problem, wenn eine Liste Zeichenfolgen aus einer Liste enthält: Rückgabe mit falscher ListeIch möchte eine Liste von Dateien abrufen, die str aus einer anderen Liste enthalten, aber die Rückgabe ist leer. Was habe ich falsch gemacht? Kann jemand einen Rat geben? Unten ist mein Skript.
filelist = Files In Directory( path );
//filelist={"123_123_1_acdr.csv", "234_113_100_rqtfgy.csv", "53_1243_12_qqwed.csv", "6_12378_23_rty.csv"}
lst1 = {"234_113_100", "53_1243_12"};
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Contains( lst1, filelist[i] ),
Insert Into( lst2, filelist[i] )
)
);
Print( lst2 );
die erwartete Ausgabe von lst2 ={"234_113_100_rqtfgy.csv", "53_1243_12_qqwed.csv"}, die Ausgabe lst2 ist jedoch leer.
Automatisierung und SkripterstellungVerbraucher- und MarktforschungDatenzugriffQualitäts- und VerfahrenstechnikBetreff: Problem beim Ausführen, wenn eine Liste Str aus einer Liste enthält: Rückkehr mit falscher ListeDanke Svarga und Jim. Jetzt verstehe ich das Problem.Betreff: Problem beim Ausführen, wenn eine Liste Str aus einer Liste enthält: Rückkehr mit falscher ListeEin kurzer Ratschlag, ich teste gerne Skripte im Skripting-Index. Ich ging zum Beispiel Dateien im Verzeichnis und ersetzte Ihre Werte. Wenn Sie nur eine for-Schleife haben möchten, müssen Sie sicherstellen, dass Ihre lst1 die genaue Übereinstimmung hat. Aber für dieses Beispiel brauchen Sie eine verschachtelte for-Schleife. Sie müssen auch die Contains-Argumente von lst1, filelist[i] auf filelist[i], lst[j] ändern.
filelist = {"123_123_1_acdr.csv", "234_113_100_rqtfgy.csv",
"53_1243_12_qqwed.csv", "6_12378_23_rty.csv"};
lst1 = {"234_113_100"};
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
For(j = 1, j <= N Items(lst1), j++,
If( Contains( filelist[i], lst1[j] ),
Insert Into( lst2, filelist[i] )
)
)
);
Print( lst2 );<BR /><BR />Result: {"234_113_100_rqtfgy.csv"}
Betreff: Problem beim Ausführen, wenn eine Liste Str aus einer Liste enthält: Rückkehr mit falscher Listewenn ein contains zum Durchsuchen einer Liste verwendet wird, wird nur nach vollständigen Übereinstimmungen gesucht.Beim Durchsuchen einer Zeichenfolge kann auf Teilübereinstimmungen geprüft werden.
//filelist = Files In Directory( path );
filelist = {"123_123_1_acdr.csv", "234_113_100_rqtfgy.csv", "53_1243_12_qqwed.csv",
"6_12378_23_rty.csv"};
lst1 = {"234_113_100", "53_1243_12"};
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
For( k = 1, k <= N Items( lst1 ), k++,
If( Contains( filelist[i], lst1[k] ),
Insert Into( lst2, filelist[i] )
)
)
);
Print( lst2 );