Salut,
J'essaie de renommer plusieurs noms d'en-tête de colonne qui consistent en une chaîne particulière, mais renommez-le avec la chaîne existante tout en supprimant la partie avant de la chaîne.
Exemple:
ABC_12::ABCD_AB_ABCDEF_A_ABCDE_X_X_A1_1234_ABCD_ TESTING_AB_TEST_ABCD_TESTED_AB_A1 --> TESTING_AB_TEST_ABCD_TESTED_AB_A1
Le nombre de caractère sur la première partie de la chaîne (orange) sera toujours cohérent, la 2ème partie de la chaîne variera de 1 à l'autre.
Qu'est-ce que j'ai fait jusqu'à présent est le suivant:
dt=current data table();
colList = dt << get column names( string );
For( i = 1, i <= N Items( colList ), i++,
If( Left( colList[i], 50 ) == "ABC_12::ABCD_AB_ABCDEF_A_ABCDE_X_X_A1_1234_ABCD",
Column( dt, colList[i] ) << Substr((colList[i],50) ), // this is the part where i m stuck.
)
);
J'ai essayé d'utiliser Trim & Left. Mais cela ne fonctionne pas. J'ai une idée d'utiliser "set name" pour prendre une chaîne après le 50e caractère. Mais doit avoir une meilleure façon de faire cela.
Vous devez utiliser
<< set name
pour changer le nom de la colonne
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( string );
For( i = 1, i <= N Items( colList ), i++,
If( Left( colList[i], 48 ) == "ABC_12::ABCD_AB_ABCDEF_A_ABCDE_X_X_A1_1234_ABCD_",
Column( dt, colList[i] ) << set name( Substr( colList[i], 49 ) ), // this is the part where i m stuck.
)
);