ï ñ ò Information 350

Bedingungen für Kopieranweisungen



Als Bedingung ist eine max. 40 Zeichen lange Zeichenkette <zk> mit Operator einzugeben. Die Bedingung steuert die Ausführung der Kopieranweisungen:
=<zk>



<><zk>



<<zk>



><zk>



VON<zk>



BIS<zk>




1) nur für copysubstring
2) nur für copyaussage

Die Parameter der Kommandos sind durch Kommas zu trennen. Ein <zk>-Parameter darf max. 40 Zeichen lang sein und ist in Hochkomma 'einzuschliessen.

Steuerzeichen sind als ASCII-Code mit # oder @ einzugeben.
#13#10 = ^ = CRLF = Zeilenwechsel 
#94    = ^ (als Zeichen, nicht al CRLF)
#39    = Apostroph (')
#35    = Doppelkreuz (#)
#64    = kommerzielles A, auch at oder @ 

weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Löschen von Teilzeichenketten; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen


ï ñ ò Information 351

Steuerung des EXEC-Prozedurablaufs



Bedingte Sprunganweisung


IF EXIST(<feldname>,[<suchwort>]) GOTO <marke>



IF NOT EXIST(<feldname>,[<suchwort>]) GOTO <marke>



Unbedingte Sprunganweisung


GOTO <marke>



EXIT



weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Zwischenfeld-Befehle; ñ Löschen von Teilzeichenketten; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen


ï ñ ò Information 352

Zwischenfeld-Befehle



Alle bisherigen Anweisungen transportieren direkt Daten von einem Eingabefeld eines Datensatzes der Quelldatei oder eine Konstante zu einem Ausgabefeld in die Ausgabedatei oder auf den Bildschirm. Die folgenden Anweisungen dagegen arbeiten über ein Zwischenfeld ZF.

Die Arbeitsweise ist in etwa folgende:

  1. Ein oder mehrere Felder werden in das Zwischenfeld geladen, ggf. unter Bedingungen.
  2. Die Daten werden im Zwischenfeld analysiert und
  3. mit Zeichenkettenverarbeitungskommandos bearbeitet und dann
  4. in das Ausgabefeld geschrieben.


Die Zwischenfeldbearbeitung wird mit der speziellen Anweisung ZFBEGIN eingeleitet und mit ZFENDE beendet. Zwischen diesen Anweisungen sind nur die folgenden Anweisungen zugelassen.

Beginn/Ende Zwischenfeldbearbeitung


ZFBEGIN([<mode>])




Beispiel:
REM          Der EXEC-Prozedur-Aufruf 
REM          zu EXEC1 steht vor EXEC2
EXEC1 EN
AB
EXEC2 
nwende
 
exec1:
zfbegin
...
zfcc(^)
zfende
...
 
exec2:       In EXEC2 steht der Inhalt bereit, 
zfbegin(1)   der in EXEC1 zum Zeitpunkt von ZFENDE
...          bearbeitet war. 
zfcc(^)
zfende

Aber:
EXEC2 EN     In EXEC2 steht der Inhalt von 
VFU          EXEC1 nicht zur Verfügung, 
AB           weil EXEC1 hinter EXEC2 aufgerufen wird.
EXEC1
nwende
 
exec1:
zfbegin
...
zfcc(^)
zfende
 
exec2:
zfbegin(1)  
...
zfcc(^)
zfende

ZFENDE


weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Kopieren in das Zwischenfeld; ñ Löschen von Teilzeichenketten


ï ñ ò Information 353

Anzeigen interner Variablen



SHOWVARS



SHOWZF


weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Zwischenfeld-Befehle; ñ Löschen von Teilzeichenketten


ï ñ ò Information 354

Kopieren in das Zwischenfeld



Kopieren von Feldern


ZFCOPY(<feldname>)
{ZFCO(<feldname>)}




Kopieren von Zeilen


ZFCOPYZEILE(<nummer>,[<trenner>])
{ZFCO)



ZFCOPYZEILE(1,; )


Kopiert die 1. Zeile bis zum Zeichen; im Satz.

Kopieren von Aussagen


ZFCOPYAUSSAGE(<feldname>,<von>,<bis>,<trennzeichen>)
{ZFCA(...) 




Kopieren von Konstanten


ZFCOPYCONST(<zeichenkette>)  
{ZFCC(...)} 



weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Zwischenfeld-Befehle; ñ Zwischenfeldanfang und Ende säubern; ñ Substitution von Zeichenketten; ñ Substitution von Codes; ñ Einfügen einer Zeichenkette; ñ Löschen von Teilzeichenketten


ï ñ ò Information 355

Substitution von Zeichenketten



ZFSUBST(<zeichenkette1>,<zeichenkette2>,[<von>],[<bis>])
{ZFSU(...)}




Beispiel:
ZFSU(ANWENDUNG,Abwendung)
zfsu(01.12.98,19981201,1,8)
zfsu(Anfang,Ende,var1,var9) 


var1 Position von Anfang,
var9 Position von Ende
var1 muss hier gleich var9-5 sein, um das Wort "Anfang" am Zwischenfeldende in das Wort "Ende" umzuformen.

weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Zwischenfeld-Befehle; ñ Substitution von Codes; ñ Einfügen einer Zeichenkette; ñ Löschen von Teilzeichenketten


ï ñ ò Information 356

Substitution von Codes



ZFCODE(<zeichenkette1>,<zeichenkette2>,[<von>],[<bis>])




Beispiel:
zfcode(A,a,1,1)


Aus jedem A wird ein a, wenn es auf Pos. 1 des Zwischenfeldes steht.
zfcode(ABCDEFGHIJKLMNOPQRSTUVWXYZ#124,abcdefghijklmnopqrstuvwxyz$,2,var9)


Von Position 2 des Zwischenfeldes bis zum Zwischenfeldende (siehe var9) sollen die Zeichen ausgetauscht werden.
zfcode(#142#132#153#148#154#129#225,#196#228#214#246#220#252#223)


Im Beispiel werden deutsche ASCII-Umlaute zu deutschen ANSI-Umlauten.
Merke: Ein Vergleichswert wird im ANSI-Code verglichen.

weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Substitution von Zeichenketten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren einer Konstanten; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Löschen von Teilzeichenketten


ï ñ ò Information 357

Numerische Variable



VAR1... VAR8=y



VAR9




Mit ZFCC('VAR9') wird der Wert von VAR9 in das Zwischenfeld als Zahl eingetragen.
DATE   DATUM
DATE2  DATUM2
DATE3  DATUM3
DATE4  DATUM4




Aufgerufen werden die Datumsformen z.B. mit ZFCC('DATUM2').

Beispiele:
VAR1=VAR1+1

VAR2=VAR9-VAR1

if VAR1<VAR9 goto marke1

ZFCC('VAR1') 


Der Inhalt von VAR1 wird als ganze Zahl ins Zwischenfeld gestellt. Die Zahlenkonvertierung erfolgt automatisch.
ZFCC('DATE3')


Ältere Windos-Versionen liefern das Datum falsch zurück. Im Zwischenfeld kann das Datum bearbeitet werden.
Beachten Sie, dass Apostroph gesetzt werden müssen.

weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Kopieren von Feldaussagen; ñ Kopieren in das Zwischenfeld; ñ Kopieren eines Feldes; ñ Kopieren einer Teilzeichenkette; ñ Kopieren einer Konstanten; ñ Zwischenfeld-Befehle; ñ Zwischenfeldanfang und Ende säubern; ñ Löschen von Teilzeichenketten


ï ñ ò Information 358

Position einer Zeichenkette ermitteln



VARx=ZFPOS(<zeichenkette>,[<von>][,<bis>])



VARx=ZFPOS1(<zeichenkette>,[<von>][,<bis>])




Beispiel:
var1=zfpos1(0123456789,30,var9)


Ermittelt die Position der ersten Ziffer im Zwischenfeld, die nach der Position 29 von links steht.
var1=zfpos1(';-,.;:?!()&$%"=+#39')


Ermittelt die Position des ersten Sonderzeichens im Zwischenfeld, beachte: #39. Das Apostroph, Leerzeichen und runde Klammern müssen immer in Apostroph gesetzt werden oder mit ihrem Bytewert dargestellt werden.

weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Zwischenfeld-Befehle; ñ Zwischenfeldanfang und Ende säubern; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Löschen von Teilzeichenketten


ï ñ ò Information 359

Löschen von Teilzeichenketten



ZFDELETE(<von>,<bis>)
{ZFDEL(...)}




Beispiele:
zfdelete(var1,var9)


Löscht von der Position VAR1 bis zum Zwischenfeldende, da VAR9 die Länge des Zwischenfeldes enthält. VAR1 muss grösser Null und kleiner oder gleich VAR9 sein.
if var2<13 goto marke1
zfdelete(13,var2)
:marke1


Löscht von Position 13 bis zur Position VAR2. VAR2 muss geprüft werden, ob sie grösser oder gleich der Anfangsposition für das Löschen ist, 13, da sonst ein Fehler auftritt.
zfdelete(13,255)


Löscht von Position 13 bis 255. Ist das Zwischenfeld kürzer, wird der Fehler ignoriert.
ZFERASE(<von>,<anzahl>)
 {ZFERA}




Sie können auch mit ZFSUBST löschen.

Beispiele:
ZFSUBST('LOESCHE DIESE ZEICHENKETTE',)

Der zweite Parameter wird leer gelassen.
zferase(var1,var3)


Löscht von Position VAR1 in der Länge von VAR3. VAR3 darf nicht Null sein. VAR1 muss kleiner als VAR9 sein. Ist die angegeben Länge grösser als das Zwischenfeld, wird der Fehler abgefangen.

weitere Informationen:

ñ Zwischenfeld-Befehle; ñ Zwischenfeldanfang und Ende säubern; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines


ï ñ ò Information 360

Zwischenfeldanfang und Ende säubern



ZFTRIMM(<anfzeichenex>,<endezeichenex>)




Beispiele:
zftrimm(0123456789,0123456789)


Beseitigt alle Ziffern vorn und hinten im Zwischenfeld.
zftrimm(#32,#32#124)


Beseitigt Leerzeichen vorn und hinten und Aussagentrenner nur hinten.

weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Substitution von Codes; ñ Substitution von Zeichenketten; ñ Einfügen einer Zeichenkette


ï ñ ò Information 361

Einfügen einer Zeichenkette



ZFINS(<zeichenkette>,<ab>)



weitere Informationen:

ñ Feldmanipulation, Transformationstabelle; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Allgemeines; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Substitution von Codes; ñ Substitution von Zeichenketten


ï ñ ò Information 362

Programmverzweigung mit Variablenwerten



IF VARx=y GOTO 


Bedingte Programmverzweigung in Abhängigkeit vom Wert y der Variablen VARx (x:1..9)
IF VARx>y GOTO

IF VARx
<y GOTO

IF VARx=y GOTO

IF VARx
<=y GOTO

IF VARx>=y GOTO

IF VARx
<>y GOTO 


<> steht für ungleich

weitere Informationen:

ñ Bedingungen für Kopieranweisungen; ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Allgemeines; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Transformationstabelle; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Substitution von Codes; ñ Substitution von Zeichenketten; ñ Zwischenfeld-Befehle


ï ñ ò Information 363

Programmschleifen



REPEAT <anweisungen> UNTIL 




Beispiel:
ZFBEGIN      zählt nur die Variable bis zehn als Abbruchbeispiel
VAR1=0
REPEAT
VAR1=VAR1+1
IF VAR1>10 GOTO M1
UNTIL
:M1
ZFENDE

weitere Informationen:

ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Allgemeines; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Transformationstabelle; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Substitution von Codes; ñ Substitution von Zeichenketten


ï ñ ò Information 364

Ein komplexeres Beispiel



Die Vornamen von Autoren sollen auf ihre Initialen gekürzt werden. Der Spezialfall der Doppel-Vornamen wird aus Platzgründen nicht gesondert behandelt.

Das Quellfeld habe folgenden Inhalt:

AU:Müller, Manfred|Meyer, Wolfgang|Schulze, Hans-Peter von

exec88:
zfbegin
if not exist(31) goto f2  Fehlt Feld 31, Sprung hinter ZFENDE
zfco(31)                  Kopiere Feld 31
zfcc(; )                   Anfügen an Feld für Endebedingungen
repeat                    Schleifenbeginn
var1=zfpos1(', ')         Ausgangsvariable einstellen
var2=var1+3               Position nach ', '
var4=var1+1               Position Leerzeichen
var3=zfpos(; )             Position; 
var5=var3-1               Position vor; 
if var5=0 goto f1         diverse Vergleiche
if var1<3 goto x1
if var3<4 goto x1
if var5<3 goto m1
zfdel(var2,var5)
if var3>var9 goto x1      Abbruchbedingung
:m1
zfsu(', ',XX,var1,var4)   Umsetzen wegen Anfangsbedingung
zfsu(; ,$,var3,var3)       Zeichentausch
showvars                  Variable im Testmodus anzeigen 
showzf                    Zwischenfeld im Testmodus anzeigen
until
:x1
zfsu(XX,'-')
zfsu(.,-)
zfsu(',',-)
zfsu(#32,-)
zfsu(')',-)
zfsu('(',-)
zfsu(#39,)
zfsu(--,-)
zfsu(-; ,; )
zfins(AU:,1)
zfcc(^)
zfsu(; ,$)
zfsu(-$,$)
zfsu($,'; ')
zfsu(;^,^)
zfsu(;,'; ')
showzf
zfende
exit
:f2
cc(AU:anonym)
cc(^)
:f1


Ergebnis sollte in etwa so aussehen:
AU:Müller-M; Meyer-W; Schulze-H

weitere Informationen:

ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Allgemeines; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Transformationstabelle; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Substitution von Codes; ñ Substitution von Zeichenketten


ï ñ ò Information 365

MEMO-Feld-Operationen



Ein MEMO-Feld ist ein zusätzlicher Pufferspeicher, der über die Verarbeitung eines Dokumentes hinaus mit Daten gefüllt werden kann. Er wird vom Programmierer auf Grund von Bedingungen gezielt gefüllt und entladen. Die maximale Länge ist 65000 Zeichen.
Mit den im flogenden beschriebenen Funktionen wird möglich:

  1. Text (Aussagen) in das Zwischenfeld kopieren,
  2. das Zwischenfeld bearbeiten mit den Zwischenfeldkommandos,
  3. das Zwischenfeld in das MEMO (Memory-Feld) kopieren und ggf. kumulieren,
  4. das Zwischenfeld zu löschen und dann
  5. neuen Text in das Zwischenfeld zu laden, zu bearbeiten usw...
  6. irgendwann das angesammelte MEMO-Feld in das Zwischenfeld zurück zu kopieren
  7. und das ganze mit ZFENDE auszugeben.


ZFADDMEMO




ZFCLEAR




ZFRESTOREMEMO




ZFMEMOCLEAR




Wenn mit einem MEMO-Feld gearbeitet wird, kann es sinnvoll sein, dieses am Anfang der EXEC-Prozedur zu löschen. MEMO-Felder bleiben bestehen und werden kumulativ gefüllt, bis sie explizit gelöscht werden.

weitere Informationen:

ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Allgemeines; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Transformationstabelle; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ Substitution von Codes; ñ Substitution von Zeichenketten; ñ Zwischenfeld-Befehle; ñ Zwischenfeldanfang und Ende säubern


ï ñ ò Information 366

Aussagenanzahl ermitteln



VARx=MAXAUSSAGEN(<feldname>)




VARx=MAXZFAUSSAGEN(ZF) 




Beispiel:

Alle Deskriptoren des Feldes DESKR, die eine REGISTERKENNUNG # haben, sollen nicht ausgegeben werden.
DESKR:Heisluftballon; #Wetterballon; #Luftdruckmessung; Drift

exec12:
zfbegin
if not exist(DESKR) goto f1
zfmemoclear
var1=zfmaxaussagen(DESKR)
var2=0
repeat
zfclear
var2=var2+1
if var2>var1 goto raus
zfcopyaussage(DESKR,var2,var2,; )
var3=zfpos1(#35,1,1)
if var3=1 goto schleife
zfcc(; )
zfaddmemo
:schleife
until
:raus
zfclear
zfrestorememo
zfmemoclear
zftrimm(; #32,; #32)
zfsu(; ,#32#124##32)
if var9<1 goto f2
zfins(DESKR:,1)
zfcc(^)
zfende
exit
:f2
cc('DESKR:FEHLER=ALLE DESKR MIT REGISTERKENNUNG')
cc(^)
exit
:f1

Ergebnis:

DESKR:Heisluftballon; Drift

weitere Informationen:

ñ Feldmanipulation, allgemeine Programmsyntax; ñ Feldmanipulation, Allgemeines; ñ Feldmanipulation, Datensatz-Syntax; ñ Feldmanipulation, Transformationstabelle; ñ Kopieren einer Konstanten; ñ Kopieren einer Teilzeichenkette; ñ Kopieren eines Feldes; ñ Kopieren in das Zwischenfeld; ñ Kopieren von Feldaussagen; ñ MEMO-Feld-Operationen; ñ Substitution von Codes; ñ Substitution von Zeichenketten; ñ Zwischenfeld-Befehle; ñ Zwischenfeldanfang und Ende säubern


ï ñ ò Information 367

XML-Format umsetzen/erzeugen



XML-Format umsetzen


Die Umformung eines XML-Dokumentes in einen MIDOS-Datensatz ist immer dann möglich, wenn das gelieferte XML-Format auf reguläre Weise erzeugt wurde.

Liegt die Formatbeschreibung der XML-Datei in Form einer DTD (document type description) vor, analysieren Sie die Hierarchie und Reihenfolge der XML-Markups (XML-Tags), danach die Attribute und die Zeichenentitäten in der DTD.

Liegt lediglich die XML-Datei vor, dann analysieren Sie die XML-Tags, ihre Hierarchie und ihre Wiederholbarkeit auf der Grundlage der Datei. Die Zeichenentitäten müssen Sie aus einer Statistik ermitteln (Zeichen: & und #).

Aus der Analyse leiten Sie die Regeln für eine Zeichenkettenmanipulation ab, mit der Sie zunächst die physische Struktur der XML-Datei in ein MIDOS-Datenbankformat umformen.

Die inhaltliche Umsetzung von XML-Dateien erfolgt im allgemeinen durch das Zusammenwirken von Zeichenkettenmanipulation und Feldmanipulation. Nachdem Sie das MIDOS-Datenbankformat erzeugt haben, müssen Sie aus den gelieferten Inhaltskomponenten Datensätze erzeugen, die für Ihre Datenbank gültigen Wertevorrat und gültige Inhalte haben.

XML zeichnet sich dadurch aus, dass semantische Strukturen/Elemente eines Texte mit Markups (Markierungen) in Form von XML-Tags markiert werden. Normalerweise kann immer eine Beziehung zwischen diesen XML-Tags und einem MIDOS-Datenfeld hergestellt werden.

XML-Markups müssen immer ein Ende-Tag haben, mit Ausnahme von sogenannten leeren Tags. Die XML-Dokumente besitzen immer ein Wurzeltag, jedes Dokument besitzt ein Start-Tag und ein Ende-Tag.
Jedes sinnvolle Dokument besitzt mindestens noch ein über seinen Inhalt definiertes Tag. Ein Markup kann durch Attribute modifiziert werden.

Beispiel:
Wurzel-Tag: 
<!XML ... >
Start-Tag:  
<RECORD ... >
Ende-Tag:   
</RECORD ... >
Inhalt:     
<TITEL language="GER">
            
</TITEL ... >
            
<AUTOR ... >
            
</AUTOR ... >
            
<STICHWORT thesaurus="EnvProt" language=GER>
            
</STICHWORT ... >
Leeres Tag: 
<DATUM datum="2000-30-10" format="ISO"/>

Es ist einzusehen, dass zumindest die Markups für AUTOR und STICHWORT multipel sein können. Ausserdem könnte im Markup für STICHWORT eine Modifizierung stattfinden, bei der das Attribut thesaurus oder language oder beide den Wert ändern, aber das Markup immer noch STICHWORT genannt wird. Andererseits ist XML auch ohne Attribute denkbar, weil die Anzahl der verschiedenen Markups praktisch beliebig gross sein kann.

Man könnte auch STICHWORTENGLISCH als Markup wählen oder den Thesaurusnamen im Markup unterbringen.
Hinweis:
In MIDOS2000 gibt es das XML-Markup <code> und </code> für den Fall, dass Sie in einem Datensatz HTML-Elemente, XML-Element oder SGML-Element erklären müssen, diese aber nicht vom HTML-Browser ausgewertet werden sollen. Sie müssen die Befehlserklärung in diese Markups einschliessen.

Die Markups müssen im Falle einer tieferen hierarchischen Gliederung sauber in sich geschachtelt sein. Alle gleichnamigen Markups der innersten Ebene müssen ggf. in einem MIDOS-Feldnamen zusammengefasst werden.
In der Zeichenkettenmanipulation geben Sie den Namen das Dokumentendetags als Satzendean, z.B.
Satzende:
</RECORD ... >

Hat das Markup für das Dokumentende Attribute, müssen diese alle bekannt sein, denn Sie müssen diese Attribute in einem speziellen Vorablauf der Zeichenkettenmanipulation in Felder umwandeln. Diese Felder müssen vor dem Satzende-Markup stehen, da sie nach dem Satzende nicht mehr manipuliert werden können. Üblicherweise sind solche Fälle selten.

Der allgemeine weitere Inhalt der Zeichenkettenmanipulation sollte sein:

  1. Umformen der Zeichenentitäten in ISO-Latin-1 oder ASCII,
  2. Umformen aller Attribute aller Markups in Felder oder in Feldaussagen ggf. mit Markierungen,
  3. Umformen der Markups in Feldnamen,
  4. Zusammenfassung gleichnamiger Markups eines XML-Dokuments in einem Feld zu mehreren Feldaussagen oder in mehreren, z.B. durchnumerierten Feldern,
  5. Auflösung der Hierarchie von der innersten zur äusseren Ebene,
  6. Reaktion auf bestimmte Attribute,
  7. Elemente einer Textgestaltung, ausser denen, die der Aufprägung einer semantischen Textstruktur dienen, dürfen eigentlich nicht in einem XML-Dokument vorkommen. Da es aber Menschen geben wird, die eine Begriffsdefinition im Text nicht mit einem XML-Tag für Definition, z.B. <DEFINITION lng=GER> und </DEFINITION> kennzeichen, was richtig wäre, sondern mit einer anderen Schriftauszeichnung, z.B. für KURSIV/FETT, was grundfalsch ist, sollten Sie sich nicht darauf verlassen. Suchen Sie ggf. nach Textauszeichnungen und setzen Sie diese ggf. in eigene innere Marken um, die Sie später weiterverarbeiten können.
  8. Entfernen aller nicht notwendigen Elemente, egal ob Markup oder Attribut. Sie brauchen z.B. das Sprachattribut nicht, wenn Sie ohnehin nur alle Dokumente in deutscher Sprache übernehmen. Wenn Sie ohnehin in Deutsch und Englisch suchen, brauchen Sie ggf. auch die anderen Attribute nicht usw..
  9. Umsetzung des Satzendes in das MIDOS-Satzende.


Sie müssen das Ergebnis mit der Datenbankanalyse prüfen und ggf. Markups und Attribute, die Ihnen nicht bekannt gemacht wurden, nachträglich umformen.

Wenn alle Markups in Felder und ggf. die Attribute von Markups auch zu Feldern gemacht wurden, dann kann mit der Feldmanipulation fortgesetzt werden. Die Attribute können im allgemeinen als Anweisungen für die Behandlung von Daten aufgefasst werden. Diese Behandlungsanweisungen setzen Sie in der Feldmanipulation in die Tat um.
Das Zwischenformat könnte z.B. folgende Form erhalten haben:
TITEL:language=GER; feldwert des titels ...
AUTOR: ...; autor1; ... autor2; ... 
STICHWORT:thesaurus=EnvProt; language=GER; stichwort1
; thesaurus=ChemInd; language=ENG; stichwort2 ...
DATUM:datum=2000-30-10; format=ISO
&&&

Es liegt ein gültiges MIDOS-Datensatzformat vor, dass mit Programmen der Feldmanipulation weiter verarbeitet wird.

Es wäre möglich, auf dem Niveau die Umsetzung zu beenden und die Datenbank aufzubauen. Alle Zeichenketten inclusive der, die aus Attributen erzeugt wurden, sind suchbar, in den Index aufnehmbar und ausgebbar.

Grafische Elemente werden in XML ebenfalls mit Markups ausgezeichnet. Da MIDOS2000 sowohl an beliebiger Stelle im Text als auch in Spezialfeldern Grafik-Referenzen zulässt, gibt es keine andere Behandlung von Markups für Grafik als für Text. Es kann allerdings sein, dass Attribute auf HTML-Standard zurückgesetzt werden müssen, um die Grafk mit dem internen HTML-Browser anzeigen zu können.

Wenn Ihnen das alles zu kompliziert erscheint, geben Sie die Lösung bei uns in Auftrag.

XML-Format umsetzen


Das XML-Format kann auf verschiedenen Wegen erzeugt werden:

  1. mit Hilfe von Ausgabebeschreibungen, die eine entsprechende Aufbereitung unter Anwendung des <code>-Markups vornehmen,
  2. in der Anwendung der ausschliesslichen Feldmanipulation,
  3. in Umkehrung des Verfahrens zur Umsetzung des XML-Formates durch die Kombination von Feldmanipulation für die inhaltorientierte, semantisch geprägte Erzeugung von Markups und die anschliessende physische Erzeugung der XML-Strukur mit dem Zeichenkettenmanipulator, z.B. um die notwendigen Zeichenumschriften im Text zu erzeugen.


Eine wichtige Voraussetzung müssen Sie schaffen:
Ihre MIDOS-Datenbank muss in der Lage sein, den Ansprüchen

die Sie selbst für das XML-Dokument definieren, auch gerecht zu werden.

Das XML-Wurzel-Tag und die DTD (nicht unbedingt erforderlich, aber zur Verständigung recht sinnvoll) erzeugen Sie als gesonderte Dateien. Für die Ableitung der DTD stellt die Datenbeschreibung oder die Ausgabebeschreibung die Basis dar. Sie editieren diese Dateien unter Verwendung der Standard-XML-Komponenten, die Sie aus dem Internet aktuell herunterladen müssen.

Sie können uns auch damit beauftragen, es für Sie zu tun.

Da Sie ein XML-Format nicht aus Spass erzeugen, müssen Sie sich ggf, nach den Wünschen des Empfängers/Anwenders Ihrer XML-Dateien richten, was die Namen der Markups und der Attribute betrifft. Sie finden den jeweils aktuellen Stand der international abgestimmten Markups im Internet bei den entsprechenden XML-Gremien.
Wenn Sie die XML-Datei im UNICODE benötigen, reden Sie mit uns.

weitere Informationen:

ñ SGML-Format umsetzen/erzeugen


ï ñ ò Information 368

SGML-Format umsetzen/erzeugen



SGML-Format umsetzen


Die Umformung eines SGML-Dokumentes in einen MIDOS-Datensatz ist immer dann möglich, wenn das gelieferte SGML-Format auf reguläre Weise erzeugt wurde.

Liegt die Formatbeschreibung in Form einer DTD (document type description) vor, analysieren Sie die Hierarchie und Reihenfolge der SGML-Markup's (SGML-Tags), danach die Attribute und die Zeichenentitäten in der DTD des Dokuments.

Da in SGML kein strenge Regeln für das Ende-Tag eines Markups existieren, sondern die Pflicht zum Setzen oder nicht Setzen des Ende-Tags in der DTD explizit geregelt werden muss, können Sie eine SGML-Datei ohne DTD nur schwer übersetzen.

Liegt lediglich die SGML-Datei vor, dann analysieren Sie die SGML-Tags, ihre Hierarchie und ihre Wiederholbarkeit auf der Grundlage der Datei. Versuchen Sie insbesondere, die Hierarchie zu ermitteln, um herauszufinden, welche Ende-Tags fehlen dürfen. Sie müssen damit rechnen, dass Sie nicht nur inhaltsgeprägte Markups finden werden, sondern jede Menge reine gestalterische Markups und Attribute. Sie müssen diese Unterscheiden.

Inhaltsgeprägte Markups werden Sie zu Feldern umformen, gestalterische Markups sollten Sie zu Markierung umformen, die Sie solange im Text mitführen, bis Sie sicher sind, dass Sie die Markierung auch entfernen können, ohne Schaden anzurichten, oder bis Sie wissen, dass Sie aus der Markierung ein Feld machen müssen, mit dem Sie ggf. Aufbereitungsprozesse steuern können/müssen.

Aus der Analyse leiten Sie die Regeln für eine Zeichenkettenmanipulation ab, mit der Sie zunächst die physische Struktur der SGML-Datei in ein MIDOS-Datenbankformat umformen.

Die inhaltliche Umsetzung von SGML-Dateien erfolgt im allgemeinen durch das Zusammenwirken von Zeichenkettenmanipulation und Feldmanipulation. Nachdem Sie das MIDOS-Datenbankformat erzeugt haben, müssen Sie aus den gelieferten Inhaltskomponenten Datensätze erzeugen, die für Ihre Datenbank gültigen Wertevorrat und gültige Inhalte haben.

SGML zeichnet sich eigentlich dadurch aus, dass semantische Strukturen/Elemente eines Texte mit Markup's (Markierungen) in Form von SGML-Tags markiert werden. Normalerweise kann immer eine Beziehung zwischen diesen SGML-Tags und einem MIDOS-Datenfeld hergestellt werden. Aber durch die Entwicklung in die HTML-Richtung wurde diese Strenge verwaschen und Sie werden auch nicht inhaltlich determinierte Strukturen finden.

SGML-Markup's müssen nicht immer ein Ende-Tag haben. Leere Tags mit implizierter Ende-Markierung gibt es in SGML nicht. Die SGML-Dokumente besitzen immer ein Tag für die obere Hierarchiestufe, müssen aber kein paarige Ende-Tag zu dieser Hierarchiestufe haben.


Ein Dokument muss ausser dem äussersten Hierarchietag kein weiteres Tag haben. Ein Markup kann durch Attribute modifiziert werden, die ausschliesslich aus der DTD vollständig ausgelesen werden können. Dazu können auch exteren Quellen für eine DTD existieren.

Beispiel:
<!SGML ... >
<RECORD ... >datensatz oder beliebiger text
  
<TITEL language="GER">text des titels
     
<UNTERTITEL>text des untertitels
      fehlende Ende-Tags gibt es in XML nicht.
      dafür gibt es leere tags
  
</TITEL ... >
  
<AUTOR attr="maennlich">
     
<NAME>name1
         
<VORNAME>vorname1
  
<AUTOR attr="weiblich">
     
<NAME>name2
         
<VORNAME>vorname2
  
<STICHWORT thesaurus="EnvProt" language="GER">
         stichwort1
  
</STICHWORT ... >
  
<DATUM datum="2000-30-10" format="ISO">
         30.10.2000 weil es in SGML keine 
         leeren tags gibt
  
</DATUM
</RECORD ... >

Es ist zu sehen, dass die Markups für AUTOR, UNTERTITEL, NAME und VORNAME keine Ende-Tags haben. Das jeweils folgende Markup bestimmt über die Reihenfolge und Wiederholbarkeitsregel in der DTD, ob eine Wiederholung folgt, einen untere Hierarchiestufe begonnen wird oder ob zu einer höheren Ebene zurückgekehrt wird. Es ist einzusehen, das ohne DTD der Analyseprozess solcher Dateien äusserst langwierig ist.

Ausserdem könnte im Markup für STICHWORT eine Modifizierung stattfinden, bei der das Attribut thesaurus oder language oder beide den Wert ändern, aber das Markup immer noch STICHWORT genannt wird. Andererseits ist SGML kaum ohne Attribute denkbar, weil die Anzahl der verschiedenen Markups praktisch nicht beliebig gross sein sollte. Dennoch könnte man auch STICHWORTENGLISCH als Markup wählen oder den Thesaurusnamen im Markup unterbringen.
Hinweis:
In MIDOS2000 gibt es das XML-Markup <code> und </code> für den Fall, dass Sie in einem Datensatz HTML-Elemente, XML-Elemente oder SGML-Elemente erklären müssen, diese aber nicht vom HTML-Browser ausgewertet werden sollen. Sie müssen die Befehlserklärung in diese Markups einschliessen.

Die SGML-Markups müssen im Falle einer tieferen hierarchischen Gliederung von innen nach aussen aufgelöst werden. Alle gleichnamigen Markups der innersten Ebene müssen ggf. in einem MIDOS-Feldnamen zusammengefasst werden, der aus dem Markup der höheren Ebene abgeleitet wird, wobei manchmal eine Markierung im Feld anzubringen ist, um den Zustand des Originals festzuhalten.

In der Zeichenkettenmanipulation geben Sie den Namen das Dokumentendetags als Satzendean, wenn jedes Dokument mit dem Dokumentendetag endet, Finden Sie bereits im ersten Dokument kein Dokumentende-Markup, dann müssen Sie das Dokumentanfangs-Markup als Satzende angeben. Es ist innerhalb einer SGML-Dokumentensammlung zur gleichen DTD nicht regulär, wenn das Ende-Tag fehlt, obwohl es als obligatorisch definiert ist. Sie müssen ggf. das Ende oder den Anfang als Endezeichenkette angeben, z.B.
Satzende:
<RECORD ... >

Satzende:
</RECORD ... >

Hat das Markup für das Dokumentende oder den Dokumentanfang Attribute, müssen diese alle bekannt sein, denn Sie müssen diese Attribute in einem speziellen Vorablauf der Zeichenkettenmanipulation in Felder umwandeln. Diese Felder müssen vor dem Satzende-Markup oder nach dem Satzanfangs-Markup stehen, da sie nach dem Satzende und vor dem Satzanfang nicht mehr in Bezug auf das gleiche Dokument manipuliert werden können.

Der allgemeine weitere Inhalt der Zeichenkettenmanipulation sollte sein:

  1. Umformen der Zeichenentitäten in ISO-Latin-1 oder ASCII,
  2. Umformen aller Attribute aller Markups in Felder oder in Feldaussagen und Markierungen,
  3. Umformen der Markups in Feldnamen,
  4. Zusammenfassung gleichnamiger Markups eines XML-Dokuments in einem Feld zu mehreren Feldaussagen oder in mehreren, z.B. durchnumerierten Feldern,
  5. Auflösung der Hierarchie von der innersten zur äusseren Ebene,
  6. Reaktion auf bestimmte Attribute,
  7. Elemente einer Textgestaltung, ausser denen, die der Aufprägung einer semantischen Textstruktur dienen, dürfen eigentlich nicht in einem SGML-Dokument vorkommen. Da es aber Menschen geben wird, die eine Begriffsdefinition im Text nicht mit einem SGML-Tag für Definition, z.B. <DEFINITION lng=GER> und </DEFINITION> kennzeichen, was richtig wäre, sondern mit einer anderen Schriftauszeichnung, z.B. für KURSIV/FETT, was grundfalsch ist, sollten Sie sich nicht darauf verlassen.
  8. Suchen Sie ggf. nach Textauszeichnungen und setzen Sie diese ggf. in eigene innere Markups um, die Sie später weiterverarbeiten können.
  9. Entfernen aller nicht notwendigen Elemente, egal ob Markup oder Attribut. Sie brauchen z.B. das Sprachattribut nicht, wenn Sie ohnehin nur alle Dokumente in deutscher Sprache übernehmen. Wenn Sie ohnehin in Deutsch und Englisch suchen, brauchen Sie ggf. auch die anderen Attribute nicht usw..
  10. Umsetzung des Satzendes in das MIDOS-Satzende.


Sie müssen das Ergebnis mit der Datenbankanalyse prüfen und ggf. Markups und Attribute, die Ihnen nicht bekannt gemacht wurden nachträglich umformen.

Wenn alle Markups in Felder und ggf. die Attribute von MArkups auch zu Feldern gemacht wurden, dann kann mit der Feldmanipulation fortgesetzt werden. Die Attribute können im allgemeinen als Anweisungen für die Behandlung von Daten aufgefasst werden. Diese Behandlungsanweisungen setzen Sie in der Feldmanipulation in die Tat um.
Das Zwischenformat soll z.B. folgende Form erhalten haben:
RECORD:datensatz oder beliebiger text
TITEL:language=GER; text des titels
UNTERTITEL:text des untertitels
AUTOR:attr=m; NM:name1; VN:vorname1; attr=w NM:name2; VN:vorname2
STICHWORT:th=EnvProt; language=GER; stichwort1
DATUM:2000-30-10; 30.10.2000
&&&

Es liegt ein gültiges MIDOS-Datensatzformat vor, das mit Programmen der Feldmanipulation weiter verarbeitet wird. In der Zeichenkettenmanipulation wurden bereits einige übertriebene Attribute gekürzt.

Es wäre möglich, auf dem Niveau die Umsetzung zu beenden und die Datenbank aufzubauen. Alle Zeichenketten inclusive der, die aus Attributen erzeugt wurden, sind suchbar, in den Index aufnehmbar und ausgebbar.

Grafische Elemente werden in SGML ebenfalls mit Markups ausgezeichnet. Da MIDOS2000 sowohl an beliebiger Stelle im Text als auch in Spezialfeldern Grafik-Referenzen zulässt, gibt es keine andere Behandlung von Markups für Grafik als für Text. Es kann allerdings sein, dass Attribute auf HTML-Standard zurückgesetzt werden müssen, um die Grafk mit dem internen HTML-Browser anzeigen zu können.

Wenn Ihnen das alles zu kompliziert erscheint, geben Sie die Lösung bei uns in Auftrag.

SGML-Format erzeugen


Das SGML-Format kann auf verschiedenen Wegen erzeugt werden:

  1. mit Hilfe von Ausgabebeschreibungen, die eine entsprechende Aufbereitung unter Anwendung des <code>-Markups vornehmen,
  2. in der Anwendung der ausschliesslichen Feldmanipulation,
  3. in Umkehrung des Verfahrens zur Umsetzung des SGML-Formates durch die Kombination von Feldmanipulation für die inhaltorientierte, semantisch geprägte Erzeugung von Markups und die anschliessende physische Erzeugung der SGML-Strukur mit dem Zeichenkettenmanipulator, z.B. um die notwendigen Zeichenumschriften im Text zu erzeugen.


Eine wichtige Voraussetzung müssen Sie schaffen:
Ihre MIDOS-Datenbank muss in der Lage sein, den Ansprüchen



die Sie selbst für das SGML-Dokument definieren, auch gerecht zu werden.

Die DTD (unbedingt erforderlich, weil zur Verständigung notwendig) erzeugen Sie als gesonderte Dateien. Für die Ableitung der DTD stellt die Datenbeschreibung oder die Ausgabebeschreibung die Basis dar. Sie editieren diese Dateien unter Verwendung der Standard-SGML-Komponenten, die Sie aus dem Internet aktuell herunterladen müssen.

Sie können uns auch damit beauftragen, es für Sie zu tun.

Da Sie ein SGML-Format nicht aus Spass erzeugen, müssen Sie sich ggf, nach den Wünschen des Empfängers/Anwenders Ihrer SGML-Dateien richten, was die Namen der Markups und der Attribute betrifft. Sie finden den jeweils aktuellen Stand der international abgestimmten Markups im Internet bei den entsprechenden SGML-Gremien.

Wenn Sie die SGML-Datei im UNICODE benötigen, reden Sie mit uns.

weitere Informationen:

ñ XML-Format umsetzen/erzeugen


ï ñ ò Information 369

MIDOS-Datenbankeditor



Der MIDOS-Datenbankeditor ist eine Komponente von MIDOS2000, mit der Sie eingebettet und kontrolliert vom MIDOS-Datenbankmanager arbeiten können oder die Sie als selbständiges Programm benutzen können.

Mit dem MIDOS-Datenbankeditor



Ausserdem können Sie das Erfassungsmenü hinsichtliche der Feldgrössen dynamisch während der Erfassung anpassen und verschiedene Einstellungen über Optionenvornehmen, z.B. die Schrift.
Eine a; lgemeine Hilfe, nämlich die, die Sie gerade lesen, führt Sie durch die Funktionen der Erfassung.
Eine weitere Hilfefunktion können/sollten Sie selbst erarbeiten: Das ist die feldbezogene Hilfe in der Sie sich und den am Erfassungprozess Beteiligten Regeln vorgeben, deren Einhaltung bei der Eingabe in die Felder der Datenbeschreibung eine ordnungsgemäße, dem Ziel der Informationsbereitstellung dienende Datenerfassung garantieren.

weitere Informationen:

ñ Hilfe; ñ Programmaufruf, Starten; ñ Bearbeiten; ñ Funktionen; ñ Optionen; ñ Beenden


ï ñ ò Information 370

Programmaufruf, Starten



Sie können den Editor als externes Programm durch die in Windows übliche Startfunktion aufrufen mit Start/Ausführen/MWEDI.EXE oder durch Doppelklick im MIDOS-Dateimanager auf eine Datei mit einer Endung wie .DBM, .MDS, .NWD oder .DAT.

Wenn Sie den Editor als internes Programm aus dem kompakten Grundmenü des MIDOS-Datenbankmanagers starten wollen, dann können Sie den Mauszeiger auf den Anfang der Datenbankdatei stellen, auf irgendeinen Datensatz beliebiger Nummer, auf einen markieren oder in einer Trefferliste relevanten Datensatz.

Sie bewegen dazu den Mauszeiger mit Klick auf den Scrollbutton (vorwärts oder rückwärts scrollen) des Scrollfeldes an die gewünschte Stelle der Datenbankdatei.

Im MIDOS-Grundmenü sind ausserdem die Funktionen Löschen von Datensätzen,Neuerfassung von Datensätzen und Starten der Erfassung mit Datensatz ändern über die Funktion Datensätze bearbeiten benutzbar. Innerhalb des Editors stehen diese Funktionen ebenfalls zur Verfügung.

Im folgenden werden nur die Funktionen innerhalb des Editors beschrieben. Das Notwendige zum Zusammenwirken zwischen dem Grundmenü des MIDOS-Datenbankmanagers und den Funktionen des MIDOS-Datenbankeditors finden Sie unter der Grundfunktion Datenbank bearbeiten.
Beachten Sie, dass die Datenbeschreibung Einfluss auf die Datenerfassung hat und das eine Reihe von Funktionen angeboten werden, die sehr hilfreich sein können, wenn sie sorgfältig vorbereitet und konsequent angewendet werden.

Zu den Grundverfahren der Information und Dokumentation, des Archivwesens und des Bibliothekswesens gehören:



Der MIDOS-Datenbankeditor unterstützt diese allgemein anerkannten Verfahren der Information und Dokumentation.

Es kann nicht Aufgabe dieser Dokumentation sein, Ihnen das Wissen über diese Grundverfahren der Informationsbe- und Verarbeitung wissenschaftlicher Literatur beizubringen. Wenn Sie mehr über diese Verfahren wissen wollen, dann fordern Sie bei uns entsprechende Literatur an oder lassen Sie uns eine Lehrveranstaltung für Sie organisieren.

weitere Informationen:

ñ Hilfe; ñ Bearbeiten; ñ Funktionen; ñ Optionen; ñ Beenden


ï ñ ò Information 371

Bearbeiten



Die Funktion Bearbeiten im Datenbankeditor stellt die folgenende Funktionalität bereit:



Wenn Sie beispielsweise die Aufgabe haben, einen älteren Datenbestand zu bereinigen, wobei die Annahme getroffen wird, das z.B. der Firmenname ATCO-MONTO GmbH, Dresden, D in allen Dokumenten gleich geschrieben werden soll, dann können Sie das wie folgt ausführen: Sie suchen eine signifikante Zeichenkette z.B. ATC oder MONT im Feld FIRMA und tragen beim 1. Treffer den richtigen Namen ein. Dann suchen Sie weiter und bei jedem weiteren Treffer übernehmen Sie den Wert mit der F12-Taste. Sie müssen natürlich sicher sein, dass es sich tatsächlich bei dem Treffer um die Firma handelt. Sie können diese Einfügung auch über die Zwischenablage durchführen. In diesem Fall können Sie zwischen Einfügen aus der Zwischenablage, ohne vorheriges Löschen des Feldinhalts und der F12-Taste, mit Löschen des aktuellen Inhalts, hin- und her wechseln.

Die Zwischenablage-Funktionen können mit markierten Zeichenketten, ganzen Feldern oder ganzen Datensätzen umgehen. Die Funktionen sind auch auf Menü-Button zum Schnellzugriff vorgesehen bzw. liegen auf den üblichen Windows-Tastenkombinationen. Im einzelnen stehen zur Verfügung:



Die maximale Länge einer Zeichenkette zum Einfügen, Kopieren und Ausschneiden kann z.Zt. 32000 Zeichen betragen.

Sie können



Die maximale Länge eines Feldes zum Einfügen, Kopieren und Ausschneiden kann z.Zt. 32000 Zeichen betragen. Die Feldlänge von 32000 Zeichen steht nur zur Verfügung, wenn Sie die Option Feldlängen ignorieren eingeschaltet haben, sonst gilt die Länge aus der Datenbeschreibung.
Bisweilen kann es sinnvoll sein, ganze Datensätze über die Zwischenablage zu übertragen. Dafür stehen die Funktionen zur Verfügung:



Bei dem Datenaustausch von Sätzen über die Zwischenablage spielt die Datenstruktur eine Rolle. So werden z.B. Feldnamen mit in die Zwischenablage gestellt.

Bei der Übernahme von Datensätzen aus der Zwischenablage wird vorausgesetzt, dass ein gültiges MIDOS-Datensatzformat vorliegt. Es müssen Felder existieren, jeder Feldwert muss eine Zeichenkette ohne dazwischen stehende CRLF sein, die Feldnamen müssen denen der Datenbeschreibung entsprechen, jedes Feldende muss durch ein CRLF markiert sein und der Eintrag in der Zwischenablage muss mit &&& abgeschlossen sein.

Bei der Übernahme aus der Zwischenablage erfolgt ggf. eine automatische Zeichensatzkonvertierung ASCII-ANSI, wenn die aktuelle Datenbank im ANSI-Code definiert ist.

Felder, die in dem Datensatz in der Zwischenablage stehen, aber in der Datenbeschreibung nicht bekannt sind, werden nicht übertragen.

Markierte Zeichenketten löschen Sie mit der Entf-Taste.
Desweiteren können Sie über Schnell-Button oder das Menü



Wenn Sie Löschfunktionen benutzen, vergewissern Sie sich gründlich, ob die Löschung wirklich ausführen wollen.
Beachten Sie den Unterschied zwischen alle Felder löschen und Datensatz löschen.

Normalerweise starten der Datenbankeditor im Änderungsmodus bei einem von Ihnen gewählten Datensatz. Sie können in den Modus Neuerfassung wechseln. Dabei stehen einige Lösch- und Markierungsfunktionen und der Scrollbalken nicht zur Verfügung, aber z.B. wird die Funktion automatische Numerierungaktiv, wenn diese über Optionen ausgewählt wurde.

Aus der Neuerfassung wechseln sie mit Beenden oder ESC-Taste zurück zum Änderungsmodus.

Mit Nächsten gelangen Sie zur Eingabe eines weiteren neuen Dokuments. Beachten Sie, dass der Modus Neuerfassung mit keiner andern Funktion verlassen werden kann, als mit Beenden. Zweimal ESC-Taste beendet die Erfassung ohne Änderungen abzuspeichern.

Ausserdem steht die Funktion Satz einfügen zur Verfügung mit der Sie im Änderungsmodus ein neues Dokument an einer von Ihnen gewünschen laufenden Satznummer einfügen können. Beim Satz einfügen ist die automatische Numerierung ausgeschalten, so dass die Datenbankdatei ggf. in einem gesonderten Durchlauf neu durchnumeriert werden muss.

Als weitere wichtige Funktionen sind verfügbar:


weitere Informationen:

ñ Funktionen; ñ Optionen; ñ Programmaufruf, Starten; ñ Hilfe; ñ Beenden ñ Dateipfad einfügen; ñ Einfügen von Fremddateien; ñ Feld zeilenweise; ñ Feldaussagen sortieren; ñ Grafik-Pfad einfügen; ñ Schablonen (Masken)


ï ñ ò Information 372

Schablonen (Masken)



Bei vielen Datenbankanwendungen ist es möglich, immer wiederkehrende Angaben oder Angaben, die über einen mehr oder weniger langen Zeitraum konstant sind, als Stammdaten zu hinterlegen, und sie automatisch in Datensätze einzufügen. Bei bibliografischen Daten sind solche Angaben z.B. Zeitschriftentitel oder Serientitel, ggf. auch Konferenztitel, wenn die Konferenz Seriencharakter trägt.

Es ist ausserdem zu erwarten, dass das Eingabeschema in Abhängigkeit von dem zu beschreibenden Objekt/Dokument bzw. der Objektklasse/Dokumentenart differenzierte Datenfeld-Zusammenstellungen im konkreten Erfassungsmenü erfordert um die Erfassung zu vereinfachen. Beispielsweise wäre ein Datenfeld NORMNUMMER bei der Erfassung eines PATENTDOKUMENTS eher störend.

Die daraus erwachsenden Anforderungen können im Datenbankeditor durch die Erarbeitung, Benutzung und Pflege von Erfassungsmasken unter der Funktion Schablone (Maske) durch den Anwender erfüllt werden.

In einer Schablone bestimmen Sie, wie die Erfassungsmaske für eine definierte Klasse von Objekten aussehen soll, indem Sie folgende Festlegungen treffen:



Wenn Sie die Funktion Schablone (Maske) erstmals aufrufen, betätigen Sie Neue Schablone. Die Tabelle zeigt Ihnen den Feldnamen/die Feldbezeichnung der Datenbeschreibung an und informiert Sie über den Datentyp. Sie können je Feld folgende Festlegungen treffen:



Folgende Kombinationen sind nicht sinnvoll:

HIDE und Feldvorbelegung,
RO und Feldvorbelegung mit Einfügesymbol und Pflichtfeld,
HIDE und Pflichtfeld.

Es erfolgt auch bei der Schablonen-Eingabe eine Kontrolle auf zulässige Längen und Datentypen.

Wenn Sie die erste Schablone für die praktische Datenerfassung entwickelt haben, z.B. weil Sie mit einer Zeitschrift beginnen wollen, zu dokumentieren, dann Speichern Sie die Schablone ab und Schliessen den Schabloneneditor.

Sie sind dann wieder im Datenbankeditor und können jetzt die soeben definierte Schablone über den Namen durch markieren und Doppelklick oder über den OK-Button auswählen. Überprüfen Sie nun in der Praxis durch echte Eingaben, ob alles richtig aus der Schablone übernommen wird, alle Felder verfügbar sind, die zu dem zu erfassenden Objekt gehören und ob alle unnötigen Felder tatsächlich ausgeblendet sind.

Wenn Angaben nicht stimmig sind, rufen Sie die Schablone über die Funktion Schablone (Maske) erneut auf und tragen Sie die Änderungen ein. Vor dem Abspeichern der Änderung erhalten Sie eine Warnung.

Die Schablonenpflege umfasst auch deien Funktion zum Löschen einer Schablone.

Wenn Sie in die Funktion Schablone (Maske) wechseln, dann ist die aktuelle Schablone auch die, die zu Änderung angezeigt wird. Sie können über das Schablonennamefeld im Menü auch eine andere Schablone zur Änderung auswählen oder eine neue erstellen.

Wenn Sie die Schablonendatei, der Name ist MWMASKEN, an Dritte weitergeben, aber verhindern wollen, dass die Schablonen unzulässigerweise verändert werden, dann schalten Sie Schablone/Optionen nicht änderbar ein. Sie müssen die Datei MWEDI.INI (im Datenbankverzeichnis) dann ebenfalls weitergeben.

Sichern Sie, dass eine zentrale Pflege der Schablonendatei erfolgt.

Was Sie tun müssen, wenn mehrere Datenerfassungsplätze in einem Netz zusammenarbeiten wird in einem gesonderten Abschnitt behandelt.

Mehr über Schablonen können Sie vielleicht auch der Beispiel-Datei MWMASKEN entnehmen.

Aus älteren MIDOS-Versionen stammende Dateien vom Typ MISCHABN können in Dateien vom Typ MWMASKEN konvertiert werden. Diese Konvertierung erfolgt mit dem Sonderprogramm MIDOS3.0-Schablonendatei konvertieren, dass in MIDOS97 enthalten ist und auf Wunsch bereitgestellt wird (via E-Mail über progris@progris.de anfordern).

weitere Informationen:

ñ Funktionen; ñ Optionen; ñ Programmaufruf, Starten; ñ Hilfe; ñ Beenden ñ Dateipfad einfügen; ñ Einfügen von Fremddateien; ñ Feld zeilenweise; ñ Feldaussagen sortieren; ñ Grafik-Pfad einfügen


ï ñ ò Information 373

Einfügen von Fremddateien



Mit der Funktion Fremddatei einfügen ... Strg+F können Datensätze, Felder oder markierte Ausschnitte aus Feldern aus einer anderen MIDOS-Datei übernommen werden. Sie können auch Text aus eine Textdatei übernehmen.

Vor der tatsächlichen Übernahme ist es möglich eine Anpassung der Datenstruktur der MIDOS-Datei an die aktuelle Datenbeschreibung vorzunehmen, die im wesentlichen mit den Mitteln der Zeichenkettenmanipulation beschrieben wird.

Die Anpassungsregeln können in einer Datei abgespeichert werden und sind damit später wiederverwendbar.

Eine Anpassung kann auch für Textdateien vorgenommen werden, wenn es in der Textdatei ausreichende Markierungen gibt, an der eine Zeichenkettenmanipulatione ansetzen kann, um ein MIDOS-Format zu erzeugen.

Sie können für die Anpassung auch einen Stapelverarbeitungsprozess mit MIDOS-Update vorbereiten. Dies wird ggf. bei schwierigeren Anpassungen erforderlich sein, wenn z.B. Inhalte von Feldern mit Translate zu übersetzen wären.

In der Anpassungstabelle tragen Sie auf der linken Seite eine zu suchende Zeichenkette ein, auf der rechten Seite tragen Sie die dafür zu erzeugende Zeichenkette ein.

z.B.:

Überschrift

Alte ZeichenketteNeue ZeichenketteWas passiert?
???&&&Datensatzende ändern
#13#10AUTHOR:#13#10VERF:Name des Autorenfeldes ändern
#13#10TITLE:#13#10TITEL:Name das Titelfeldes ändern
VERF==;; Aus Semikolon im Feld VERF wird der Aussagentrenner Senkrechtstrich


Anpassungen können auch für Feldwerte erfolgen. Dabei müssen Sie sich aber gut in dem Inhalt der Fremddatei auskennen. Wenn die Fremddatei eine MIDOS-Datei ist, dann melden Sie diese als Datenbank an und analysieren Sie die Datenbank mit den Funktionen Datenbankanalyse und Suchliste. Arbeiten Sie danach die Anpassungsregeln aus oder benutzen Sie gleich die gesamte Datenbank so, wie sie ist.

Gemeinsame Ausgabeleistungen mit einheitlichem Aussehen können allerdings Sie nur garantieren, wenn die Anpassung durchgeführt wurde und auch gelungen ist.

Über die Funktion Fremddatei wählen Sie die Datei aus, aus der Datensätze übernommen werden sollen. Als Hilfe stehen die Button Datei holen und Felder holen bereit.

Die Felder für die Herstellung einer Wortliste werden entweder der Datenbeschreibung entnommen oder wenn diese nicht vorhanden ist, automatisch ermittelt. Sie wählen ein oder mehrere Indexfelder für die Wortliste aus und legen ggf. noch Index mit Einzelwortauflösung fest.

Dann folgt die Erstellung oder die Aktualisierung des Indexes mit Index aktualisieren. Für die Datei mit den zu übernehmenden Datensätzen bilden Sie einen Index Wortliste, um schnell durch die Datei manövrieren zu können.

Wenn Sie z.B. nur Datensätze zu einem bestimmten Zeitschriftentitel suchen und übernehmen wollen, würden Sie einen Index über das Feld ZEITSCHRIFT herstellen. Dann wählen Sie die zu übernehmenden Dokumente über den Indexeintrag (konktreter Zeitschriftentitel) aus.

Mit Suchen/Anzeigen wird Ihnen der erste Treffer oder mehrere Treffer angezeigt. Sie sehen die Treffer als Text im Speicherformat und in einer einzeiligen Zeichenkettendarstellung. Nun können Sie wählen:



Wenn Sie im Modus Neuerfassung sind, können Sie die Datensätze nacheinander in der einzeiligen Anzeige markieren und dann im ganzen übertragen.

Sie sehen die Dokumente im Speicherformat, nachdem Ihre Anpassungs-Anweisungen ausgeführt wurden. Sollten Ihnen Fehler auffallen, müssen Sie diese erst in der Anpassungstabelle beheben.

Felder die in dem zu übernehmenden Datensatz enthalten sind, aber nicht in der Datenbeschreibung der aktuellen Datenbank, werden nicht übertragen.

Liegt eine einigermaßen strukturierte Textdatei vor, in der Sie z.B. Anfang und/oder Ende eines Datensatzes erkennen können und innerhalb derer einige Feldanfänge oder Feldenden erkennbar sind, dann ist es sinnvoll, eine grobe MIDOS-Datensatzstruktur mit MIDOS-Update zu erzeugen und dann die Übernahme anzupassen.
Die Hantierung bei der Übernahme von Texten aus Textdateien erfolgt analog zu der, die mit MIDOS-Dateien vorrzunehmen wäre.

weitere Informationen:

ñ Funktionen; ñ Optionen; ñ Programmaufruf, Starten; ñ Hilfe; ñ Beenden ñ Dateipfad einfügen; ñ Feld zeilenweise; ñ Feldaussagen sortieren; ñ Grafik-Pfad einfügen; ñ Schablonen (Masken)


ï ñ ò Information 374

Dateipfad einfügen



Mit der Funktion Dateipfad einfügen ... Strg+P fügen Sie in Ihr Datenfeld einen absoluten Verweis auf eine Datei ein, z.B. C:\MDS2000\MDOK\ALLDOK.HTM .

Wenn die referenzierte Datei über die Dateiverbindung im MIDOS-Dateimanager oder im MS Windows-Explorer mit einer Software hergestellt wurde, dann wird in der Vollanzeige diese Referenz als Hyperlink dargestellt. Mit Doppelklick wird dann die betreffende Software gestartet und die referenzierte Datei geöffnet.

Ist die referenzierte Datei vom Typ Ausführbare Datei (EXE, BAT) dann können wir nicht garantieren, was passiert.

Eine PDF-Datei wird z.B. angezeigt, indem der Acrobat Reader gestartet wird, z.B. C:\MDS2000\MDOK\PDF\A5TEST1.PDF .

Weitere Dateitypen könnten z.B. .DOC oder .TXT sein. Die Ausführung der Links ist bei den HTML-Ausgabeformen möglich.

weitere Informationen:

ñ Funktionen; ñ Optionen; ñ Programmaufruf, Starten; ñ Hilfe; ñ Beenden ñ Einfügen von Fremddateien; ñ Feld zeilenweise; ñ Feldaussagen sortieren; ñ Grafik-Pfad einfügen; ñ Schablonen (Masken)