From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

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

Sérialisation fichier - meilleure méthode?

 

Hello,

 

Quelle est selon vous la meilleure méthode de sauvegarde dans un fichier selon ces critères :

 

  • Fichiers humainements lisibles (pas de binaire)
  • Une certaine tolérance sur le format à la lecture. Par exemple, si c'est un cluster qui contient des données, mais qu'on rajoute plus tard un nouveau champ, sans changer le nom des champs existants, alors il ne faudrait pas qu'il n'y ait d'erreurs à lecture. Ce cas de figure apparaît si l'application évolue dans le temps et qu'on envoie une mise à jour au client. Typiquement les fonctions natives de NI sont très restrictives.
  • Pouvoir sans problème sérialiser un un cluster complexe : tableau de cluster, avec des instances de classe à l'intérieur, gérer les instances de classes avec polymorphisme.. etc.
  • Des fonctions optimisées : bonnes performances, pas de fuites mémoires, ...

 

Je trouve les librairies XML  et JSON de Labview très restrictives sur le format, par contre elles sont naturellement bien optimisées.

J'ai testé la librairie JSONText mais elle me remplit la RAM en cours d'utilisation, je m'en méfie un peu.

 

Avez-vous testés les librairies JSON et XML de JKI?

D'autres librairies peut-être?

 

C'est tout un sujet la sérialisation pour un logiciel qu'on veut maintenir longtemps, et faire des mises à jour régulières, car le client voudra toujours pouvoir lire ses fichiers de la version précédente 🙂

 

Merci pour vos retours.

0 Compliments
Message 1 sur 7
1 176 Visites

J'en utilise 3 selon les besoins, TOML, JSONText et JKI Easy XML.

 

Je trouve le xml illisible

Le toml très lisbile

Le JSON entre les deux

 

La librarie JSONText est hyper-complète, donc si je dois recommander un truc, ce serait ça sans hésitation.

Problème de RAM? Tu as des gros fichiers? Ce sera pas mieux en XML ou TOML...

Pourquoi te méfies tu de cette lib? Le support donner par James Powell me semble excellent, tu n'auras pas ça avec une autre lib.

 

Le faiblesse de la librairie TOML dans ton cas c'est le manque de souplesse si un ligne manque dans le fichier et le manqe de support si tu trouves un bug.


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Compliments
Message 2 sur 7
1 160 Visites

 

C'est intéressant, car la lib Easy XML semble déjà bien plus lisible que la librairie XML native, elle encapsule les données différement. Merci pour le retour.

 

La lib JSONtext me remplit la RAM effectivement, mais je me rends compte que je n'utilise pas la dernière version. Je vais réessayer avec la dernière version. Je me demande si ce n'est pas la récursivité qui est utilisée dans cette lib qui crée un tas de clones de VIs lors de l'appel à la fonction "To JSON Text". 

0 Compliments
Message 3 sur 7
1 126 Visites

@Walker34  a écrit :

 

La lib JSONtext me remplit la RAM effectivement


Il y a vraiment beaucoup de monde qui utilise cette lib donc je suis très surpris, ou alors tu as un fichier qui est vraiment gros.

 

Et en terme de fonctionalité, JSONText est loin devant, la fonction "$path" - pour n'en citer qu'une - n'a pas d'équivalent en EasyXML.

Si tu as un gros fichier de config et qu'il évolue, cette fonction est vraiment sympa.


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Compliments
Message 4 sur 7
1 114 Visites

.

0 Compliments
Message 5 sur 7
1 077 Visites

Salut Titou

 

Ma réponse a pris  du temps. Alors effectivement la librairie  JSONText n'avait aucun rapport avec la fuite de mémoire de mon  application. J'ai cru au premier abord car elle  remplit un peu la RAM, mais par la suite la mémoire est correctement libérée. Au temps pour moi,  elle fonctionne très bien.

 

Merci pour les inputs..

 

Par contre je ne vois à quelle fonctionalité tu fais allusion avec le "$Path"?

0 Compliments
Message 6 sur 7
1 073 Visites

Bonjour Titou,

Je vois que tu as l'habitude d'utiliser cette librairie Jsontext et je me demandait si tu pouvais m'aider sur ce sujet.

 

Explications :

J'ai un tableau de données à 2 colonnes " EPC" et "TimeStamp" et il faut que je sérialise ce tableau en JSon pour obtenir le schéma de chaine dans le fichier ci-joint.

Voilà si tu m'aider sur ce point avec la librairie jsontext, je suis preneur !!

 

Merci d'avance

🙏

0 Compliments
Message 7 sur 7
1 042 Visites