[LV 8.6] Rechercher expression dans une chaîne

Bonjour,
j'ai un fichier .cfg dont j'aimerais récupérer 2 caractéristiques (R et L). Le fichier .cfg est un fichier texte en fait et voici son contenu :
MotorType = Stepper
MotorPositionFeedback = IncrementalEncoder
ImaxM = 1.5
In = 1
NoMotorSteps = 400
NoMicroStepsPerStep = 256
K = 0.4
R = 5.2653
L = 0.0054936
No_encoder_lines = 500
isMotorTemperatureSensor = 0
Motor_TempSensor_Type = 0
isEncoder = 0
et j'aimerais avoir sur ma face avant :
R = 5.2653
L = 0.0054936
Quelle est la fonction que je dois utiliser ?
Merci d'avance !

Bonjour, je me permets une remarque. Vous cherchez « R =  », donc en réalité « R\s=\s » (\s étant l’espace) mais si vous avez « 2 caractères espace » cela ne fonctionne plus. Je pense qu’il serait plus judicieux d’ouvrir le fichier un chaîne de caractères (comme aujourd’hui), de le convertir un tableau 2D de chaines de caractères en utilisant le séparateur « = » pour séparateur de colonne, de chercher l’index caractère « R » dans la première colonne et d’utiliser cette valeur pour indexer la deuxième colonne.
Luc Desruelle | Voir mon profil | LabVIEW Code & blog
Co-auteur livre LabVIEW : Programmation et applications
CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

Similar Messages

  • Nombre d'occurrence dans une chaîne de caractère

    Bonjour,
    Voila j'aimerais construire un VI permettant de me donner le nombre de fois ou je trouve le caractère que je specifie, dans une chaîne de caractère.
    En vous remerciant.
    Cordialement.
    Luc
    Résolu !
    Accéder à la solution.

    "on" a discuté de "tout ça" avec altenbach sur le forum anglophone.
    J'ai voulu "tester" avec une petite routine en assembleur et un appel DLL.
    (recherche du nombre d'occurrences d'un caractères dans une chaine)
    à ma grande surprise, je n'arrive pas à faire "mieux" en assembleur !
    Je suis très étonné ! Peut-être LV prend-t-il un "temps fou" dans sa procédure d'appel à une DLL.
    Je ne vois que ça.
    clic ici
    (mon dernier post)

  • Supprimer un élément dans une chaîne déroulante

    Bonjour,
    Alors voici mon problème : avez-vous une idée de la façon de supprimer un élément dans une chaîne déroulante ? Pour l'instant, j'arrive à seulement ajouter des éléments, mais je souhaiterais à terme pouvoir en supprimer et même les modifier, donc si vous avez une idée je suis preneur ,
    Florian
    Résolu !
    Accéder à la solution.

    Merci pour votre réponse,
    j'ai utilisé ce noeud de propriété, mais lorsque je veux supprimer un élément du tableau, je dois indiquer l'indice dans lequel la chaîne se trouve, il existe d'ailleurs une fonction qui permet de le faire. Le problème c'est que je ne récupére pas la chaîne mais la valeur de la chaîne qui est différente, je veux simplement récupérer la chaîne lorsque je la choisi dans la chaîne déroulante,
    Cdt,
    Florian

  • Recherche dans une chaine (un petit défi ?)

    Recherche dans une chaine du nombre d'occurences d'un caractère unique ou d'une sous-chaine (plusieurs caractères)
    en pièce jointe, un Benchmark reprenant différentes méthodes. (chaine de départ : 50e6 caractères)
    y est repris ma méthode avec un code en assembleur et l'appel du dit code dans une dll.
    Mon code (ASM_DLL) supporte la recherche d'un caractère unique ou d'une sous-chaine.
    sous-chaine : "abc"
    SpreadSheat - 504ms
    Replace - 428ms
    Count (search 1D array) : ne fonctionne pas si plus de un caractère.
    ASM_DLL - 71ms
    caractère unique : "a"
    SpreadSheet - 639ms
    Repalce - 435ms
    Count (search 1D array) - 102ms
    ASM_DLL - 78ms
    L'outil de mesure est fourni, soit le code benchmark ci-joint.
    Vous pouvez donc prendre les temps "suivant" votre machine, et établir les rapports de comparaison.
    Mis à part la méthode pour générer la chaine de 50e6 caractères, le reste du code est "from altenbach"
    En ce qui me concerne:
    ASM_DLL / Replace = 71ms/428ms = 0,16
    objectif : trouver le nb d'occurences de la sous-chaine "abc" dans une chaine de 50e6 caractères
    (la chaine de départ est générée aléatoirement avant le start du Bench)
    Qui peut trouver un code plus rapide que la méthode "Replace" avec un coefficient inférieur à 0,16 ?
    Quelqu'un pour relever le défi ? .. un petit 0,15 ?

    bon ... et bien j'ai joué tout seul
    aucun passionné d'optimisation et/ou d'assembleur su le forum ?
    Je suis descendu à 0,14 (par rapport à la méthode "replace")
    La métode "replace" (code LV) est la plus rapide pour une sous-chaine comportant plusieurs caractères.
    Pour un caractère unique, la métode la plus rapide est "Count" (et "Count_parallel")
    ("Count" fonctionne uniquement pour la recherche d'un caractère unique)
    Ma dll prend les deux, un caractère unique ou une sous-chaine quelconque. (comme "replace" ou "spreadsheet")
    J'ai peaufiné l'algorithme et le code au maximum, un 0,12 ou même un 0,13 me semble impossible. (sans parallelisme)
    Si vous avez de très longues chaines à scanner, servez-vous de cette dll, ça va vite

  • Écriture dans une base de données Access

    Bonjour,
    J'utilise labview 8.5 avec le Toolkit NI LabVIEW Database Connectivity, et comme base de données Access 2007.
    Ma base de données est déjà créer, et je doit lui envoyer différentes données. J'ai créer un simple vi pour écrire une chaîne dans cette base de données mais j'ai une erreur : 
    L'erreur -2147467259 s'est produite à : Cmd Execute.vi->DB Tools Insert Data.vi->database.vi
    Raisons possibles :
    Exception occured in Microsoft JET Database Engine: Le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination. dans Rec Create - Command.vi->Cmd Execute.vi->DB Tools Insert Data.vi->database.vi
    En utilisant les exemple de labview j'arrive à lire la base de données, mais je voudrais écrire.
    Merci
    Mickaël
    Pièces jointes :
    database.vi ‏16 KB

    Bonjour,
    Tout d'abord merci d'avoir posté sur le forum National Instruments. Poour votre problématique, je vous conseille de regarder l'aide détaillée LabVIEW de la fonction DB Tools Insert Data qui vous donnera toutes les informations nécessaires pour cette fonction.
    Dans votre cas, la data que vous voulez insérer n'est pas du type cluster. Or dans ce cas, le VI insert les données dans la colonne que vous spécifiez, entrée que vous n'avez pas spécifiée. Votre erreur doit donc venir de ce point.
    N'hésitez pas à regarder les exemples à la fin de l'aide détaillée qui vous aideront dans la mise en place de votre VI,en particulier l'exemple Sixtypes Insert VI.
    Cordialement
    Mathieu B
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Forum Aéronautique, Spatial et Défense. Avec la participation exceptionnelle de Bernard DUPRIEU, Res...

  • Insérer une variable dans une boite de dialogue

    Bonjour,
    Je souhaite insérer une variable (valeur extraite d'un tableau Excel) dans une boite de dialogue. J'ai vu qu'on pouvait modifier le VI Express de la boite de dialogue mais je ne vois pas comment insérer cette variable dans le message d'entrée.
    D'avance merci

    Hello,
    First, I think that you can get more help if you write in english. Because i didn't understand completly your question.
    What you're trying to do it's simply what's in the attached picture? it's not all the code. Simply the read cell and the dialog.
    Software developer
    www.mcm-electronics.com
    PS: Don't forget to rate a good anwser ; )
    Currently using Labview 2011
    PORTUGAL
    Attachments:
    excel_dialolog.JPG ‏5 KB

  • Désordonner une chaîne

    Bonjour, je suis un simple étudiant en Bac+2 et j'ai un petit projet à présenter mais j'ai un problème de taille au démarrage :
    Je voudrais générer une chaîne de x caractères comprenant uniquement les caractères A, T, C, G. Jusque là, rien de bien compliqué, je me suis dit A=0 T=1 C=2 G=3 et je les génère par le hasard.
    Là, ou ça se corse, je voudrais avoir un certain pourcentage de C et G par rapport au total des caractères et là je suis bloqué.
    Admettons que je veule 60% de caractères C et G dans ma chaîne de longueur 20 par exemple. J'ai eu l'idée de générer une chaîne de 0.6*20=12 caractères pour les C et G et du coup 8 pour les A et T et de les concaténer et voilà le problème, j'obtiens :
    CGGGCGCGCCGGAATTTATA
    Je voudrais que ces caractères soient complètement mélangés ( ex : CCATGCGAGACTAGGGTTCG ) pour la suite de mon programme.
    Comment faire intervenir le désordre avec cette chaine ?
    Et là, je sèche, j'ajoute que je débute en Labview et que mon prof n'a pas su me répondre non plus, je m'en remets donc à vous :/
    Merci d'avance à ceux qui répondront !

    Bonjour CapitaineNemo,
    Voilà une solution qui génère une chaîne de caractère à la taille souhaitée et qui contient une proportion paramétrable de C et G.
    Dans mon VI, je suis parti du principe qu'on voulait autant de A que de T et autant de C que de G mais qu'on peut choisir la proportion de C+G par rapport à A+T. Lors des divisions pour calculer les nombre de lettres, j'ai priviliégier le A et le C en faisant la division entière et en ajoutant le reste au A et au C.
    Ensuite on vient mélanger le tableau généré avec la fonction donné par @altenbach.
    Je te laisse nous dire si ca te convient.
    Si c'est bon pour toi, pense à marquer ta question comme résolue et a remercier les contributeurs.
    .mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
    Maxime R.  
      CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié  
      CLAD - Certified LabVIEW Associate Developer   
    Pièces jointes :
    Chaine melangee.vi ‏15 KB

  • Priorité dans une file d'attente

    bonjour
    je cherche un moyen afin de définir une priorité dans une file d'attente.
    j'ai une boucle qui envoie des éléments dans une file d'attente et deux autres qui les traitent en parallèle, mon soucis est de pouvoir décider dans quel boucle de traitement est envoyé mon élément.
    je joint un exemple pour se faire une meilleur idée !
    merci de votre aide
    Il a LabVIEW, il a tout compris !
    Pièces jointes :
    Sans titre 1.vi ‏15 KB

    Salut,
    Une idée, au lieu de transmettre juste une information, est de transmettre en plus un destinataire sous la forme d'un énuméré.
    La file d'attente tranporte donc des clusters (association d'éléments) contenant un énuméré de destination et une chaîne de caractère correspondant aux données.
    Dans tes boucles consommatrices, lis l'élément dans la file d'attente (sans le supprimer), et si la boucle doit le traiter, lit le en le supprimant.
    Ca donne un code dans le genre.
    A+
    Edit: VI en PJ, car il semble qu'il y ai un bug (au moins d'affichage dans le png au dessus au niveau du type d'éléments à câbler lors de la création de la file d'attente)
    Mathieu Steiner, Test System Engineer, Safran Engineering
    CLD, ISTQB
    Pièces jointes :
    Sans titre 1.vi ‏20 KB

  • InDesign CS5 - Pdf interactif - texte dans une fenêtre flottante

    Bonjour,
    Je suis en train de réaliser un pdf interactif dans InDesign CS5, j'ai intégré une vidéo dans une fenêtre flottante sans soucis.
    Je souhaite faire la même chose avec du texte (quelques lignes de texte et un bouton "lire la suite" qui ouvrirait un texte simple dans une fenêtre flottante) mais je n'y parviens pas ?
    D'avance merci.

    Si votre pdf est bien lu dans adobe reader, vous pouvez utiliser les fonctions avancées du pdf interactif (nécessitent Acrobat Pro) qui consistent à afficher/masquer un calque spécifique au clic d'un bouton. Mais cela nécessite autant de calques Acrobat que de textes…

  • Mettre une photo dans une forme illustrator

    Bonsoir,
    J'ai un problème!
    J'ai fait une forme sur Illustrator: des anneaux olympiques en gros , avec un peu d'extrusion en 3D pour que ça fasse joli! jusque là pas de pbs
    Mon but est de mettre des photos dans les anneaux et d'écrire dessus.. pour cela j'ai mis ma forme sur photoshop mais à partir de là impossible .. je ne sais pas comment faire!
    J'ai essayé de tout faire sur photoshop mais la forme rend vraiment pas terrible par rapport à ce que j'ai fait sur Illustrator
    Quelqu'un pourrait-il me guider? je ne sais même pas s'il faut que je l'insère en tant que smart object, pixels, path ou shape layer au début..
    Merci beaucoup!!!
    je mets mon fichier ai en pièce jointe si vous voulez vous faire une idée
    Bonne soirée
    doud05

    Bonjour!
    Si vous voulez insérer des photos dans les parties intérieures blanches,
    vous devez utiliser les masques (d'écrêtage dans Illustrator, de fusion dans Pshop).
    Pour cela vous devez dupliquer les formes blanches seulement; ces formes seront utilisées comme masques.
    Comme elles «n'existent pas» vectoriellement parlant, il faut que vous sélectionnez le tout puis,
    menu Objet » Décomposer l'aspect.
    Par la suite, vous pourrez sûrement obtenir les formes indépendantes en utilisant les pathfinders.
    Mais c'est un travail assez long, et je ne garantis pas la réussite, surtout si vous n'êtes pas habiles avec les Pathfinders.
    Par contre dans Pshop c'est simple (le seul hic c'est que les dégradés sont moins visibles).
    Il s'agit de copier-coller votre image illustratror ou de la sauvegarder en .eps et de l'ouvrir dans Pshop en CMJN et non en RVB comme j'ai fait.
    Vos photos devront être en CMJN aussi.
    Ensuite, vous remplissez de noir 100% toute l'illustration dans Illustrator et vous sélectionnez le tout, puis copiez-collez dans une nouvelles couche de pshop.
    Attention, si elle se copie dans un calque, il s'agit de repartir du calque pour copier-coller dans la couche et jeter le calque inutile.
    Par la suite vous faites des copies de la couche, pour isoler sur chaque, les parties blanches que vous voulez utiliser comme masques, en remplissant de noir le reste. Puis inverser pour obtenir un élément noir sur fond blanc.
    Chacune de ces couches serviront de masque.
    J'ai fait un exemple avec le premier masque de votre illustration; je vous indexe deux photos écrans, la première montrant les couches, la deuxième montrant un calque avec masque.
    Il se peut qu'il y ait un léger décalage avec les anneaux en couleur mais en agrandissant beaucoup vous pouvez déplacer légèrement l'image et son masque.
    Bon travail!  ;o-)

  • Lancer un executable dans une fenêtre de mon VI

    Bonjour,
    Je souhaite lancer un executable dans mon VI, comme s'il faisait parti de mon code (pas à l'exterieur)
    Pour simplifier les choses, mon programme fera la liste de tous les executables disponibles dans un repertoire défini puis les proposera dans une boite à onglet
    Ces executables sont des SFP de ressource
    Ainsi je me retrouve avec un applicatif qui contient tous les SFP que j'ai de disponible (je ne pense pas en avoir plus de 10 sur un banc de test)
    Pour la gestion de la boite à onglet j'ai trouvé et ca marche bien
    Il ne me reste plus qu'a lancer les executables dans les différentes pages et là, je ne vois pas comment faire
    je sais que l'on peux lancer des executables à côté, mais cela ne m'interesse pas, je les veux dedans
    est-ce faisable ?
    D'avance merci
    Cordialement
    Résolu !
    Accéder à la solution.

    Hello,
    Attention, cette méthode était valable avant, et sur Windows XP (ou antérieur) : 
    - http://digital.ni.com/public.nsf/allkb/8545726A00272EB0862571DA005B896C?OpenDocument
    Pour les raisons citées, désormais on utilise plutôt les bibliothèques empaquetées. Elles sont compilées, donc pas de risque d'avoir de fuite de code :-)
    Un très bon début avec cette architecture :
    - https://decibel.ni.com/content/docs/DOC-19176
    Alternative moins crédible : appeler les exe par la fonction "System Exec", et jouer avec les fonctions Windows (au fond de user32.dll) pour que la fenêtre des exe soit une fenêtre enfant du VI appelant...
    A+
    --Eric
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Comment ouvrir un fichier enregistré dans une version plus récente d'Indesign

    Bonjour à tous,
    J'ai crée mon CV sous Indesign CS8.0 (version Mac OSX). J'ai voulu le modifier hier mais la version d'essai était expirée depuis quelques jours. J'ai télécharger la version Indesign CC (toujours en version d'essai) pour pouvoir modifier mon CV, et au moment d'ouvrir le fichier, ce message apparait :
    "Impossible d'ouvrir le document "CV" car il a été enregistré dans une version plus récente d'Adobe indesign (CS8.0). Vous devez utiliser cette version ou une version ultérieure pour ouvrir le fichier."
    Or je n'arrive pas à télécharger cette version...
    Pouvez-vous m'aider ? Merci d'avance !
    Pauline

    Bonjour,
    J'ai crée mon CV sous Indesign CS8.0
    Ca n'existe pas, il doit s'agir de InDesign 8, également connu sous le nom de InDesign CS6.
    (Oui je sais, ce n'est pas simple).
    J'ai télécharger la version Indesign CC
    Or je n'arrive pas à télécharger cette version...
    Tu dis une chose et son contraire, laquelle est la bonne ?
    Si tu as InDesign CC il doit forcément ouvrir un fichier CS6, sinon c'est que ce n'est pas InDesign CC.
    Assures toi de ne télécharger que depuis le site d'Adobe, sous peine de te retrouver avec un logiciel obsolète, vérolé, etc.

  • Afficher les images d'un repertoire à tour de rôle dans une même fenêtre image

    Bonjour à tous,
    Je voudrais afficher les images d'un repertoire à tour de rôle dans une même fenêtre image. Quelqu'un peut-il m'aider. Merci d'avance.

    Bonjour,
    Je vous joins un VI "clé en main" et je pense que ça répond à votre attente...
    Dans le dossier, les deux photos doivent se placer sur le disque C:\.
    Le VI permet l'affichage de ces photos... On y règle la temporisation et le nombre de photos à afficher.
    Cordialement
    David D.
    Ingénieur d'Applications
    NI France
    Attachments:
    Picture.zip ‏999 KB

  • Modif de valeurs pour un sousvi dans une boucle while

    Bonjour, j'ai une question qui a surement l'air un peu idiote mais j'essaie de modifier une frequence de sinusoide en utilisant un sous vi. Ce sous vi est dans une boucle while et helas il ne prend en compte que la premiere valeur au demarrage du vi. Comment je peux modifier les vi de facons a ce que je puisse modifier la valeur de la frequence a mon gre. D'avance merci, je joins un projet exemple de ce que j'aimerais faire, merci de votre aide
    Pièces jointes :
    essai.lvproj ‏8 KB

    Bonjour,
    Vous pouvez utiliser les références pour contrôler votre sous-VI. Voici un exemple : Using Control References to Pass Access of Front Panel Controls to SubVIs
    Cordialement,
    Charlotte F. | CLAD
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> "Du 11 octobre au 17 novembre, 2 sessions en parallèle : bien démarrer - approfondir vos connais...

  • Lire le contenu d'une cellule dans une feuille Excel

    Bonjour,
    Dans un fichier Excel, j'ai plusieurs feuilles, dans une des feuille (par exemple feuille: Dispersion) j'ai une cellule qui se situe à la colonne 3 et la ligne 5, cette cellule contient une valeur (par exemple 500). Donc depuis un VI, comment je peux lire le contenu de cette cellule pour sortir la valeur 500 ?
    Si je n'ai qu'une feuille je peux utiliser la fonction "Read From Spreadsheet File.vi" pour lire dans un fichier de format txt, mais ici j'ai une fichier Excel avec plusieurs feuilles dedans, comment je peux lire une cellule dans une feuille précise? Merci pour votre éclairage . Bon week end à vous tous.
    Solved!
    Go to Solution.

    Bonjour, Jetez un oeil sur ce lien.
    http://zone.ni.com/devzone/cda/epd/p/id/3409
    CLA 2014
    CCVID 2014

Maybe you are looking for

  • Line item clearing

    Hello Experts :   Is F.13 will work for Line item clearing ?

  • Portal content TAB(workset) is not apperaing

    Hi, I was working and suddenly i found that Portal Content Tab (workset) disapper. How can i get back the same??? It means in Content Admin role the Portal Content workset removed. Thanks, Anumit

  • How can i impement some simple menu bar into this code ?

    Hello all. I have a problem with my program. I wanna add a simple menu bar, but i don't have any idea how to do it. Here is code of my program: import java.awt.Menu; import javax.swing.event.MenuListener; import javax.xml.bind.annotation.adapters.Xml

  • Having problems installing CS4

    The error code i get reads as follows.... Suite Shared Configuration CS4 Error: Error 1603. Error 1310. Error writing to file: C:\Windows\installer\2c936.msi.      Verify that you have access to that directory. Thats the error I get when trying to in

  • ClickOnce and FireFox

    We have a WPF deployed to IIS via Click Once and is accessible via Internet Explorer. However when we try to access/launch the same from Firefox it actually downloads the .application file and executing the same results in an error saying the manifes