2017-09-28 4 views
1

Je Scripting avec DM et je voudrais lire le format de fichier hdf5.Comment lire chaîne stockée dans HDF5 fichiers de format par DM

J'ai emprunté le fichier gms_HDF5_Plug-In de Tore Niermann (hdf5_GMS2X_amd64.dll) et son script CMD_import_hdf5.s. Il utilise h5_read_dataset (filename, datapath) pour lire un ensemble de données d'image.

J'essaie de comprendre la façon de lire une information de chaîne stockée dans le même fichier. Je suis particulièrement intéressé de lire l'angle stocké dans la chaîne comme indiqué dans cette figure. Demonstrated string to read. La fonction h5_read_dataset (filename, datapath) ne fonctionne pas pour la lecture de chaîne.

Il y a un fichier d'aide (hdf5_plugin.chm) avec une liste de fonctions, mais malheureusement je ne peux pas les ouvrir pour voir plus d'informations. hdf5_plugin.chm showing the function list.

Je suppose que la fonction droit de lire des chaînes doit être quelque chose comme h5_read_attr() ou h5_info() mais je ne les ai pas tester. DM dit toujours que les deux fonctions n'existent pas.

Après avoir lu l'angle par chaîne, je vais aussi avoir besoin d'une aide de bits pour convertir la chaîne en un double type de données.

Merci.

Répondre

0

Conversion chaîne en nombre est fait avec la commande Val(). Il n'y a pas de concept entier/double/flottant pour les variables dans le script DM, tous sont juste number. (Ceci est différent pour images, où vous pouvez définir le type numérique également. Pour fichiers InPort/exporter un type differntiation peut être faite en utilisant les taggroup commandes en continu dans l'autre réponse.)

Exemple de script:

string numStr = "1.234e-2" 
number num = val(numStr) 
ClearResults() 
Result("\n As string:" + numStr) 
Result("\n As value:" + num) 
Result("\n As value, formatted:" + Format(num,"%3.2f")) 
+0

Super. Val() est quelque chose que je cherche. Pour l'exemple de fichier-inport/export, faites-vous référence à "comment convertir-ascii-array-image-en-single-string" https://stackoverflow.com/questions/39719129/how-to- convert-ascii-array-image-to-a-single-string – Roger

+0

Similaire à celui-là, oui.Mais avec la différence que vous créez votre objet stream à partir d'un fichier, puis utilisez taggroup-objects pour lire (ou écrire) un certain nombre d'octets interprétés comme type de taggroup spécifique. C'est la raison pour laquelle le TagGroup a beaucoup de commandes de forme ... asLong ... commeDouble etc. – BmyGuest

0

Réponse possible concernant les fichiers .chm: Lorsque vous téléchargez (ou envoyez par courrier électronique) des fichiers .chm sous Windows, le système d'exploitation les classe comme "potentiellement dagerouse" (car il peut contenir du code HTML exécutable, je pense). Par conséquent, ces fichiers ne peuvent pas être affichés par défaut. Cependant, vous pouvez cliquer avec le bouton droit sur ces fichiers et les "débloquer" dans les propriétés du fichier.

Exemple: enter image description here

+0

vous avez absolument raison. Je peux voir l'explication après le débloquer. Parfait – Roger

0

Je pense que ce sera très probablement une question spécifique à ce plug-in et non script général DM. Il peut donc être préférable de contacter directement le plugin-author.

La solution alternative (pas bonne) serait de "réécrire" votre propre lecteur de fichiers HDF5, si vous connaissez le format de fichier. Pour cela vous auriez besoin des commandes "Streaming" du langage de script DM et parcourez le fichier source (binaire?) Vers l'emplacement de fichier approprié. Le point de départ de la lecture à ce sujet dans la documentation d'aide F1 serait ici:

enter image description here

+0

Merci pour vos conseils, je contacte le plugin-auteur et il a fait un plugin mis à jour qui peut lire de la ficelle. C'est vraiment utile. – Roger