|
Home → WINDEV 2024 → Extraire caractere par caractere, le contenu d'une variable chaine |
Extraire caractere par caractere, le contenu d'une variable chaine |
Started by jmdelhalle, Dec., 16 2017 6:58 AM - 7 replies |
| |
| | | |
|
| |
Registered member 11 messages |
|
Posted on December, 16 2017 - 6:58 AM |
Bonjour, Comment extraire caractère par caractère le contenu d'une variable chaîne et les stocker dans un tableau dynamique et de contenu variable pour arriver au résultat suivant :
MaChaine est une chaîne
Traitement MaChaine = "JEAN MICHEL"
Traitement Resultat Tab[1] = "J" Tab[2] = "E" Tab[3] = "A" Tab[4] = "N" Tab[5] = " " Tab[6] = "M" Tab[7] = "I" Tab[8] = "C" Tab[9] = "H" Tab[10] = "E" Tab[11] = "L" |
| |
| |
| | | |
|
| | |
| |
Posted on December, 16 2017 - 9:05 AM |
bonjour
extraitchaine(...) et taille (...) devraient te permettre cette extraction, en dimensionnant correctement ton tableau |
| |
| |
| | | |
|
| | |
| |
Registered member 946 messages Popularité : +102 (110 votes) |
|
Posted on December, 16 2017 - 9:53 AM |
Bonjour Voici une possibilité :
DataSource est une chaîne TabData est un tableau dynamiquedynamique de 0 caractères DataSource = "JEAN MICHEL"
Dimension(TabData, Taille(DataSource)) Transfert(&TabData, &DataSource, Taille(DataSource)) |
| |
| |
| | | |
|
| | |
| |
Registered member 280 messages Popularité : +22 (28 votes) |
|
Posted on December, 17 2017 - 2:21 AM |
Une autre variante :
DataSource est une chaîne = "JEAN MICHEL" TabData est un tableau dynamiquedynamique de 0 chaînes
LongeurPAS est un entier=2
TailleTAB est un entier=Arrondi(Taille(DataSource)/LongeurPAS,0) Dimension(TabData, TailleTAB)
POUR i=1 A TailleTAB PAS LongeurPAS TabData[i]=Milieu(DataSource,i,LongeurPAS) FIN
-- Cordialement. Je vous souhaite une bonne journée depuis le Vietnam.
Olivier. http://www.impulse-web.com |
| |
| |
| | | |
|
| | |
| |
Registered member 2,571 messages Popularité : +222 (260 votes) |
|
Posted on December, 17 2017 - 5:25 AM |
Ou tout simplement
DataSource est une chaîne = "JEAN MICHEL" TabData est un tableau de chaînes
POUR i=1 _À_ Taille(DataSource) TabData.Ajoute(DataSource[[i]]) FIN
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Registered member 11 messages |
|
Posted on December, 17 2017 - 8:10 AM |
Bonjour, Merci à tous pour vos réponses. Je vais tester ce matin Bon dimanche |
| |
| |
| | | |
|
| | |
| |
Registered member 946 messages Popularité : +102 (110 votes) |
|
Posted on December, 17 2017 - 12:14 PM |
Philippe SB a écrit :
Ou tout simplement
DataSource est une chaîne = "JEAN MICHEL" TabData est un tableau de chaînes
POUR i=1 _À_ Taille(DataSource) TabData.Ajoute(DataSource[[i]]) FIN
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique
Bonjour, Je ne trouve pas que ce soit une méthode simple et efficace, car c'esr une catastrophe en terme de temps d'exécution...surtout pour de grande chaines Tests fait avec DataSource de 400407 octets : - méthode avec la fonction Transfert -> +000000000000000 (ceci même avec 20 fois plus de caractères soit 7,6M octets) - méthode avec la fonction TableauAjoute ->+000000000000207 10s (avec 20 fois plus, on passe à plus de 42s !) |
| |
| |
| | | |
|
| | |
| |
Registered member 2,571 messages Popularité : +222 (260 votes) |
|
Posted on December, 19 2017 - 4:44 AM |
J'avoue que je n'aurais pas pensé au transfert d'octets...
Attention tout de même aux chaînes en UNICODE, quelque soit la méthode utilisée.
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | | | |
| | |
|