Dateneditor=>Kanalnamen filtern

Der Befehl ist über die rechte Maustaste im Dateneditor zu erreichen.

../../_images/nc_name_filter-de.png

Mit diesem Befehl können Sie die Kanalnamen einer netCDF-Datei umbenennen.

Originalname
Der Name der Original-Datendatei.
Kanalname
Die UniPlot-Kanalnamen in der netCDF-Datei.
Gerätenamen anzeigen
Bei MDF-Dateien können die Kanalnamen die Form aaa.bbb\device haben. Wenn Gerätenamen anzeigen ausgeschaltet ist, werden die Zeichen \device entfernt.

Erster Filter

Mit Hilfe des ersten Filters können Kanalnamen an einem Trennzeichen zerlegt werden. Aus den Namen können dann bestimmte Elemente am Anfang oder Ende entfernt werden.

Ausführen

Der momentan eingestellte Filter wird ausgeführt und die neuen Kanalnamen werden in der Vorschau angezeigt.
Weitere Filter

Wenn Weitere Filter eingeschaltet sind, können Sie in diesem Textfeld weitere Filter eingeben. Pro Zeile kann ein Filter der Form:

match filter-name parameter

eingegeben werden. Mit dem Kommentar-Zeichen # können Filter ausgeblendet werden.

match: Vor filter-name kann optional ein Suchmuster stehen, siehe strmatch. Dem Suchmuster muss zum Abschluß das Zeichen @ folgen.

Beispiele:

es_* @ upper

Alle Kanäle, die mit es_ anfangen, in Großbuchstaben umwandeln.

*_[1-3] @ lower

Alle Kanäle, die mit _1, _2 oder _3 enden in Kleinbuchstaben umwandeln.

filter-name

Name Beschreibung
separator

Zerlegt Kanalnamen die Trennzeichen enthalten, in Felder. separator hat drei Parameter: Trennzeichen, Anzahl (Zahl von 0 bis 9) und Aktion (eine der 4 Zeichenketten: hide from right, show from right, hide from left, show from left).

separator . 1 show from right

aaa.bbb => bbb
a.b.c => c
separator . 1 hide from right

aaa.bbb => aaa
a.b.c => a.b
lower Wandelt die Kanalnamen in Kleinbuchstaben um.
upper Wandelt die Kanalnamen in Großbuchstaben um.
replace

Tauscht Zeichen oder Zeichenketten aus. Beispiele:

replace . _

aaa.bbb => aaa_bbb

TIME* @ replace TIME\_ Time

TIME_1 => Time1
remove

Zeichen entfernen. Die Zeichen können an beliebigen Stellen entfernt werden, am Anfang (from left) oder am Ende (from right). Beispiel:

remove $

$aaa.bbb => aaa.bbb
remove .ext from right

x122.ext => x122

remove mot_ from left

mot_n => n

Verwende neue Namen für die Attribute long_name und title

Wenn die Option markiert ist, wir der neu erzeugte Name auch für die Kanalattribute long_name und title verwendet.

Beispiel

Die folgende Funktion zeigt, wie man die Namensfilterung automatisieren kann. Die Funktion wird beim Zugriff auf NC-Dateien automatisch aufgerufen. Die Funktion prüft, ob die NC-Datei ein Attribute mit dem Namen „TestCell“ enthält, welches den Text „Xp2“ enthält. Zusätzlich wird geprüft, ob die Datei vom ODS5 Importfilter erzeugt wurde. Der Namensfilter entfernt die Zeichenfolge „Ext“ aus dem Kanalnamen, wenn die Zeichenfolge am Ende des Namens auftritt. Die Funktion nc_name_filter führt die eigentliche Namesänderung durch. Der erste Funktionsparameter ist ein Vektor mit allen Kanalnamen. Der zweite Parameter enthält den Filterstring:

def OnImportUpdateNCFile(ssNCName)
{
    ncid = nc_open(ssNCName, NC_WRITE);
    if (ncid == -1) {
      return FALSE;
    }

    if (nc_attinq_datatype(ncid, -1, "TestCell") != NC_CHAR) {
      nc_close(ncid);
      return TRUE;
    }
    ssAtt = nc_attget(ncid, -1, "TestCell");
    if (strfind(ssAtt, "Xp2")[1] == 0) {
      nc_close(ncid);
      return TRUE;
    }

    if (nc_attinq_datatype(ncid, -1, "Creator") != NC_CHAR) {
      nc_close(ncid);
      return TRUE;
    }
    ssAtt = nc_attget(ncid, -1, "Creator");
    if (strfind(ssAtt, "ODS51")[1] == 0) {
      nc_close(ncid);
      return TRUE;
    }

    if (_nc_need_org_name(ncid)) {
       _nc_write_org_names(ncid);
    }
    sv = NC_GetOrgNames(ncid);
    // remove the string "Mit" from the string end.
    sv = nc_name_filter(sv, "remove Ext from right");
    _nc_rename_all(ncid, sv, TRUE);
    nc_close(ncid);
    return sv;
}

Kommentar

Sie können eigene Filterfunktionen zufügen. Siehe Datei nc_name_filter.ic.

id-781728