le 06-17-2009 08:54 AM
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.
Résolu ! Accéder à la solution.
06-17-2009 09:13 AM - modifié 06-17-2009 09:15 AM
le 06-17-2009 09:16 AM
le 06-17-2009 09:29 AM
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+
le 06-17-2009 09:41 AM
le 06-17-2009 09:50 AM
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.
le 06-17-2009 09:52 AM
le 06-17-2009 10:11 AM
le 06-17-2009 10:18 AM
le 06-17-2009 10:25 AM
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.