Concaténer la liste contenant des variables qui ont changé dans une boucleSalut,
J'ai du mal à concaténer plusieurs listes contenant des variables. J'ai une liste, chaque élément est une chaîne concaténée à partir d'une variable saisie par l'utilisateur. Étant donné que la variable est modifiée par boucle, comment puis-je mettre à jour la liste et concaténer cette liste avec d'autres listes.
bank_pcs = {"BGB1BESS001_B"||bank||"_W","BGB1BESS001_B"||bank||"_A","BGB1BESS001_V"||bank||"_W"};
For (i = 1, i<=6, i++,
bank_num = 6*(k-1)+i;
bank = char(bank_num,10,0);
Eval list (bank_pcs);
bank_tags_i = bank_pcs;
bank_tags = concat (bank_tags, bank_tags_i)
)Merci
Fusion et nettoyage des donnéesRe: Concat la liste qui a la variable qui a changé dans une boucleVoyez si cela vous donnera ce que vous voulez
For( i = 1, i <= 6, i++,
bank_num = 6 * (k - 1) + i;
theBankValue = Char( bank_num, 10, 0 );
Eval(
Substitute(
Expr(
bank_pcs = {"BGB1BESS001_B" || bank || "_W", "BGB1BESS001_B" || bank || "_A", "BGB1BESS001_V" || bank ||
"_W"}
),
Expr( bank ), theBankValue
)
);
bank_tags_i = bank_pcs;
bank_tags = Concat( bank_tags, bank_tags_i );
);Re : Concater la liste qui a une variable qui a changé dans une boucleVous y étiez presque.Vous aviez l'evallist(bank_pcs) mais ce n'est pas ce que vous attribuez à bank_tags_i.Cela fonctionne pour moi.
NamesDefaultToHere(1);
bank_pcs = {"BGB1BESS001_B"||bank||"_W","BGB1BESS001_B"||bank||"_A","BGB1BESS001_V"||bank||"_W"};
For (i = 1, i<=6, i++,
bank_num = i; // changing this from yours because I assume you also have a k loop
bank = char(bank_num,10,0);
bank_tags_i = Evallist(bank_pcs);
if(i==1,
bank_tags = bank_tags_i // just if it isn't started yet. you're probably doing this in your k loop
, //else
bank_tags = concat (bank_tags, bank_tags_i)
)
);
bank_tags;Re: Concat la liste qui a la variable qui a changé dans une boucleou, si vous voulez une liste de listes :
k = 11;
bank_tags = {};
bank_pcs = {"BGB1BESS001_B" || bank || "_W", "BGB1BESS001_B" || bank || "_A", "BGB1BESS001_V" || bank || "_W"};
For( i = 1, i <= 6, i++,
bank_num = 6 * (k - 1) + i;
bank = Char( bank_num, 10, 0 );
bank_tags_i = Eval List( bank_pcs );
bank_tags[1 + N Items( bank_tags )] = bank_tags_i;
);
Show( bank_tags );
/*{{"BGB1BESS001_B61_W", "BGB1BESS001_B61_A", "BGB1BESS001_V61_W"},
{"BGB1BESS001_B62_W", "BGB1BESS001_B62_A", "BGB1BESS001_V62_W"},
{"BGB1BESS001_B63_W", "BGB1BESS001_B63_A", "BGB1BESS001_V63_W"},
{"BGB1BESS001_B64_W", "BGB1BESS001_B64_A", "BGB1BESS001_V64_W"},
{"BGB1BESS001_B65_W", "BGB1BESS001_B65_A", "BGB1BESS001_V65_W"},
{"BGB1BESS001_B66_W", "BGB1BESS001_B66_A", "BGB1BESS001_V66_W"}}*/
Si vous voulez une chaîne plutôt qu'une liste, essayez @vince_faller répondre avec Concater des éléments (bank_tags, "," ) pour obtenir les éléments de la liste dans une chaîne avec des virgules.
Re: Concat la liste qui a la variable qui a changé dans une boucleMerci! Cela fonctionne comme je m'y attendais.