Discussions au sujet de NI LabVIEW

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

Mise en forme fichier texte

Bonjour,

 

J'essaye de mettre en forme un fichier de résultats.

J'arrive presque à faire ce que je veux c'est à dire:

- Prendre les 511 premiers caractères 

- Faire des blocs de 8 caractères et les mettre à la ligne

- Prendre le reste du fichier

- Faire des blocs de 12 caractères et les mettre à la ligne

- Séparer chaque ligne en bloc de 4.

 

Je donne un exemple, cela sera plus clair.

1ere partie:

12120000
6c3e0001
6c000000
0c040000
0bb00000

...

2eme partie

01f1 986d 4e25

...

 

C'est au niveau de cette dernière étape que je bloque. En effet lorsque je découpe les blocs de 12 en 4 caractères, labview compte aussi le retour chariot...

 

Je vous joins mon vi et le fichier à traiter.

 

Merci beaucoup

 

Tout télécharger
0 Compliments
Message 1 sur 7
4 318 Visites

Salut salut,


Je n'ai pas LabVIEW sous la main, mais je vais essayer de te répondre au mieux sans avoir vu ton VI.


Tes blocs de 8 fonctionnent, je m'intéresse à partir de la partie 2:


Actuellement tu fais des blocs de 12 que tu souhaites rédécouper. Tu découpes quelque chose déjà découpé en somme. Il me semblerait plus efficient de découper dès le début en 3 bloc de 4.


Simplement, encapsuler une boucle for dans une boucle while. La boucle while permet d'épuiser tous les caractères restant à ton fichier de .txt. La boucle for prend en entrée un tableau de 3 caractères: [espace][espace][retour chariot]. Elle tourne donc 3x à chaque itération de la boucle while car tu auras régler l'entrée de ce tableau de cst en "indexing" en entrée de la boucle for.


Ta boucle for a pour mission de prendre 4 caractères, puis d'y adjoindre un caractère de ce tableau de constante. Ainsi tu construiras directement une chaîne de 12 caractères séparés comme tu le souhaites. XXX[espace]XXX[espace]XXX[chariot]XXX[espace]XXX[espace]...etc


Je profite de mon tableau pour te faire un petit schéma récapitulatif 🙂


En espérant que ma solution résolve ton problème!

Ingénieur Instrumentation Michelin
Certifié CLD
Message 2 sur 7
4 303 Visites

Merci beaucoup pour ton idée et ton tableau Smiley heureux

Je vais tenter de mettre ca en oeuvre car la j'ai fiat une usine à gaz...

0 Compliments
Message 3 sur 7
4 296 Visites

Question bete mais je n'arrive pas à créer le tableau de 3 caractères: [espace][espace][retour chariot].

J'ai tenté de mettre une constante tableau avec une chaine vide dedans puis d'y ajouter la cst espace et retour chariot mais cela ne fonctionne pas.

 

Si quelqu'un peut m'aider?

Merci

0 Compliments
Message 4 sur 7
4 291 Visites

Salut,

 

Je pense que tu as essayé de mettre directement les constante que LabVIEW propose en icône. Je n'ai jamais essayé mais je ne pense pas que cela marche!

 

Ces constantes que LabVIEW propose sont équivalentes à des constantes en code (\) dont voici les principales:

https://www.ni.com/docs/fr-FR/bundle/labview/page/backslash-codes-display.html

 

Dans ton cas tu auras donc à faire un tableau constitué des 3 éléments suivants: \s, \s, \r.

 

En espérant que cela te permette de mettre en pratique l'architecture que je t'ai conseillé hier 🙂 N'hésite pas si tu as un problème!

Ingénieur Instrumentation Michelin
Certifié CLD
0 Compliments
Message 5 sur 7
4 282 Visites

Cela fonctionne avec la constante "espace" mais pas "retour chariot"...

J'ai tenté avec \CR etc mais sans succés.

Merci pour le lien, je devrais pouvoir m'en sortir.

 

 

0 Compliments
Message 6 sur 7
4 279 Visites

Salut,

 

Peut être que le retour chariot n'est pas le caractère pour ton application. As tu essayer avec un \n? Je ne manipule pas souvent des strings et je me plante systématiquement avec ces deux là... Fais des tests, et tu verras bien, je suis sur que tu vas y arriver 🙂

 

Bon courage 🙂

Ingénieur Instrumentation Michelin
Certifié CLD
0 Compliments
Message 7 sur 7
4 277 Visites