Attribute ersetzen - Karten-Explorer

<< Klicken um das Inhaltsverzeichnis anzuzeigen >>

Navigation:  Karten-Explorer > Attribute manipulieren > Attribute bearbeiten >

Attribute ersetzen - Karten-Explorer

Previous pageReturn to chapter overviewNext page

Attribute berechnen/ersetzen

pb_screen

Mit dieser Programmfunktion können Attribute (Felder, Spalten) durch Werte oder Ausdrücke (Berechnungen) ersetzt werden. Dabei kann die Ersetzung für alle oder nur für bestimmte Datensätze (Bereich, Filter) durchgeführt werden. So können Aufgabenstellungen wie Berechne das Feld Anzahl aus Rind+Schwein+Schaf oder Ersetze das Feld Ergebnis mit 'Positiv' für die Filterbedingung Code=2

Feld wählen:

Zunächst ist das zu ersetzende Feld aus der Listenansicht auszuwählen.

Ersetzen mit:

Des weiteren ist der Wert bzw. Ausdruck , mit dem das Feld ersetzt werden soll anzugeben. Beachten Sie, das die Notation des Wertes bzw. Ausdrucks in Abhängigkeit des Feldtyps (Zeichen, Numerisch, Datum und Logisch) differiert. Wird eine Zeichenkette durch einen Wert ersetzt, ist dieser z.B. in Hochkommata einzuschließen. Des weiteren gibt es eine Vielzahl von Funktionen und Operatoren mit der Ausdrücke gebildet werden können, die in einem kleinen Crash-Kurs geordnet nach Feldtypen dargestellt sind:

numerische Felder z.B. 100

Zeichenfelder z.B. 'Meier'

Datumsfelder z.B. CtoD( '10.08.1965')

Logische Felder z.B. .t.

Bereich für Ersetzung festlegen

Es kann entschieden werden, ob

alle Datensätze

Datensätze die eine Markierung haben (Selektion)

der Rest der Datei ab dem aktuellen Datensatz

die nächsten ? Datensätze

oder alle Datensätze, die einem Filter genügen,

ersetzt werden sollen.

Filterbedingungen stellen einen logischen Ausdruck wie z.B. eine Vergleichsoperation dar.

Für ein numerisches Feld könnte dies z.B. sein Rind>0, für ein Zeichenfeld Name="Meier", für ein Datumsfeld Datum>=CtoD("01.01.2000") und für ein logisches Feld !Untersucht ("nicht untersucht").  Umfangreiche Hinweise zum Bilden von Filterausdrücken finden Sie verweishier. Beachten Sie, dass Filterbedingungen letztendlich immer logische Werte (Wahr oder Falsch, bzw. .t. oder .f.) ergeben, während die im weiteren diskutieren Ersetzungsausdrücke, mit denen der Feldinhalt ersetzt wird, in Abhängigkeit vom Typ des selektierten Feldes einen numerischen, Zeichen-, Datums- oder logischen Ausdruck ergeben müssen .

Crash-Kurs "Notation von Ersetzungsausdrücken"

Numerische Felder

Numerische Felder enthalten ausschließlich Zahlen (ggf. Dezimalpunkt und Vorzeichen) wie z.B. 1000 oder 1234.45.  

Außerdem kann man mit numerischen Felder selbstverständlich rechnen wie z.B. Rind+Schaf+Schwein. Hier gilt Punkt- vor Strichrechnung, Klammern sind erlaubt und die Division durch Null ist ungültig...

numerische Operatoren (Auszug)

+

Addition

-

Subtraktion

*

Multiplikation

/

Division

^

Potenzieren (2^3=8 oder 4^0.5=2)

%

Moduls (ganzzahliger Rest einer Division, z.B. 17 % 10 = 7)

wichtige Funktionen

Min

Min( Zahl1, Zahl2 ) Zahl ... ermittelt das Minimum zweier Zahlen

Max

Max( Zahl1, Zahl2 ) Zahl ... ermittelt das Maximum zweier Zahlen

Val

Val( Text ) Zahl ... wandelt eine Zeichenkette in eine Zahl um

Sqrt

Sqrt( Zahl ) Zahl ... Quadratwurzel (auch mit Zahl^0.5 notierbar)

Log

Log( Zahl ) Zahl ... natürlicher Logarithmus

Exp

Log( Zahl ) Zahl ... Antilogarithmus

Recno

Recno() Zahl ... ermittelt die aktuelle Datensatznummer

ic_finger.gif (947 Byte)Experten-Tipp: Die Division durch Null ist bekanntlich nicht erlaubt. Wird bei der Abarbeitung des Ersetzens eine Division durch Null vorgenommen, bricht das Ersetzen an dieser Stelle ab.

Der Ausdruck Positiv/ Untersucht*100 liefert z.B. die Prävalenz und funktioniert so lange, bis ggf. ein Datensatz im Feld "Untersucht" eine Null enthält. Um diesen Fall abzufangen, kann der IIF-Operator verwendet werden, der nach dem Schema IIf( Bedingung, Ausdruck1, Ausdruck2 ) funktioniert und dann, wenn der logische Ausdruck Bedingung erfüllt ist, Ausdruck1, ansonsten Ausdruck2 zurück gibt.

Demnach wären Sie mit der Notation IIf( Untersucht>0, Positiv/ Untersucht*100, 0 ) auf der sicheren Seite.

Zeichenfelder

Werte sind in einfache oder doppelte Hochkommata einzuschließen, wie z.B. 'Meier' oder "Meier"

Um einen Leerwert (leere Zeichenkette) zu erzeugen, sind lediglich 2 Hochkommata z.B. ' ' oder " " anzugeben.

wichtige Funktionen

(Hinweis: grau dargestellte Parameter sind optional und können ggf. weggelassen werden)

Left

Left( Text, Anzahl ) Zeichen ... ermittelt den linken Teil einer Zeichenkette

Right

Right( Text, Anzahl ) Zeichen ... ermittelt den rechten Teil einer Zeichenkette

Substr

Substr( Text, Startposition, Anzahl ) Zeichen ... gibt die gewünschte Anzahl der Zeichen ab der Startposition zurück. Wird der optionale Parameter Anzahl nicht angegeben, werden alle Zeichen ab der Startposition zurück gegeben.

Str

Str( Zahl, Länge, Dezimal ) Zeichen ... wandelt eine Zahl in eine Zeichenkette um. Optional können Länge (inklusive Dezimalpunkt und Nachkommastellen) und / oder Anzahl der Nachkommastellen angegeben werden

At

At( Suchtext, Text ) Zahl ... ermittelt die Position des Auftretens von Suchtext im Text und gibt sie zurück (0, wenn nicht gefunden)

Upper

Upper( Text ) Zeichen ... wandelt Text in Großbuchstaben um

Lower

Lower( Text ) Zeichen ... wandelt Text in Kleinbuchstaben um

StrZero

StrZero( Zahl, Länge, Dezimal ) Zeichen ... wandelt eine Zahl in eine Zeichenkette mit führenden Nullen um. Optional können Länge (inklusive Dezimalpunkt und Nachkommastellen) und / oder Anzahl der Nachkommastellen angegeben werden.

Tipp:

Die Funktionen StrZero() und Recno() können kombiniert werden, um aufgrund der Datensatznummer eindeutige Identifikationsschlüssel zu erzeugen. StrZero( Recno(), 5 ) würde ab dem ersten Datensatz 00001, 00002, 00003 usw. zurückgeben.

StrTran

StrTran( Text, Suchtext, Ersetzungstext, Start, Anzahl ) Zeichen .. ersetzt Zeichen in einer Zeichenkette, indem im Text ein Suchtext mit dem Ersetzungstext ausgetauscht wird. Optional kann eine Startposition (ab Zeichen ?) und / oder die Anzahl der durchzuführenden Ersetzungen angegeben werden.

StrTran( Name, "ü", "ue" ) ersetzt im Feld Name die Zeichenfolge ue mit ü

StrTran( Name, "/", "" ) löscht im Feld Name das Zeichen / (ersetzt es mit Leerzeichen)

LTrim

LTrim( Text ) Zeichen ... entfernt führende Leerzeichen

Trim

Trim( Text ) Zeichen ... entfernt Leerzeichen am Ende

AllTrim

AllTrim( Text ) Zeichen ... entfernt führende Leerzeichen und Leerzeichen am Ende

Zeichenkettenoperatoren

+

fügt 2 Zeichenketten zusammen

-

fügt 2 Zeichenketten zusammen und entfernt abschließende Leerzeichen in der ersten

Datumsfelder

Werte vom Typ Datum können mit der Funktion CtoD() generiert werden, wie z.B. CtoD( '31.08.2003' )

Tage können addiert und subtrahiert werden. Für 01.01.2003 - 1 ist das Ergebnis 31.12.2002 und 01.01.2003 + 31 ergibt sich 01.02.2003.

Die Differenz zwischen Kalenderdaten kann durch Subtraktion von 2 Datumswerten ermittelt werden.

wichtige Funktionen

Today

Today() Datum ... gibt das Tagesdatum zurück

CtoD

CtoD( Zeichenkette ) Datum ... wandelt eine Zeichenkette in ein Datum um

DtoC

DtoC( Datum ) Zeichen ... wandelt ein Datum in eine Zeichenkette um

Year

Year( Datum ) Zahl ... ermittelt die Jahreszahl aus einem Datum

Month

Month( Datum ) Zahl ... separiert die Nummer des Monats aus einem Datum

CMonth

CMonth( Datum ) Zeichen ... ermittelt den Monatsnamen aus einem Datum

Day

Day( Datum ) Zahl ... separiert den Tag aus einem Datum

CDoW

CDoW( Datum ) Zeichen ... ermittelt den Namen des Wochentags aus einem Datum

Min

Min( Datum1, Datum2 ) Datum ... ermittelt das Minimum zweier Datumswerte

Max

Max( Datum1, Datum2 ) Datum ... ermittelt das Maximum zweier Datumswerte

Datumsoperatoren

+

Datum + Zahl Datum ... addiert n Tage zu einem Datum

-

Datum - Zahl Datum ... subtrahiert n Tage von einem Datum

Datum1 - Datum2 Zahl ... ermittelt die Differenz aus 2 Datumswerten

Logische Felder

Logische Felder sind Datenbankfelder, die genau zwei Zustände annehmen können, nämlich die Wahrheitswerte "Wahr" oder "Falsch". Diese Werte werden durch .T. oder .F. (auch .t. oder .f.) definiert.