Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

transformer une chaine de caracteres en tableau 1d

Résolu !
Accéder à la solution


Bonjour.

 

Je cherche à convertir une chaine de caratères séparé par des espaces en tableau 1D ( de 0 à N ). Par exemple dans un champ ( string control ) sur ma face avant je tape " 1 6 12 24" et je voudrai obtenir un tableau 1D avec dans la case 0 : 1; case 1 : 6; .... n-1 :24.

 

Ce tableau me sert ensuite dans une boucle FOR et je peut avoir besoin jusqu'a 70 cases dans mon tableau. Ce nombre de case est variable et est définit en fonction du nombre d'espace entre caractères. On peut aussi remplacer les espaces par des ";" ou autre chose du moment que chaque caractère soit dans une case séparé des autres et en respectant l'ordre de départ.

 

J'ai essayé par d'assemblage avec les clusters,tableaux et " utilitaires string " mais je n'arrive pas à faire se que je veux. J'ai créé un tableau classique,1D avec 6 cases, dont chaques case est commandée par un " numéric control "et mon applicatio finale fonctionne parfaitement. Avec 70 controls numériques, ma face avant ressemblerait plus à rien et si une case est vide, mon application ne fonctionnera plus ou pas corectement.

 

Ces valeurs numériques sont indexés par ma boucle FOR et transformés en " STRING " pour une commande VISA...

 

Merci, toutes idées est bienvenue.

0 Compliments
Message 1 sur 12
6 793 Visites

Salut,

 

Essaye ça:

 

Sentence2Words.jpg

 A+

 

P.S : en effet 70 contrôles distincts du même type, sur la même face avant, et qui plus est, des contrôles qui ont un lien entre eux en terme de fonctionnalité, c'est à éviter Robot heureux

Message Edited by Mathieu Steiner on 06-17-2009 04:15 PM

0 Compliments
Message 2 sur 12
6 788 Visites
Solution
Accepté par l'auteur du sujet johannb

Bonjour,

 

Ou ça.

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

0 Compliments
Message 3 sur 12
6 785 Visites

Julien,

 

Même si le risque ici n'est pas élevé, méfie toi des boucles while et des auto-indexations. Généralement, il est préférable d'allouer toi même le tableau avant la boucle, puis de remplacer les éléments du tableau à chaque tour de boucle. Ca évite à LabVIEW de passer du temps à réallouer de la mémoire.

 

A+

0 Compliments
Message 4 sur 12
6 777 Visites
J'ai fait ça dans ma solution de simplicité ... Merci du conseil ! J'y veillerai à l'avenir.
Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

0 Compliments
Message 5 sur 12
6 772 Visites

Merci à vous 2 et surtout pour la rapidité ^^

 

Julien V ta solution marche impeccable pour mon application. Dans " expression régulière " je suppose  que le " /s " est l'opérateur pour l'espace. Pour un " ; " c'est " /; " ? Sinon comment compter le nombre de caractère entré ? En utilisant ton registre à décalage ?

 

Mathieu S j'arrive pas à tester ta solution. Quel est l'utilitaire câblé en bas à gauche du "spreadsheet string to Array " qui a pour nom " array type (2D Dbl )" J'arrive pas à le trouver dans ma palette.

 

Encore merci.

0 Compliments
Message 6 sur 12
6 770 Visites

Re,

 

Un simple tableau de chaînes de caractère.

 

A+


0 Compliments
Message 7 sur 12
6 767 Visites
C'est bon j'ai testé ta solution est ça marche aussi. Laquelle des 2 est la plus fiable ?
0 Compliments
Message 8 sur 12
6 760 Visites

Re,

 

Les deux sont "fiables"

Celle que j'expose est meilleure si ton tableau de sortie est très grand.

 

A+


0 Compliments
Message 9 sur 12
6 758 Visites

Le tableau peut varier de 8 à 70 cases qui correspondraient aux voies mesurés par ma centrale d'aquisition. Mais si les gros tableaux peuvent poser problème, je pense diviser ce nombre totale en 4 fonctions distinctes.

 

Merci de vos réponses. Tout cela m'a bien aidé pour mon programme.

0 Compliments
Message 10 sur 12
6 754 Visites