Problème recherche chaine caractère
Bonjour,
Je suis en difficulté avec les fonctions de recherches des chaines et j'espère que vous pourrez m'aider.
Les fonctions ne trouvent pas certaines chaines de caractère alors qu'elles sont bien présentes.
1 - Exemple qui fonctionne :
L'offset après correspondance = 32 après l'exécution.
2 - Exemple qui ne fonctionne pas :
Dans ce cas, l'offset après correspondance = -1 = chaine non trouvée...
Quelqu'un sait pourquoi le deuxième cas ne fonctionne pas ?
Merci d'avance,
Thibaud.
Résolu !
Accéder à la solution.
Salut,
Je complète la réponse de Bilsix.
Je t'invite à consulter l'aide sur le vi Rechercher une expression et Caractères spéciaux pour la fonction Rechercher une expression.
Remarque: Si vous souhaitez inclure des caractères spéciaux dans la chaîne recherchée, vous devez entourer chaque caractère spécial de crochets. Par exemple, pour rechercher la chaîne hz+, saisissez hz[+] dans expression régulière. Sinon, LabVIEW utilise le caractère spécial pour affiner la recherche.
A+
Reg
Similar Messages
-
Problème recherche VI au chargement
Bonjour,
Cela fait plusieurs version de Labview que j'utilise de la v6 à la v2011 actuellement et je me retrouve confronté toujours au problème suivant:
Lorsque je charge un projet, contenant plusieurs VI dans plusieurs dossiers, il arrive que Labview recherche des VI avec la bonne arborescence de chargement mais ne les trouve finalement pas.
Il faut que j'aille les chercher manuellement avec la même arborescence pour qu'ils soient pris en compte.
exemple:
J'ai pourtant pris soin de paramétrer dans les options de Labview, les dossiers "racines" dans lesquels sont susceptibles de se trouver tous les VI concernés par mes différents projets, mais rien n'y fait:
Vous arrive-t-il d'être confrontés au même problème? Avez-vous une solution y palier?
Merci par avance de vos réponses.
Cordialement,
JP
Julien P.
Certified LabVIEW Developer
Résolu !
Accéder à la solution.Bonjour Lunik,
Effectivement, c'est ce que je venais de tester, il faut rajouter le \* en fin de dossier pour que toute l'arborescence soit prise en compte pour la recherche.
Merci
JP
Julien P.
Certified LabVIEW Developer -
Choisir des données à partir d'un menu déroulant (ring)
Bonjour,
Dans le cadre de mon projet et sur base d'un fichier avec des données enregistrées de la manière décrite ci-dessous,
Date/Time V_ACM_Generator [m³/h] Q_ACM_Generator [kWh] P_ACM_Generator [W] T_ACM_Generator flow [°C]
1/05/2009 00:00 0 0 0 40,78
1/05/2009 00:05 0 0 0 40,61
1/05/2009 00:10 0 0 0 40,48
j'aimerai arriver à établir un graphique journalier des données via
un choix d'utilisateur de la date, et du nom de la sonde. Je ne sais pas si je suis assez
clair, sinon n'hésitez pas à demander que je réexplique
J'arrive à récupérer toutes les valeurs Date/Time dans un menu déroulant, mais j'aimerai que le menu déroulant n'affiche que la date seule (donc sans le '/Time'), et ce en evitant les redondances vu qu'il y a 288 fois la même donnée "Date" par jour.Bonjour,
Pour donner quelques pistes de recherche:
1) pour n'avoir que la date, si elle est bien au format écrit, il suffit d'utiliser la fonction Match Pattern (rechercher une expression je crois en francais) pour rechercher le caractère espace. Les sorties renvoient les chaines de caractères d'avant et d'après, ici la chaine d'avant correspondra à la date. Ce traitement peut se faire dans une boucle For.
2) pour ce qui est de la redondance, à chaque itération de la boucle, il faut regarder si la date obtenue est déja dans le tableau sinon l'y ajouter. et continuer à l'itération suivante (en passant le tableau avec un registre à décalage).
Cordialement,
Simon D.
CLA | Certified LabVIEW Architect
CTA | Certified TestStand Architect -
J'utilise le driver tktds1k2k pour oscilloscope tektronix TDS2002 avec la laiason série. Je ne peux obtenir l'acquisition complète d'un signal sinusoîdal;
Il semble qu'il y ait problème sur le caractère terminal de la lecture, celle ci se terminant toujours à la même valeur. Je ne trouve pas de solution.
Quelqu'un pet-il m'aider?
Merci d'avance.
ct3ct3 a écrit:
J'utilise le driver tktds1k2k pour oscilloscope tektronix TDS2002 avec la laiason série. Je ne peux obtenir l'acquisition complète d'un signal sinusoîdal;
Il semble qu'il y ait problème sur le caractère terminal de la lecture, celle ci se terminant toujours à la même valeur. Je ne trouve pas de solution.
Quelqu'un pet-il m'aider?
Merci d'avance.
ct3
Je vous remercie pour l'intérêt porté à mon pb.
L'oscilloscope TDS2002 a les options suivantes:9600 bauds, hardflagging, LF et parité paire.
Le PC (systême d'exploitation XP):9600bauds, 8bits, paire, bits d'arrèt 1 et flux matériel (ou XON/XOFFqui donne le même résultat).
J'utilise visa 260 et LABVIEW7.0.et getting started.vi
Un signal carré est lu correctement avec 2500pts de lecture( la valeur de lecture n'est jamais lue.
Avec un signal sinusoïdal le pb est systématiquela valeur du dernier échantillon étant 11(dans le readwaveform.vi waveform points).
Il me semble que le pb se situe dans initialyse.vi et dans read.vi au niveau des termchar en, termchar, asrl end mais j'ai beau effectuer des modifs rien n'y fait le pb subsiste.
Merci d'avance pour la réponse.
ct3 -
URGENT SVP récupérer le numéro d'une ligne
bonjour
comment récupérer dans labview le numéro d'une ligne d'un caractère qui existe sous Excel
merci d'avanceBonjour,
Je pense que l'exemple ci joint devrait convenir à vos besoin. Celui-ci permet de rechercher un caractére (ou une valeur) dans un classeur excel, et de fournir le numéro de la ligne et la colonne de ce caractére.
Cordialement,
Christophe S.
FSE East of France І Certified LabVIEW Associate Developer І National Instruments France
Attachments:
Find_data_in_sheet.vi 51 KB
test.xls 14 KB -
Problème avec caractère Chinois
Bonsoir à tous,
voila mon problème:
J'ai réalisé un programme, sous Labview 8.6, (en executable avec le setup bien sur:-) pour nos partenaires à l'export.
Je n'ai pas eu de problème, à part avec notre partenaire Chinois. En effet, le caractère °C a été interprété est affiché avec un caractère Chinois (voir image jointe)
Question: Comment je peux faire pour que ma valeur, en °C, s'affiche bien en °C??
Par avance, merci,
Romain
Pièces jointes :
pb caractere chinois.JPG 3 KBBonjour,
Merci pour votre réponse.
effectivement, je vais écrire une chaine de texte (de type degC au lieu de °C pour un problème de place sur l'affichage :-)
C'est vrai que par esthétisme, j'aurais préféré °C...
Par contre, est ce que quelqu'un sait pourquoi il y a ce problème à l'affichage?
ils n'ont pas le même formalisme de table ASCII (ça, c'est pour ma curiosité...)?
Si quelqu'un connait la réponse, cela me permettrai de me coucher moins bête ce soir....
Merci -
Enregistrer une chaine de caractère dans un fichier excel
Bonjour,
Je réalise une programme qui:
1) récupère les valeurs de courant grâce à un instrument de mesure, et enregistre ces valeurs chaque seconde dans un fichier excel;
2) reçoit des logs à intervale irrégulier via le port série et les enregistre également dans un second fichier excel.
La première partie fonctionne très bien mais je me retrouve face un problème pour la seconde: les logs étant des chaines de caractère, je ne trouve pas comment les enregistrer dans un fichier excel. Quelqu'un aurait il une idée? Il est très important que je puisse enregistrer l'heure à laquelle les logs ont été reçus afin de la comparer avec mes valeurs de courant.
Pour la premiere partie, j'ai utilisé l'élément "Ecrire dans un fichier de mesures" qui correspond parfaitement à mes besoins.
Merci par avance pour votre aide !
Résolu !
Accéder à la solution.Bonjour,
Vous pouvez utiliser le vi "écrire dans un fichier tableur" pour écrire dans un fichier .xls.
Ou, vous pouvez écrire dans un tableau et exporter votre fichier à la fin de votre programme dans excel.
En règle général, il est préferable d'écrire dans un tableau et d'exporter le fichier à la fin, que vous utilisez l'exemple 1 ou 2. En effet, cela vous évite d'ouvrir le fichier et de le refermer un grand nombre de fois.
Cordialement,
Jovan N. - Application Engineering
Pièces jointes :
exemple_ecrire_dans_fichier_exel.zip 14 KB -
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 -
Chaine non reconnue par la fonction "Rechercher une expression"
Bonjour,
J'ai un problème avec la fonction "Rechercher une expression", elle ne reconnait pas la chaine que je recherche qui est "<\FT" et je n'arrive pas à comprendre pourquoi.
J'ai testé avec un simple VI que je joins, la fonction "Remplacer une expression" fonctionne quand à elle très bien, je vous laisse en juger par vous même sur les images.
C'est assez étonnant...
Pièces jointes :
RechExpr.jpg 18 KB
RechExprDiag.jpg 36 KBL'exemple n'a pas marche.
Cordialement,
Simon D.
Cordialement,
Simon D.
CLA | Certified LabVIEW Architect
CTA | Certified TestStand Architect
Pièces jointes :
char.vi 8 KB -
Problème de recherche de mise à jour
Bonjour,
J'ai un i phone 4. Depuis quelque temps je sais que la mise à jour du logiciel est passé à la version IOS 8. Le problème c'est que quand je fait une recherche de mise à jour sur itune ou sur mon iphone celui-ci me dit que mon logiciel est à jour sachant que je suis restée a la version IOS 7.1.2.... Pourriez-vous m'aider ? Je suis vraiment perdue.
Merci d'avance
KimiwéSalut, utilisez l'outil de CC pour faire une désinstallation propre et réinstaller le logiciel. voir http://helpx.adobe.com/creative-suite/kb/cs5-cleaner-tool-installation-problems.html
Merci,
Preran -
La fonction que j'utilise pour importer mes fichiers est la suivante
On OuvreDisque(FichierAEcrire,FichierOuvrir)
aquote = new(xtra "fileio")
openFile (aquote , FichierOuvrir, 1)
Member(FichierAEcrire).text = aquote.readFile()
aquote.closeFile ()
End
Si j'enlève les caractères accentués le fichier se mets dans le member
Si vous avez une solution Merci de me l'indiquer
[email protected]oui c'est ce que j'ai fais et je suis en train de faire les modifs dans mon programme pour le tester et voir si mon problème est résolu ou non
voici la fonction FGV que j'ai fait
Pièces jointes :
Variable globale fonctionnelle XML Génération.vi 24 KB
Actions XML génération.ctl 5 KB
FGV XML.zip 22 KB -
Récupérer données d'une chaine de caractères (CVI)
Bonjour,
je travaille sur LabWindows CVI.
J'ai une trame CAN de 16 caractères que j'entre manuellement dans un champ en string.
Prenons pour exemple :
unsigned char Trame[17];
J'entre dans le champ 0123456789ABCDEF.
Je fais :
GetTableCellAttribute (panel, control, case en question, ATTR_CTRL_VAL, Trame);
Je lis bien :
Trame = "0123456789ABCDEF"
Seulement voilà quand je souhaite afficher dans un autre champ, la valeur de certains Bytes.
Donc certaines données de la chaine de caractère.
Je fais pas exemple :
SetCtrlAttribute (panel, control, ATTR_CTRL_VAL, &Trame[X]);
Si X = 0 alors j'obtiens : 0123456789ABCDEF alors que j'attend : 0
Si X = 1 alors j'obtiens : 123456789ABCDEF alors que j'attend : 1
Si X = 7 alors j'obtiens : 789ABCDEF alors que j'attend : 7
Si X = 11 alors j'obtiens: BCDEF alors que j'attend : B
Comment faire dans Labwindows pour afficher ce que je souhaite.
Merci de votre aide.Bonjour,
En fait ce n'est pas strcpy qu'il faut utiliser mais strncpy (voir l'aide de CVI pour un exemple) :
strncpy
char *strncpy (char targetString[], const char sourceString[], size_t maxChars);
Purpose
Copies characters from a source string to a target string until it reaches the specified number of characters or an ASCII NUL byte. If an ASCII NUL byte is found in the source buffer within the specified number of bytes, NUL bytes are written to the target until the specified number of characters have been filled in. If no ASCII NUL byte is found within the specified number of bytes, the function returns after copying the specified number of bytes and does not append an ASCII NUL byte to the buffer. If you want to guarantee that an ASCII NUL byte is at the end of the copied bytes, you can use the following:
strncpy (target, source, n);
target[n]=0;
Cordialement,
Da Helmut -
Rechercher une chaine et la remplacer
Bonjour à tous,
Je souhaiterais faire une recherche de chaine commençant par le signe - et récupérer la suite de la chaine . Ensuite la remplacer par une autre chaine de mon choix
Exemple de chaine à scanner : ( je pars d'un tableau de nombres que je tranforme en chaine pour faire la recherche )
-45.23
0
-23.5
-1
-12
6
etc
Par exemple, remplacer -12 par 0
J'ai utlisé le vi "rechercher et remplacer" mais il me remplace que le" - " par et laisse "12" . Résultat : 012 au lieu de 0. Normal. Il ne prend pas la suite de la chaine. J'espère avoir été clair....
Si vous avez des idée :-)
Merci
Cordialement.
Résolu !
Accéder à la solution.Je t'envoie la partie du code simplifié.
Dans le tableau il y a 2 valeurs : -1 et -12
je souhaiterais remplacer ces 2 valeurs( négatives ) par 0 et les remettre dans un tableau avec le restant des valeurs.
Je n'arrive pas prendre en compte le restant de chaine apès le signe - ... j'ai essayé un tas de trucs mais j'ai du zapper le bon !
Voilà mon souci :-)
Pièces jointes :
ChangerValeurTableau01.vi 12 KB -
Convertir une chaine de caractère en horodatage
Bonjour à tous,
Est-ce possible de convertir une chaine de caractère de ce type: 24/09/2014 en horodatage ?
Cordialement
Nathan
Résolu !
Accéder à la solution. -
Problème de lecture des caractères ascii avec VISA read
Bonjour à tous,
Je réalise un programme qui doit pouvoir lire les données arrivant sur un port série. Pour ce faire, j'utilise le VISA read. Cependant, je n'arrive pas à lire les caractères ascii non imprimables (de 1 à 31). En effet, il ne m'affiche pas le caractère voulu(ni sa valeur) mais un point d'interrogation. Quelqu'un peut il m'éclairer la dessus et me renseigner sur un autre objet que l'on peut utiliser ? Peut on utiliser les objets de lecture des registres et si c'ets le cas disposez vous d'exemples d'utilisations de ceux-ci ?merci beaucoup à l'avance.Bonjour,
Vous trouverez un élément de réponse ici.
Salutations,
Isabelle
Ingénieur d'applications
National Instruments France
Maybe you are looking for
-
hello im fation mashi im from albania i have a iphone 3 and i want to update it with ios 4.3.3 but i have fear because maybe can block the apple if i update it can you please help me ?
-
TS1292 How to get a refund for a faulty iTunes card? Or proper iTunes contact no?
Hi folks, Does anyone know how to get a refund on a faulty iTunes card? The number is basically illegible. The FAQ is useless, and every time I try to find a proper email contact, or similar method of contacting a HUMAN in Customer Support, I keep ge
-
When I want to watch Flash videos embedded into Facebook pages videos are not displayed as they should be. Where the video should be seen there is only blank white space. Audio is running normally though. If I click FULL SCREEN video mode Flash video
-
Hi, we have a small "architectural" doubt ... ! In the "Physical Architecture" we created two agents : - <strong><em>agent_host_{color:#ff0000}prod{color}</em></strong> - <strong><em>agent_host_{color:#008000}test{color}</em></strong> In the "Logical
-
Joining a LAP1262N to a WLC2125 Controller
Hello Experts! I'm fighting with a situation, I have configured a controller but I'm having difficulties to add a 1262N LAP. see debug from Controller *Aug 05 16:04:06.033: e8:b7:48:01:88:81 CAPWAP Control Msg Received from 10.10.50.68:6281 *Aug 05 1