LabVIEWForum.de
Kanal aus tdms Datei löschen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Kanal aus tdms Datei löschen (/Thread-Kanal-aus-tdms-Datei-loeschen)



Kanal aus tdms Datei löschen - kevlin - 05.01.2010 11:35

Hallo,

ich habe einige tdms-Dateien, die mehrere Kanäle enthalten. Einer dieser Kanäle enthält zuvor (leider falsch ) berechnete Werte.
Wie kann ich einen solchen Kanal aus der tdms-Datei entfernen. Ich möchte die tdms-Datei auch nicht zu groß werden lassen, daher würde ich den Kanal gerne löschen.

Ich habe schon herumprobiert, das Signal aus dem Kanal auf eine Schleife zu geben und die Elemente einzelnd zu löschen. Das klappt aber irgendwie nichtSad
Gibt es da eine vorgefertigte Lösung und ich hab die bisher noch nicht gesehen? Im tdms-Untermenü hab ich nicht passendes gefunden.

Meine LabVIEW Version ist:Lv82_img


Kanal aus tdms Datei löschen - schrotti - 05.01.2010 13:35

Meines Wissens lassen sich keine Kanäle aus TMDS-Dateien löschen. Selber habe ich das mal so gemacht, dass wenn der User einen Messung verwerfen will, die Kanalgruppe oder der Kanal umbenannt wird in DELETE[fortlaufende Zahl]. Am Ende der Testprozedur guck ich nach, ob DELETE[] vorkommt. Wenn ja, dann neue TDMS-Datei und alles bis auf DELETE[] rüberkopieren. Alte Datei löschen. Zum Umbennen das Primitiv "Eigenschaften festlegen" benutzen. Eigenschaftsname ist "NI_UpdateChannelName " bzw. "NI_UpdateGroupName" und bei Eigenschaftswert den neuen Namen übergeben. Genauso könnte man eine Eigenschaft einführen, die anzeigt, ob ein Kanal bzw. Gruppe gültig ist. Und immer brav die englischen Bezeichner verwenden. Die LV-Hilfe will einem irgendwo weißmachen, es funktioniere auch mit lokalisierten Strings, aber tut manchmal nicht.

Irgendwie solls ja mit den Datenspeicher-VIs gehen. Allerdings läuft bei mir dann alles ohne Probleme durch, die Gruppe oder Kanal ist aber weiterhin im File. Wacko

EDIT: Vergessen zu erwähnen, dass es mit TDM-Dateien, aber nicht nicht mit TDMS-Dateien funktioniert.


Kanal aus tdms Datei löschen - kevlin - 05.01.2010 14:26

Ok, super! Auf die Idee mit dem kopieren der gewünschten Kanäle bin ich noch gar nicht gekommenWacko
Das werd ich mal machen. Vielen Dank!


Kanal aus tdms Datei löschen - IchSelbst - 05.01.2010 16:33

' schrieb:Allerdings läuft bei mir dann alles ohne Probleme durch, die Gruppe oder Kanal ist aber weiterhin im File.
Es soll ein VI "TDMS defragmentieren" geben. Hast du das mal probiert?

Ich könnte mir vorstellen, dass man den Namen eines unerwünschten Kanals aus seiner Gruppe löscht und danach "Defragmentieren" ausführen muss.

Zitat:Vergessen zu erwähnen, dass es mit TDM-Dateien, aber nicht nicht mit TDMS-Dateien funktioniert.
TDM-Files haben ein XML-kompatibles Headerfile. Da könnte man durch Löschen einer Eigenschaft einen Kanal eliminieren. - Und was für XML geht, sollte für binär auch gehen. Soweit es eben implementiert ist.

Hinweis:
Ein TDMS-File kann man per System-VI in ein TDM-File wandeln - und umgekehrt.


Kanal aus tdms Datei löschen - schrotti - 05.01.2010 17:57

' schrieb:Es soll ein VI "TDMS defragmentieren" geben. Hast du das mal probiert?
Ich könnte mir vorstellen, dass man den Namen eines unerwünschten Kanals aus seiner Gruppe löscht und danach "Defragmentieren" ausführen muss.
Kein Effekt. Sowohl Kanalgruppe als auch Kanal lässt sich nicht löschen. Ich schmeiß das tdx- bzw tdms_index-File meistens nach der Messung weg und geb unseren Kunden nur die Daten. Wäre katastrophal, wenn die bspw. tdms und tdms_index nicht immer konstistent wären.

' schrieb:TDM-Files haben ein XML-kompatibles Headerfile. Da könnte man durch Löschen einer Eigenschaft einen Kanal eliminieren. - Und was für XML geht, sollte für binär auch gehen. Soweit es eben implementiert ist.
Theoretisch. Lol

' schrieb:Hinweis:
Ein TDMS-File kann man per System-VI in ein TDM-File wandeln - und umgekehrt.
Hier werden auch nur Gruppen mit Kanälen samt allen Eigenschaften von einer Datei in eine andere kopiert. Bei größeren Dateien nicht zu empfehlen, da schlecht implementiert. Die Datenspeicher-VIs sind mit alle suspekt. Die Dinger sind ja passwortgeschützt, aber nicht durchgängig. Teilweise werden da drin Exceptions nicht behandelt wodurch es möglich ist, in das BD einiger VIs zu springen. Beautiful Code sieht anders aus. Ich weiß aber nicht mehr, wie ich das angestellt habe. Irgendwas mit den Eigenschaften.


Kanal aus tdms Datei löschen - rasta - 06.01.2010 07:22

Hallo,
es geht auf diese Weise:
TDMS-File in TDM-File wandeln - mit den mir ebenfalls suspekten DataStorage TDM-vi´s mittels Properties die Channel-Refnums sammeln und mit
der entsprechenden Refnum das Vi "Delete Data" bestücken und wieder zurück in TDMS wandeln.
Mit Delete Data können einzelne Kanäle sowie auch ganze Gruppen gelöscht werden.

Im Anhang mal ein ausbaufähiges lv82Beispiel.

Gruß
Ralf