Dateneditor=>Kanalnamen filtern¶
Der Befehl ist über die rechte Maustaste im Dateneditor zu erreichen.

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
.
Siehe auch
id-781728