
	Trainsimulator - Utility "TSUtil"


Version : 3.3.06
Stand   : 13.07.2007

Bedienungsanleitung:

Das vorliegene Utility soll die Wartung und Modifikation von Strecken erleichtern bzw.
ermoeglichen. Es vereint verschiedene Funktionen, die im folgenden beschrieben werden.

Einleitung:
Zur Ausfuehrung dieses Utilities wird lediglich eine "Java-Runtime-Umgebung" vorausgesetzt.
Nach der Installation (siehe: Installation des ...) kann das Utility sofort verwendet werden.
Der Aufruf erfolgt GRUNDSAETZLICH und unabhaengig von der Funktion, als Java-Applikation aus
einem DOS-Fenster. Durch den Verzicht auf eine grafische Oberflaeche ist die Aktivierung
der einzelnen Funktion zwar etwas "kryptisch" und die Ausgaben (Fehler und Meldungen)
erfolgen in das DOS-Fenster aber die Ausfuehrung ist relativ effektiv.
Wenn man die Standard - Pufferwerte des DOS-Fensters veraendert (z.B.400 Zeilen) kann man
alle Ausgabezeilen - unabhaengig von einer LOG-Datei - einfach pruefen. Dennoch ist es
sinnvoll eine LOG-Datei schreiben zu lassen, da diese weitere Informationen enthaelt.

WICHTIG:
  Bei der Eingabe der Befehle muss grundsaetzlich auf Gross-Kleinschreibung geachtet werden.
  Das Programm reagiert zwar nicht immer sensitiv auf die Art der Eingabe, doch wenn man immer
  auf Gross-Kleinschreibung achtet, werden manche Fehler vermieden.

WICHTIG:
  Immer eine Datensicherung herstellen, bevor das Utility benutzt wird.

SEHR WICHTIG:
  Mit der Version 3 wurde die Vorgehensweise bei ALLEN Funktionen (soweit nicht anders angegeben)
  in der Weise geaendert, dass nicht mehr ALLE Dateien eines Verzeichnisses bearbeitet werden,
  sondern nur die Dateien, die sich auf BESIEDELTE Strukturquadrate beziehen. Ggf. ist damit eine
  Korrektur der Strecke durch den Streckengeometrie-Editor notwendig.

Hintergrund zu den World-Dateien (Formatdefinitionen):
  Um World-Dateien veraendern zu koennen, muessen diese in der "unkomprimierten Textform"(UT) vorliegen:
  Die World-Dateien (.w) koennen insgesamt in VIER verschiedenen Versionen vorliegen:
	- [UT] unkomprimierte Text - Datei (Unicode, Kennung beginnt mit: "SIMISA@@")
	- [KT] komprimierte Text - Datei (Unicode, Kennung beginnt mit: "SIMISA@F")
	- [UB] unkomprimierte Binaer - Datei (ASCII, Kennung beginnt mit: "SIMISA@@")
	- [KB] komprimierte Binaer - Datei (ASCII, Kennung beginnt mit: "SIMISA@F")
  Bemerkung: Folgende Namenskonventionen werden von mir benutzt:
	Das 'unkomprimierte Text'-Format wird auch als 'Erweitertes Format' bezeichnet, waehrend
	das 'unkomprimierte Binaer'-Format auch als 'Reduziertes Format' bezeichnet wird.
	Beide Formate koennen zusaetzlich durch den Z-Lib-Algorithmus komprimiert werden.
  Mit Hilfe des vom TS mitgelieferten Utilities "ffeditc_unicode" koennen die World - Dateien zwischen
  den verschiedenen Formen umgewandelt werden. Ein Aufruf wandelt dabei um:
	a) Option /u :	UT->UB; UB->UT; KT->UB; KB->UT
	b) Option /c :	UT->KB; UB->KT; KT->KB; KB->KT
  Es ist somit ggf. notwendig eine World - Datei mehrfach zu konvertieren (Option /u), um sie in der
  Form UT vorliegen zu haben.(KT->UB->UT) Die UT-Form ist die einzige Version, die mit Hilfe eines
  Editors veraendert werden kann. Um zu entscheiden welche Form vorliegt, koennen die ersten Zeichen
  jeder Datei gelesen werden und mit den Kennungen verglichen werden. Dabei muss die Datei erst als
  ASCII Datei gelesen werden um zu pruefen, ob eine binaere Form vorliegt. Nur wenn dabei Unsinn
  gelesen wird, kann ein zweiter Versuch mit dem Lesen von Unicode-Daten erfolgen. Das Lesen einer
  binaeren Datei als Unicode-Datei erzeugt einen Lese - Fehler, da ungueltige Unicode - Zeichen
  erkannt werden.
  Die Umwandlung von "ffeditc_unicode" erfolgt nicht fehlerfrei. Schon eine Umwandlung bewirkt, dass
  verschiedene Objekte nicht immer sichtbar und nicht mehr manipulierbar sind. Der Streckeneditor ist
  jedoch in der Lage jeden Quadranten korrekt in die Text - Form [UT] umzuwandeln. Ein Vergleich der
  Ergebnisse zeigt, dass im Bereich der "ViewDbSphere" - Eintraege erhebliche Struktur - Unterschiede
  auftraten. Bei der Umwandlung mit Hilfe von "ffeditc_unicode" wird eine erheblich tiefere Schachtelung
  dieser Elemente und damit eine groessere Satzlaenge erzeugt.
  Um einen Quadranten fehlerfrei in die UT - Form umzuwandeln ist es deshalb notwendig, den Streckeneditor
  zu nutzen.

  Alternativ koennen die Programme 'Comp' und 'DeComp' von Martyn Griffin zum Einsatz gelangen, die die
  Komprimierung/Dekomprimierung fehlerfrei vornehmen(recmp119.zip). Diese Routine ist/war auch in
  Route - Riter implementiert.
  ACHTUNG: Diese Programme koennen mit World-Dateien, die in der KT-Version vorliegen nicht korrekt umgehen.
	In diesem Fall ist "ffeditc_unicode" zu nutzen.

  Auch mit dem neuen Programm-Modul von Okrasa Ghia kann eine effektive Komprimierung/Dekomprimierung/
  Expandierung/Reduzierung durchgeführt werden. Dieses Modul wird auch von Route-Riter ab Version 6 verwendet.
  Es zeichnet sich durch eine hohe Performance aus und basiert ebenfalls auf den Algorithmen von 
  Martyn Griffin. Auch für dieses Modul ist ein Stand-alone-programm verfügbar. (Zipper/tk_utils)
  ACHTUNG: Dieses Modul benötigt die 'framwork.net'-Umgebung von Microsoft.

  Auf Grund der Zusammenarbeit mit Mike Simpson (Route-Riter) ist ab der Version 3.0.140 auch eine
  Komprimierung-/Dekomprimierungsroutine in TSUtil implementiert. Diese ist in der Lage beim Lesen einer
  World-, Tile- oder Shape-Datei, diese implizit zu dekomprimieren und beim Schreiben wieder zu komprimieren.
  Damit entfaellt die Vorraussetzung, dass eine TSUtil-Funktion eine dekomprimierte Datei fordert.

  Bemerkung: Die Schienendatenbank liegt IMMER in einer Form vor, die direkt bearbeitet werden kann.



Eine kompakte Zusammenfassung(Hilfe) erhaelt man mit dem Aufruf:
	C>java TSUtil ?

Beim Aufruf von TSUtil koennen 'Systemoptionen' eingefuegt werden, die das Java-Runtimesystem steuern.
Diese sind von der Version dieses 'Environments' abhaengig. So kann z.B. durch die Option '-Xmx256m'
der verfuegbare Speicher auf 256MB vergroessert werden (Default=64MB):
	"java -Xmx256m TSUtil ...." 

Vor den einzelnen Funktionspezifikationen, koennen jeweils GLOBALE OPTIONEN angegeben werden. Diese sind 
immer ohne Syntaxfehler angebbar, auch wenn eine einzelne Funktion diese Option nicht unterstuetzt.
Welche globale Option jeweils verwendet wird, ist in der Aufruf-Beschreibung der einzelnen Funktionen
angegeben. Folgende globale Optionen sind moeglich:

 -l[<logdat>]	: Mit dieser Option wird die Ausgabe der Verlaufs- und Fehlermeldungen auf eine
			LOG-Datei aktiviert. Wird optional der Name der LOG-Datei (<logdat>) NICHT
			angegeben oder ist ungueltig, so erfolgt die Ausgabe auf eine Datei mit dem FESTEN Namen
			"TSUtil.log", die im aktuellen Verzeichnis angelegt/ueberschrieben wird.
			Falls diese Option (erfolgreich) spezifiziert wird, hat die zusaetzliche Angabe einer
			Log-Datei (soweit moeglich) innerhalb des Funktionsaufrufs keine Wirkung.
			Funktionen, bei denen dies PRINZIPIELL noch moeglich ist, sind in der Funktionsliste
			(s.u.) mit '+' gekennzeichnet.
 -k	: Mit Hilfe dieser Option koennen die Kennungen der einzelnen Meldungen angezeigt werden.
		Sie bewirkt, dass bei der Ausgabe einer Meldung in die Log-Datei, dieser Meldung die
		Meldungskennung in geschweiften Klammern vorangestellt wird.
 -e	: Diese globale Option bewirkt, dass die Ausgabe von 'Hinweisen' und 'Warnungen' sowohl
		in der Log-Datei als auch auf dem Bildschirm unterdrueckt wird
 -w	: Diese globale Option bewirkt, dass die Ausgabe von 'Hinweisen' sowohl in der Log-Datei
		als auch auf dem Bildschirm unterdrueckt wird
 -m<id>	: Mit dieser Option kann die Ausgabe einzelner Meldungen sowohl in der Log-Datei als auch
		auf dem Bildschirm unterdrueckt werden. <id> ist dabei die Kennung der Meldung, deren
		Ausgabe unterdrueckt werden soll. Diese Kennung kann aus der aktuellen Datei
		"TSErrMsg_xx.properties" entnommen werden. Diese globale Option kann mehrmals angegeben
		werden.
		ACHTUNG: Bei der Angabe der Meldungskennung muss auf Gross-/Klein-Schreibung
			geachtet werden.
 -h[<pfad>]	: Wenn mit Hilfe einer lokalen Option Dateinamen fuer Schienenobjekte modifiziert werden,
			wird automatisch der Ziel-Dateiname um den Zugriffspfad
			'../../Routes/<route>/Shapes/' erweitert. Mit Hilfe dieser Option '-h' ist es nun
			moeglich, diese Erweiterung abzuaendern. Wird diese Option zusammen mit einer
			Pfadangabe genutzt, so wird diese Pfadangabe anstatt der oben angegebenen verwendet.
			Diese Pfadangabe kann Platzhalter verwenden, die bei der Pruefung durch konkrete
			Werte ersetzt werden. Es gilt:
				%0 - <aktueller Routenname>
				%1 - "../../Routes/" (fester Wert)
			ACHTUNG: Die Pfadangabe MUSS laenger als 8 Zeichen sein, damit sie akzeptiert wird.
				('\\' zaehlt als EIN Zeichen, da es durch '/' ersetzt wird.)
			Falls KEINE Pfadangabe vorgenommen wird, wird der Standard-Pfad auf "<route>/"
			umgestellt, sodass in diesem Fall angenommen wird, dass die zusaetzlichen Schienen-
			Shapes im Verzeichnis 'global/shapes/<route>' liegen.
			Diese Option ueberschreibt die Option '-H', falls diese bereits spezifiziert wurde. 
 -H	:  Wenn mit Hilfe einer lokalen Option Dateinamen fuer Schienenobjekte modifiziert werden, wird
		automatisch der Ziel-Dateiname um den Zugriffspfad '../../Routes/<route>/Shapes/'
		erweitert. Mit Hilfe dieser Option '-H' ist es nun moeglich, diese automatische	Erweiterung
		abzuschalten. Ist diese Option angegeben wird der modifizierte Dateiname nicht mehr mit einem
		Zugriffspfad erweitert.
		Diese Option ueberschreibt die Option '-h', falls diese bereits spezifiziert wurde.
		ACHTUNG: Diese Option ist für TSUtil-Versionen VOR 3.3.04 immer aktiv. (gemaess Wirkung)


Damit sieht der Aufruf von TSUtil insgesamt wie folgt aus:
	java [<system-optionen>] TSUtil [<globale-optionen>] <funktionsname> [<lokale-optionen>] ...

Hinweis: Ab sofort ist das Utility auch in Form einer jar-Datei verfuegbar. Derjenige, der sich
	damit auskennt, kann die einzelnen Funktionen auch aus dieser jar-Datei aktivieren. Damit
	ist zum Aufruf auch eine Verknuepfung erstellbar.
	z.B: "javaw -jar [<system-optionen>] TSUtil.jar ..."
	     "java -jar [<system-optionen>] TSUtil.jar ..."


Folgende Funktionen sind in der aktuellen Version verfuegbar (Nummer der Beschreibung in Klammern):
+	- adjh   : Anpassen der Hoehendefinitionen einer Strecke (16)
	- chgdb  : Modifizieren der Schienendatenbank "*.tdb" (6)
+	- chkup  : Pruefen zweier globaler 'tsection.dat'-Dateien auf Kompatibilitaet (15)
+	- clrdb  : Bereinigen der Resourcendefinitionen einer Strecke (20)
	- cmkr   : Erstellen einer Marker-Datei (4)
+	- cmp    : Komprimieren/Reduzieren von Dateien (S,T,W) in das binaer-Format (17)
+	- cmpw   : Komprimieren der World-Dateien durch das Programm "Comp" von Martyn Griffin (10)
+*	- cvrt   : Konvertieren und Anpassen einer Streckendefinition (5)
	- dcpy   : Selektives Kopieren von Dateien (7)
	- filter : Pruefen und Korrigieren der Geometrie-Definition einer Strecke (9)
	- fmgr   : Komprimiern/Dekomprimieren/Reduzieren/Expandieren von Dateigruppen (S,T,W) (24)
+*	- ichk   : Integritaetspruefung einer Streckendefinition (12)
+	- merge  : Mischen einer Streckendefinition in eine andere (19)
+*	- move   : Verschieben einer Streckendefinition (14)
+	- rendb  : Neunumerierung der Schienen-/Strassendatenbank (13)
	- shftdyn: Verschieben der dynamischen Definitionen aus der lokalen 'tsection.dat' (22)
	- shift  : Verschieben von Shape/Section-Bereichen in der globalen 'tsection.dat' (8)
*	- tsconv : Umwandeln ALLER Strecken in einer TS-Instanz (11)
+	- unc    : Dekomprimieren/Expandieren von Dateien (S,T,W) (18)
	- version: Anzeigen/Ausgeben der Versionsidentifikationen der TSUtil-Klassen (23)
	- wcmp   : Komprimieren der World-Dateien in das binaer-Format (2)
	- wcmpo  : Komprimieren der World-Dateien in das binaer-Format (only) (3)
	- wunc   : Dekomprimieren der World-Dateien (1)
	- zusi   : Aufbereiten einer Streckendefinition fuer den Import nach ZUSI (21)

* - Diese Funktionen bilden den Hauptteil des vorliegenden Utilities.

Sofern nicht anderweitig beschrieben, werden die Ergebnisse der einzelnen Funktionen als Kopie in
einem neuen Verzeichnis ('\newRoute') abgelegt. Die Dateistruktur einer Streckendefinition wird dabei
beibehalten und die Unterverzeichnisse werden entsprechend erzeugt. Alle Funktionen so so designed, dass
ein TDB-Rebuild vermieden werden kann.

Es gilt jedoch: NUR wenn TSUtil KEINE Fehler meldet, die an dem Vorlauf "--->" erkennbar sind, ist
garantiert, dass alle notwendigen Aenderungen in den neu erzeugten Daten auch durchgefuehrt wurden.
Es ist jedoch moeglich, dass trotz Fehlermeldungen die Funktion korrekte Ergebnisse geliefert hat.

Begriffsbestimmungen:
  Nebenbahnschiene
	Eine Nebenbahnschiene ist ein Schienenobjekt('TrkObkj'), das in der World-Datei als statisches
	Objekt ('Static') definiert wird. Es enthaelt aber weiterhin ALLE Eigenschaften eines
	Schienenobjektes und ist auch in der Schienendatenbank eingetragen. Eine Nebenbahnschiene zeigt
	KEINE Oberleitung auch wenn die Strecke elektrifiziert ist.
	Ein solches Objekt wird - in Anlehnung an das Tool, das diese Objekte zuerst erstellt hat - auch
	'Hidewire-Objekt' genannt (insbesonders in den Meldungen).

1) Dekomprimieren der World-Dateien
  Mit der Funktion "wunc" kann man veranlassen, dass ALLE World-Dateien in die
  "unkomprimierte Textform" (UT-Form) d.h. in die Form, die man mit dem Editor direkt
  bearbeiten kann, umgewandelt werden.
  Dazu erstellt das Programm intern eine Liste der World-Dateien, prueft in welcher Form
  diese vorliegen und konvertiert sie ggf. durch einen oder mehrere Aufrufe von
  "ffedic_unicode" in die richtige Form.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] wunc <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition, die die World-Dateien enthaelt
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log wunc C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Dateien im Verzeichnis 'world' der Strecke mit den Dateien aus dem Verzeichnis
		'newRoute/world' ueberschreiben.

2) Komprimieren der World-Dateien in das binaer-Format
  Mit der Funktion "wcmp" kann man veranlassen, dass ALLE World-Dateien in die
  "komprimierte Binaerform" (KB-Form) d.h. in eine Form, die die Ladezeiten optimiert,
  umgewandelt werden.
  Dazu erstellt das Programm intern eine Liste der World-Dateien, prueft in welcher Form
  diese vorliegen und konvertiert sie ggf. durch einen oder mehrere Aufrufe von
  "ffeditc_unicode" in die richtige Form. Hierzu werden die Dateien ERST in die UT-Form (vgl. 1)
  umgewandelt um danach durch einen zusaetzlichen Aufruf von "ffeditc_unicode" in die KB-Form
  komprimiert zu werden.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] wcmp <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition, die die World-Dateien enthaelt
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log wcmp C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Dateien im Verzeichnis 'world' der Strecke mit den Dateien aus dem Verzeichnis
		'newRoute/world' ueberschreiben.

3) Komprimieren der World-Dateien in das binaer-Format (only)
  Mit der Funktion "wcmpo" werden - wie in der vorangehenden Funktion - die World-Dateien
  in die "komprimierte Binaerform" (KB-Form) umgewandelt. Im Gegensatz zur vorangehenden 
  Funktion (vgl. 2) werden jedoch NUR die World-Dateien durch einen Aufruf von
  "ffeditc_unicode" umgewandelt, die in der UT-Form (vgl. 1) vorliegen. ALLE anderen World-
  Dateien werden NICHT veraendert.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] wcmpo <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition, die die World-Dateien enthaelt
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log wcmpo C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Dateien im Verzeichnis 'world' der Strecke mit den Dateien aus dem Verzeichnis
		'newRoute/world' ueberschreiben.

4) Erstellen einer Marker-Datei
  Bei Verwendung der Kartenserie "TOP50" ist es moeglich einzelne Koordinaten in eine
  Datei abzuspeichern. Die dort erzeugte Datei erhaelt die Endung ".coo".
  Mit dieser Funktion ist es moeglich, diese Datei in eine Marker-Datei umzuwandeln.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-m<id>] cmkr <datei>
  Hierbei gilt:
	"datei" ist der Dateiname mit Pfad und OHNE Endung der Datei, die die
		Koordinatendefinitionen enthaelt
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. : "java TSUtil cmkr C:\koord"
	Hier wird die Datei "C:\koord.coo" in die Markerdatei "C:\koord.mkr" umgewandelt.

  Hinweis: Fuer die Umwandlung wird ausschliesslich Markertyp "2" benutzt.

  Einsatz der erzeugten Daten:
	- Datei ggf. umbenennen und in das Hauptverzeichnis der Strecke verschieben

5) Konvertieren und Anpassen einer Streckendefinition 
  Mit dieser Funktion("cvrt") ist es moeglich, verschienden Aenderungen und Anpassungen an einer
  Streckendefinition durchzufuehren. Dies schliesst auch eine Aenderung durch einen Austausch der
  globalen Datei "tsection.dat" ein. Weiterhin kann auch z.B. eine Neu-Numerierung der
  UiD-Kennungen erfolgen.

  Falls eine Aenderung der globalen '"tsection.dat" korrigiert werden soll, sind folgende 
  Voraussetzungen notwendig, damit diese Funktion korrekt laeuft:
	- Die originale globale "tsection.dat", mit der die betroffene Strecke definiert
		und bearbeitet wurde, muss noch verfuegbar sein.
	- Die neue modifizierte globale "tsection.dat" muss sich im Verzeichnis
		"global" befinden
  Diese Funktion erkennt auch reine Veraenderungen wie den Austausch von Shape-Definitionen
  und korrigiert automatisch die Referenzen. Um eine Zuordnung (alt-neu) jedoch einwandfrei
  feststellen zu koennen ist es notwendig, dass INNERHALB der Shape-Definitionen keine
  Veraenderung der Reihenfolge der Suboptionen(z.B. SectionIdx) erfolgt ist. Falls eine
  Zuordnung im Einzelfall nicht moeglich ist (z.B. wegen Fehlerkorrektur), kann diese mit
  Hilfe der Option '-v' auch manuell erfolgen. 

  Diese Funktion modifiziert sowohl die besiedelten World-Dateien als auch die Schienendatenbank
  und die Strassendatenbank und erstellt sie neu. Ausserdem wird im gleichen Verzeichnis eine neue
  "lokale" tsection.dat-Datei erzeugt. Damit ist es NICHT notwendig, die Schienendatenbank neu
  aufbauen zu lassen.

  Wenn keine Aenderungen an der globalen "tsection.dat" erfolgt sind, kann die Referenz
  (-b-Option) weggelassen werden. Damit sind nur Aktionen wie Neu-Numerierung der
  UiD-Kennungen und Beseitigung von Luecken in der lokalen tsection.dat aktiv. Eine
  Umnumerierung der dynamischen Track-Definitionen erfolgt nicht mehr.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] cvrt [-r] [-s] [{-c|-u}] [-k] [-v<nr1>:<nr2>]
		[-b<datei>] [{-H|-h{1|2|3}[:<s1>:<s2>]}] [-m[<nr>:<s1>:[<s2>]]] [-z{1|2|3}[:<s1>:[<s2>]]] <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"datei" ist der Dateiname (mit Pfad) der ALTEN "tsection.dat" -Datei. Diese Datei muss nicht
		zwingenderweise als 'tsection.dat' benannt sein.
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll
	Wenn die Option "-r" spezifiziert wird, wird eine neue Numerierung der
		UiD-Kennungen innerhalb jeder World-Datei veranlasst. Sollte dies auf
		Grund von Fehlern in einzelnen Dateien nicht moeglich sein, so wird eine
		Fehlermeldung ausgegeben und die neue Numerierung unterdrueckt.
	Wenn die Option "-s" spezifiziert wird, wird geprueft, ob alle in der NEUEN
		'tsection.dat' referenzierten Shape-Dateien auch vorhanden sind.
	Wenn die Option "-c" angegeben wird, werden die World-Dateien (*.w) auf jeden Fall in
		der komprimierten Binaer-Version [KB] geschrieben. Normalerweise, werden World-Dateien
		im selben Format geschrieben, wie sie auch gelesen wurden. Diese Option wird durch
		die Angabe von '-u' ggf wieder zurueckgesetzt.
	Wenn die Option "-u" angegeben wird, werden die World-Dateien (*.w) auf jeden Fall in
		der unkomprimierten Text-Version [UT] geschrieben. Normalerweise, werden World-Dateien
		im selben Format geschrieben, wie sie auch gelesen wurden. Diese Option wird durch
		die Angabe von '-c' ggf wieder zurueckgesetzt.
        Die Zuordnung von SHAPE-Definitionen aus der ALTEN zu der NEUEN 'tsection.dat' (-b) kann
		auf Grund von Aenderungen in der Definition des Shapes nicht moeglich sein.
		Mit der Option "-v" kann MANUELL eine Zuordnung definiert werden. 'nr1' gibt
		dabei eine Shape-Kennung aus der ALTEN 'tsection.dat' an und 'nr2' beschreibt
		den zugeordneten Shape aus der NEUEN 'tsection.dat'. Die manuelle Zuordnung
		wird NUR dann aktiv, wenn keine andere Zuordnung moeglich war.
		Die Option '-v' kann MEHRFACH angegeben werden.
	Option "-k" schaltet den Korrekturmodus für World-Dateien ein. Wenn diese Option aktiv ist,
		gelten fuer die Pruefung der Objekt-Definitionen zusaetzlich folgende Regeln:
		+ Doppelte Definitionszeilen bewirken NICHT mehr, dass die gesamte Objekt-Definition
			ungueltig ist. Stattdessen wird eine Meldung erzeugt und die zweite Zeile
			ignoriert.
		+ Fehlende Definitionszeilen werden - falls moeglich - mit Default-Werten hinzugefuegt.
	Optionen "-h" und "-H" werden verwendet, um Schienendefinitionen in statische Objekte, den
		Nebenbahnschienen, umzuwandeln oder um diese Umwandlung zu unterdruecken.
		(vgl. auch 'Hidewire')
		Normalerweise werden alle Objekte, die bereits als Nebenbahnschiene definiert waren und zur
		Prüfung in ein 'TrackObj' zurueckgewandelt wurden, wieder in eine Nebenbahnschiene konvertiert.
		Wenn die Option '-H' angegeben wird, wird die Rückwandlung unterdrueckt und das Objekt
		wird als 'TrkObj- oder 'DynTrack'-Definition in die World-Datei eingetragen. Eventuelle
		Modifikationen des Dateinamens gehen verloren. In diesem Fall kann die Option '-h' nicht
		zusaetzlich angegeben werden. Die Option '-H' enthaelt keine weiteren Angaben.
		Die Verwendung von Option '-H' impliziert die Aktivierung von Option '-m' (ohne Argumente), um
			eine eventuelle Modifikation der Dateinamen zurueckzunehmen.

		Die Option '-h' spezifiziert, dass weitere 'TrkObj'-Definitionen in eine statische
		Schienenrepraesentation (Hidewire-Objekt) gewandelt werden sollen. In dieser Option wird in
		Folge eine Zahl(1,2,3) angegeben, die den 'StaticDetailLevel' einer 'TrackObj'-Definition,
		die in eine Nebenbahnschiene konvertiert werden soll, selektiert. Nur Schienenobjekte
		('TrackObj'), die den angegeben Level haben, werden in eine solche (statische) Definition
		konvertiert. Dann, und nur dann, ist auch die Modifikation des Dateinamens dieses Objektes
		moeglich. Wenn eine Datenkette angegeben wird, wird der Anfang des Dateinamens mit dieser
		Datenkette verglichen und falls er uebereinstimmt, (Gross-/Kleinschreibung wird NICHT beachtet)
		wird dieser Teil des Dateinamens durch den zweiten angegebenen Namen ersetzt.
		Die Option '-h' kann bis zu 3 mal angegeben werden. Falls '-h' spezifiziert wird, kann '-H'
		nicht mehr verwendet werden.
		Beispiel: '-h1:A:Xt' - Alle Schienenobjekte die einen 'StaticDetailLevel' von 1 haben,
			werden in Nebenbahnschiene umgewandelt. Falls der Dateiname dieser Definition
			mit 'A' beginnt, wird dieses 'A' durch 'Xt' ersetzt. (A1t10mstrt.s -> Xt1t10mstrt.s)
		Achtung: Falls das Veraendern des Dateinamens aktiv ist, wird der originale Dateiname mit
			dem Schluesselwort 'TreeTexture' zusaetzlich in das World-Objekt eingefuegt. Dieses
			Schluesselwort wird bei statischen Objekten ignoriert und wird verwendet, um die
			Aenderung des Dateinamens wieder rueckgaengig machen zu koennen.
	Option "-m" kann verwendet werden, um den Dateinamen von Schienen-/Strassen-objekten zu modifizieren und
		damit das Aussehen dieser Objekte zu beeinflussen. Option '-m' wandelt im Gegensatz zur
		Option '-h' die Schienenelemente NICHT in Hidewire-Objekte um.
		Wird die Option '-m' OHNE weitere Angaben genutzt, werden ALLE Modifikationen der Dateinamen
		permanent zurueckgenommen. Normalerweise werden einmal durchgefuehrte Veraenderungen des
		Dateinamens beibehalten.
		Wenn auf die Option '-m' eine Zahl folgt, gibt diese den geforderten 'StaticDetailLevel' des
		Schienenelementes an, damit die Modifikation erfolgen kann. Es sind hier die Werte '0' sowie
		'4' bis '9' erlaubt. Damit eine Korrektur des Namens erfolgt, ist es weiterhin notwendig, dass
		der Dateinamen mit der Zeichenkette beginnt, die als Datenkette "s1" angegeben wird. Dann und
		nur dann wird dieser Teil des Dateinamens durch die Datenkette "s2" ersetzt. Falls "s2" nicht
		angegeben wird, eine Nullkette verwendet.
		Option '-m' kann mehrfach angegeben werden auch wenn der gleiche 'StaticDetailLevel' benutzt wird.
		ACHTUNG: Wenn fuer ein Schienen-/Strassen-Objekt der aktuelle 'StaticDetailLevel' mit dem
			spezifizierten uebereinstimmt, wird eine eventuelle Modifikation des Dateinamens
			zurueckgenommen, bevor versucht wird, den Dateinamen erneut zu modifizieren. Wenn also
			der Dateinamen mit KEINEM der angegebenen "s1"-Datenketten beginnt, geht eine
			voherige Modifikation verloren.
		Beispiel: '-m4:A:Xt' - (vergleiche Option '-h')
		Achtung: Falls das Veraendern des Dateinamens erfolgt, wird der originale Dateiname mit
			dem Schluesselwort 'TreeTexture' zusaetzlich in das World-Objekt eingefuegt. Dieses
			Schluesselwort wird bei Schienenobjekten ignoriert und wird verwendet, um die
			Aenderung des Dateinamens wieder rueckgaengig machen zu koennen.
	Option "-z" wird verwendet um statische Objekte, die Schienendefinitionen darstellen und als solche nicht
		mehr zu erkennen sind, in ein 'TrackObj' zurueckzuwandeln. (vgl. auch '-h-Option')
		Die dieser Option folgende Zahl(1,2,3) gibt dabei an, welchen 'StaticDetailLevel' das 
		erzeugte 'TrackObj' unabhaengig von seinem aktuellen Level erhalten soll.
		Um zu entscheiden, ob ein Objekt gewandelt werden muss, wird der Dateiname des statischen
		Objektes mit allen 'Shape'-Namen der 'tsection.dat' verglichen. Ist dieser identisch, wird
		das statische Objekt in das entsprechende 'TrackObj'-Objekt gewandelt und die fehlenden
		Definitionszeilen erzeugt.
		Falls in der Option angegeben (Datenkette "s1"), wird VOR dem Vergleich des Dateinamens eine
		(lokale) Modifikation vorgenommen. Dazu wird der Anfang des Dateinamens mit dieser Datenkette
		verglichen und falls er uebereinstimmt, (Gross-/Kleinschreibung wird NICHT beachtet) wird dieser
		Teil des Dateinamens durch den zweiten angegebenen Namen (falls vorhanden, sonst '') ersetzt.

		Die Option '-z' kann beliebig oft angegeben werden.
		Beispiel: '-z1:Xt:A' - Die Dateinamen aller statischen Objekte werden geprueft, ob sie mit 'Xt'
			beginnen. Ist das NICHT der Fall, trifft diese Option NICHT zu und das Objekt bleibt
			ggf. unveraendert. Im anderen Fall, wird im Dateinamen 'Xt' durch 'A' ersetzt und geprueft,
			ob es in der aktuellen globalen 'tsection.dat' eine Shape-Definition mit diesem Namen gibt.
			Wenn dieses der Fall ist, wird ein entsprechendes TrackObj erzeugt. Dieses erhaelt einen
			'StaticDetailLevel' von 1. (Xt1t10mstrt.s -> At1t10mstrt.s)
		Achtung: Falls das Veraendern des Dateinamens aktiv ist und das statische Objekt in ein
			TrackObj'-Objekt gewandelt wird, wird der gefundene originale Dateiname ebenfalls
			gespeichert, sodass er beim rueckwandeln dieses Objektes in ein 'Hidewire'-Objekt
			(Option '-H' NICHT spezifiziert) als Ziel-Dateiname genutzt werden kann.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log cvrt -bC:\tsection.dat C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Verzeichnis 'world' der Strecke loeschen und mit dem Verzeichnis 'world' aus 'newRoute'
		ersetzen.
	- Dateien aus dem Verzeichnis 'newRoute' in das Hauptverzeichnis der Strecke verschieben
		und vorhandene Dateien ueberschreiben.

6) Modifizieren der Schienendatenbank ".tdb"
  Mit dieser Funktion ist es moeglich, die Schienendatenbank an eine Aenderung der
  globalen Datei "tsection.dat" anzupassen. Diese Funktion ist dann sinnvoll, wenn
  der Aufbau der Schienendatenbank (gemaess 'Erweiterter Option') nicht funktioniert.
  Eine Anpassung von weiteren Dateien wird NICHT vorgenommen.

  Diese Funktion analysiert die spezifizierte Schienendatenbank, modifiziert alle Referenzen
  auf Shapes und Sections auf Grund der angegebenen neuen Eckwerte und erstellt im Originalverzeichnis
  eine Kopie mit der Endung ".tdb$/.rdb$".

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil chgdb <datei> [<shn> <scn> [<sha> <sca>]]
  Hierbei gilt:
	"datei" ist der Dateiname (mit Pfad) der Schienendatenbank (.tdb/.rdb)
        "sha" ist der aktuell benutzte Eckwert fuer Shapes (Default=263)
        "sca" ist der aktuell benutzte Eckwert fuer Sections (Default=376)
        "shn" ist der neu zu benutzende Eckwert fuer Shapes (Default=5000)
        "scn" ist der neu zu benutzende Eckwert fuer Sections (Default=5500)

  z.B. fuer ProTrain 1: "java TSUtil chgdb
	C:\TRSim\routes\ProTrain_Rheintal\ProTrain_Rheintal.tdb 40000 40000"

  HINWEIS: Diese Funktion arbeitet - im Gegensatz zu 5) - auf reiner Satz-Basis. Damit ist
  	es moeglich, dass je nach Angabe der Werte "sha", "sca", "shn" und "scn" die maximale
  	Satzlaenge der Schienendatenbank anwaechst(z.B. Sectionnummer 6-stellig statt 3-stellig).
  	Da die maximal NUTZBARE Satzlaenge der Schienendatenbank nicht bekannt ist, liegt hier
  	ein moeglicher Fehler.

  Einsatz der erzeugten Daten:
	- Datei *.tdb loeschen und Datei *.tdb$ in *.tdb umbenennen. ODER
	- Datei *.rdb loeschen und Datei *.rdb$ in *.rdb umbenennen.

7) Selektives Kopieren von Dateien
  Ein Aufruf der Funktion "dcpy" vergleicht die Dateistruktur basierend auf Verzeichnis 1
  Datei fuer Datei mit der Verzeichnisstruktur basierend auf Verzeichnis 2. Jede
  Datei/Verzeichnis aus der Verzeichnisstruktur 1, die nicht in der Verzeichnisstruktur 2
  vorhanden ist oder ein neueres Datum besitzt, wird an die entsprechende Stelle der
  Verzeichnisstruktur basierend auf Verzeichnis 3 kopiert. Dabei werden eventuell fehlende
  Zwischenverzeichnisse automatisch erstellt.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] dcpy [-a] [-o] <verz1> <verz2> <verz3>
  Hierbei gilt:
	"verz1" ist der Dateipfad auf die Basis-Streckendefinition
	"verz2" ist der Dateipfad auf die Vergleichs-Streckendefinition
	"verz3" ist der Dateipfad auf die Ziel-Streckendefinition
	Wenn die Option "-a" spezifiziert wird, werden auch die Dateien mit
		Endung ".bk" beachtet. Im anderen Fall werden diese Dateien weder
		geprueft noch kopiert.
	Die Option '-o' bewirkt, dass Dateien aus der Verzeichnisstruktur 1 NUR dann in die 
		Verzeichhnisstruktur 2 kopiert werden, wenn die Datei sowohl in der Verzeichnis-
		struktur 2 vorhanden ist als auch ein neueres Datum besitzt.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log dcpy C:\TRSim\routes\ProTrain_Rheintal
			C:\TRSimV\routes\ProTrain_Rheintal C:\TRSimN\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- der Verzeichnisbaum, der bei Verzeichnis <verz3> beginnt erhaelt die kopierten Dateien.

8) Verschieben von Shape/Section-Bereichen in der globalen 'tsection.dat'
  Die Funktion "shift" verschiebt ShapeId- und/oder SectionId-Bereiche in der
  angegebenen GLOBALEN "tsection.dat" und erstellt eine Kopie unter einem neuen Namen, der
  durch Anhaengen von '$' an den alten Namen gebildet wird.
  Dabei werden nur die Id's und die Referenzen auf diese Id's veraendert indem der
  Verschiebungswert addiert wird. Eine neue Sortierung der Eintraege findet NICHT
  statt.
  Um einen Bereich (Shapes ODER Sections) NICHT zu verschieben, wird als Verschiebungswert
  "0" angegeben. Die Werte der Grenzen sind in diesem Fall irrelevant, muessen aber
  korrekt eingegeben werden.
  Der Verschiebungswert kann sowohl positiv als auch negativ sein. Die Bereiche - 
  und das betrifft sowohl Quell- als auch Ziel-Bereich - muessen aber innerhalb der
  definierten Grenzen (0,maxShape/maxSection) liegen.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] shift <datei>
		<shl> <shh> <shd> <scl> <sch> <scd>
  Hierbei gilt:
	"datei" ist der Dateiname (mit Pfad) der globalen "tsection.dat"-Datei
	"shl" ist die untere Grenze des ShapeId-Bereiches (inklusive)
	"shh" ist die obere Grenze des ShapeId-Bereiches (exklusive)
	"shd" ist der Verschiebungswert fuer die ShapeId's
	"scl" ist die untere Grenze des SectionId-Bereiches (inklusive)
	"sch" ist die obere Grenze des SectionId-Bereiches (exklusive)
	"scd" ist der Verschiebungswert fuer die SectionId's
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B.: "java TSUtil -lC:\Logdat.log shift C:\TRSim\Routes\tsection.dat 0 400 2000 0 400 2000"
  	Hier werden die Definitionen zwischen 0 und 400 an die Stelle 2000 verschoben.

  RESTRIKTION: Damit diese Funktion korrekt laeuft duerfen innerhalb eines KOMMENTARS
  	die Worte "TrackSections", "TrackShapes", TrackSection" und "TrackShape"
  	nicht vorkommen. Ein solcher Kommentar muss aus der globalen "tsection.dat"
  	vorher entfernt werden. Nach der Verschiebung kann er wieder hinzugefuegt werden.

  Einsatz der erzeugten Daten:
	- die Eintraege der Datei 'tsection.dat' (global) so sortieren, dass die Indices aufsteigend
		vorliegen. Dann kann die Datei eingesetzt werden. Eventuell muessen die Strecken
		mit 'cvrt' an die neue Datei angepasst werden.

9) Pruefen und Korrigieren der Geometrie-Definition einer Strecke
  Die Funktion 'filter' prueft die Geometrie-Daten einer Strecke auf Vollstaendigkeit. Jede
  Tile-Definition, die keine Tile-Daten besitzt wird dabei entfernt, d.h die Markierung als
  'besiedelt' wird fuer diesen Tile geloescht. Durch die Option '-w' kann diese Pruefung noch
  verschaerft werden. Wenn diese Option aktiv ist, wird die Markierung als 'besiedelt' auch
  dann zurueckgenommen, wenn ein Tile KEINE World-Datei besitzt.
  Es werden sowohl die Tile- als auch die LO_Tile-Definitionen ueberprueft.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] filter [-w] <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition, die die World-Dateien enthaelt
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll
	Wenn die Option "-w" spezifiziert wird, werden auch die World-Dateien als
		Fehlerkriterium benutzt. Die Markierung einer Tile-Definition, die in diesem
		Fall keine World-Definition besitzt, wird geloescht.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log filter C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Verzeichnis 'TD' der Strecke loeschen und mit dem Verzeichnis 'TD' aus 'newRoute' ersetzen.

10) Komprimieren der World-Dateien durch das Programm "Comp" von Martyn Griffin
  Mit der Funktion "cmpw" werden die World-Dateien in eine komprimierte Form umgewandelt.
  Im Gegensatz zu den oben beschrieben Funktionen wird dazu das Programm "Comp" von
  Martyn Griffin verwendet, das unter dem Namen "recmp119" im Internet verfuegbar ist. Dies
  enthaelt NICHT die Fehler von "ffeditc_unicode". Damit der Aufruf dieses Programms korrekt
  erfolgt, muss es im Unterverzeichnis "utils/comp" der TS-Instanz installiert sein.

  World-Dateien, die in der UB-Form vorliegen werden vor Aufruf des Comp-Programms in die
  UT-Form umgewandelt. Komprimierte Dateien (KB-Form,KT-Form) werden NICHT veraendert.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] cmpw <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition, die die World-Dateien enthaelt
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log cmpw C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Dateien im Verzeichnis 'world' der Strecke mit den Dateien aus dem Verzeichnis
		'newRoute/world' ueberschreiben.

11) Umwandeln ALLER Strecken in einer TS-Instanz
  Durch die Funktion "tsconv" werden ALLE Streckendefinitionen einer TS-Instanz an eine neue
  globale "tsection.dat"-Definition angepasst. Die einzelnen Streckendefinitionen werden
  mit der Aenderung ueberschrieben. Es werden dabei fuer jede Streckendefinition der TS-Instanz
  das "Umwandeln der Streckendefinition mit der Funktion 'cvrt'" ausgeloest.

  Die originale "tsection.dat", von der ausgehend ALLE Strecken an die neue Version angepasst
  werden sollen, muss in das Verzeichnis "routes" der TS-Instanz eingestellt werden.
  Falls eine der zu modifizierenden Streckendefinition eine andere "tsection.dat" als
  Ausgangsbasis hat, kann alternativ die fuer diese Streckendefinition zutreffende "tsection.dat"
  unter dem Namen "$tsection.dat" in das Streckenverzeichnis kopiert werden. Diese wird bei
  der Anpassung dann der allgemeinen Definition (in 'routes') vorgezogen.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] tsconv [-s] [-u] [-v<nr1>:<nr2>] <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf TS-Instanz
	Wenn die Option "-s" spezifiziert wird, wird geprueft, ob alle in der NEUEN
		'tsection.dat' referenzierten Shape-Dateien auch vorhanden sind.
	Die Angabe der Option "-u" bewirkt, dass die World-Dateien immer im UT-Format geschrieben
		werden. Normalerweise werden die Dateien im selben Format wieder geschrieben,
		in dem sie auch gelesen wurden.
        Die Zuordnung von SHAPE-Definitionen aus der ALTEN zu der NEUEN 'tsection.dat' kann
		auf Grund von Aenderungen in der Definition des Shapes nicht moeglich sein.
		Mit der Option "-v" kann MANUELL eine Zuordnung definiert werden. 'nr1' gibt
		dabei eine Shape-Kennung aus der ALTEN 'tsection.dat' an und 'nr2' beschreibt
		den zugeordneten Shape aus der NEUEN 'tsection.dat'. Die manuelle Zuordnung
		wird NUR dann aktiv, wenn keine andere Zuordnung moeglich war.
		Die Option '-v' kann MEHRFACH angegeben werden.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. : "java TSUtil -lC:\Logdat.log tsconv C:\TRSim\"

  Einsatz der erzeugten Daten:
	Es sind KEINE Aktionen notwendig. Die Streckendefinitionen werden DIREKT veraendert.

12) Integritaetspruefung einer Streckendefinition
  Mit der Funktion("ichk") wird die interne Integritaet einer Streckendefinition geprueft.
  Es wird untersucht, ob die globale und lokale 'tsection.dat' - Datei syntaktisch korrekt sind
  und ob die Referenzen zwischen Schienen-/Strassendatenbank und World - Dateien stimmen. Es
  wird auf doppelt vergebene UiD-Kennungen untersucht und ob diese ggf. angepasst werden koennen.
  Es werden KEINE Veraenderungen in der Streckendefinition vorgenommen!

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] ichk [{-s|-S}] [-k] [-z{1|2|3}[:<s1>:[<s2>]]] <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll
	Wenn die Option "-s" spezifiziert wird, wird geprueft, ob alle in der
		'tsection.dat' referenzierten Shape-Dateien auch vorhanden sind. Wird die Option 
		als "-S" spezifiziert, wird zusaetzlich geprueft, ob alle, in den World-Dateien
		referenzierte Shape-Dateien ebenfalls vorhanden sind. Das betrifft auch die Textur-
		Dateien dieser Shape-Definitionen die im Textur-Verzeichnis existieren muessen.
		Falls eine geforderte Datei nicht existiert, wird eine Meldung ausgegeben aber sonst
		keine weiteren Aktionen veranlasst.
	Option "-k" schaltet den Pruefungsmodus für World-Dateien um. Wenn diese Option aktiv ist,
		werden die Objekt-Definitionen auf die gleiche Weise geprüft, als ob der 
		Korrekturmodus (vergl. Funktion 'cvrt' (5)) aktiv ist.
	Option "-z" wird verwendet um statische Objekte, die Schienendefinitionen darstellen und als solche nicht
		mehr zu erkennen sind, in ein 'TrackObj' zurueckzuwandeln. (vgl. auch 'cvrt')
		Die dieser Option folgende Zahl(1,2,3) gibt dabei an, welchen 'StaticDetailLevel' das 
		erzeugte 'TrackObj' unabhaengig von seinem aktuellen Level erhalten soll.
		Um zu entscheiden, ob ein Objekt gewandelt werden muss, wird der Dateiname des statischen
		Objektes mit allen 'Shape'-Namen der 'tsection.dat' verglichen. Ist dieser identisch, wird
		das statische Objekt in das entsprechende 'TrackObj'-Objekt gewandelt und die fehlenden
		Definitionszeilen erzeugt.
		Falls in der Option angegeben (Datenkette "s1"), wird VOR dem Vergleich des Dateinamens eine
		(lokale) Modifikation vorgenommen. Dazu wird der Anfang des Dateinamens mit dieser Datenkette
		verglichen und falls er uebereinstimmt, (Gross-/Kleinschreibung wird NICHT beachtet) wird dieser
		Teil des Dateinamens durch den zweiten angegebenen Namen (falls vorhanden, sonst '') ersetzt.

		Die Option '-z' kann beliebig oft angegeben werden.
		Achtung: Alle Aenderungen werden durchgefuehrt BEVOR die Integritaet eines Objektes geprueft wird.
		Beispiel: '-z1:Xt:A' - Die Dateinamen aller statischen Objekte werden geprueft, ob sie mit 'Xt'
			beginnen. Ist das NICHT der Fall, trifft diese Option NICHT zu und das Objekt bleibt
			ggf. unveraendert. Im anderen Fall, wird im Dateinamen 'Xt' durch 'A' ersetzt und geprueft,
			ob es in der aktuellen globalen 'tsection.dat' eine Shape-Definition mit diesem Namen gibt.
			Wenn dieses der Fall ist, wird ein entsprechendes TrackObj erzeugt. Dieses erhaelt einen
			'StaticDetailLevel' von 1. (Xt1t10mstrt.s -> At1t10mstrt.s)
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log ichk C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	Diese Funktion erzeugt KEINE neuen Dateien! (ausser Log)

13) Neunumerierung der Schienen-/Strassendatenbank
  Nach dem manuellen Loeschen von Track-Nodes aus der Schienen-/Strassendatenbank *.tdb/*.rdb ist
  diese Funktion ("rendb") in der Lage die Verkettungen und Abhaengigkeiten innerhalb der
  Datenbank zu reparieren. Die vorhandenen Nodes werden 'zusammengeschoben' und die Verkettungen
  neu hergestellt. Dabei wird geprueft, ob offene d.h. nicht mehr herstellbare Verkettungen
  existieren. Diese werden im 'Log' protokolliert und durch die Referenz '0' ersetzt.
  Auch die Numerierung im TrItem-Teil der Datenbank wird neu vorgenommen, und damit Luecken
  in den TrItem-Definitionen geschlossen. Auch hier werden die Verkettungen untereinander 
  und zu Track-Nodes aktualisiert. 
  Weiterhin wird eine logische Pruefung der GESAMTEN Datenbank durchgefuehrt. Wenn die Option
  '-o' angegeben wird, ist diese jedoch mit Vorsicht zu behandeln, da die Abhaengigkeiten zu den
  World-Dateien dann nicht geprueft werden. Entsprechende Fehlermeldungen koennen ignoriert werden.

  Diese Funktionen erstellt AUCH die Datenbanken *.tit und *.rit neu. Damit diese Funktion jedoch
  korrekt ausgefuehrt werden kann, muessen in diesen Datenbanken die gleichen Aenderungen
  vorgenommen worden sein(z.B Eintraege geloescht,...), wie in der entsprechenden Datenbank
  des Typs *.tdb/*.rdb. 
 
  ACHTUNG: Bevor die erzeugten Datenbanken eingesetzt werden, sollte man sich ueberzeugen, dass
	es in den World-Dateien KEINE offenen Referenzen auf 'versehentlich' geloeschte
	TrItem-Definitionen gibt. Dazu kann - falls erzeugt - das Protokoll genutzt werden.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] rendb [{-c|-u}] [-o] [-a] [-w[ -m]] <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll
	Die Option "-o" wird benutzt, um NUR den TrackDB-Anteil der Datenbank zu reorganisieren.
		Im TrItem-Anteil der Schienen-/Strassendatenbank duerfen in diesem Fall keine
		Veraenderungen oder Loeschungen vorgenommen werden.
	Wenn die LOKALE Option "-w" angegeben wird, werden die Datenbanken auch dann neu erstellt,
		wenn bei der logischen Pruefung Fehler erkannt wurden.
	Wenn die Option "-a" angegeben wird, werden zusaetzlich alle NICHT REFERENZIEREN TrItem-
		Eintraege entfernt. Diese brauchen nicht explizit in den Dateien (*.tdb,*.tit,*.rdb,
		*.rit) geloescht zu werden. Die Option hat keine Wirkung wenn "-o" angegeben ist.
	Die Option '-m' bewirkt die Markierung von fehlerhaften UID-Eintraegen in der Datenbank.
		Wenn die Schienendatenbank mit Hilfe der Option '-w' auch bei fehlerhaften Werten
		neu erstellt wird, werden alle fehlerhaften Werte unveraendert uebernommen.
		Wenn die Option '-m' aktiv ist, werden statt dessen fehlerhafte UID-Werte durch
		'?' ersetzt.
		Diese Option wirkt nur, wenn die Option '-w' auch spezifiziert ist und muss
		NACH dieser Option angegebenen werden.
	Wenn die Option "-c" angegeben wird, werden die World-Dateien (*.w) auf jeden Fall in
		der komprimierten Binaer-Version [KB] geschrieben. Normalerweise, werden World-Dateien
		im selben Format geschrieben, wie sie auch gelesen wurden. Diese Option wird durch
		die Angabe von '-u' ggf wieder zurueckgesetzt. Die Option hat ausserdem keine Wirkung
		wenn "-o" angegeben ist.
	Wenn die Option "-u" angegeben wird, werden die World-Dateien (*.w) auf jeden Fall in
		der unkomprimierten Text-Version [UT] geschrieben. Normalerweise, werden World-Dateien
		im selben Format geschrieben, wie sie auch gelesen wurden. Diese Option wird durch
		die Angabe von '-c' ggf wieder zurueckgesetzt. Die Option hat ausserdem keine Wirkung
		wenn "-o" angegeben ist.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log rendb C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Dateien aus dem Verzeichnis 'newRoute' in das Hauptverzeichnis der Strecke verschieben
		und vorhandene Dateien ueberschreiben.
	- Wenn Option '-o' NICHT spezifiziert wurde:
	 + Verzeichnis 'world' der Strecke loeschen und mit dem Verzeichnis 'world' aus 'newRoute'
		ersetzen.
	 + Wenn das Verzeichnis 'Activities' in 'newRoute' vorhanden ist, das Verzeichnis 'Activities'
		der Strecke loeschen und mit diesem Verzeichnis ersetzen.
	 + Wenn das Verzeichnis 'Paths' in 'newRoute' vorhanden ist, das Verzeichnis 'Paths' der Strecke
		loeschen und mit diesem Verzeichnis ersetzen.
	 + Wenn das Verzeichnis 'Services' in 'newRoute' vorhanden ist, das Verzeichnis 'Services' der
		Strecke loeschen und mit diesem Verzeichnis ersetzen.
	 + Wenn das Verzeichnis 'Traffic' in 'newRoute' vorhanden ist, das Verzeichnis 'Traffic' der
		Strecke loeschen und mit diesem Verzeichnis ersetzen.


14) Verschieben einer Streckendefinition
  Diese Funktion ('move') verschiebt eine Streckendefinition um eine bestimmte, angebbare Anzahl
  von Streckenquadraten in X- und/oder Z-Richtung. Alle Definitionen (Tile-Dateien,
  World-Dateien. TD-Definitionen, ...) werden entsprechend angepasst und neu erstellt. Die neuen
  Dateien werden im Verzeichnis '/newRoute' abgelegt, das in der Streckendefinition eingerichtet
  wird.
  Zur genauen Vorgehensweise vergleiche auch das Gesamtbeispiel unten.
  Das Verschieben kann NUR in einer Schrittweite erfolgen, die der groessten Kantenlaenge der
  definierten Tiles in der Strecke entspricht. Wenn LO-Tiles verwendet werden, ist dies meist
  der Wert '8'.

  Waehrend des Verschiebens wird eine Konsolidierung der Quadratstruktur vorgenommen. Alle
  Streckenquadrate, die nicht 'besiedelt' sind, werden nach Moeglichkeit zusammengefasst.
  Neben den Dateien der Streckendefinition, werden auch ALLE Dateien der Activities verschoben
  und angepasst, da auch sie Referenzen auf die Streckendefinition enthalten.
 
  ACHTUNG: Es werden nur DIE Streckenquadrate verschoben, die im Streckengeometrie-Editor als
	'besiedelt' gekennzeichnet sind. Alle anderen Quadrate werden nicht uebernommen. Dies
	betrifft auch die zugeordneten World- und Tile-Dateien. Ggf. ist damit eine Korrektur
	der Strecke im Streckengeometrie-Editor notwendig.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] move [-c] [-p] <verz> <dx> <dz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll
	"dx" ist die Anzahl der Streckenquadrate, um die die Strecke in X-Richtung verschoben
		werden soll. Der Wert muss ein Vielfaches der groessten Tile-Kantenlaenge sein.
	"dz" ist die Anzahl der Streckenquadrate, um die die Strecke in Z-Richtung verschoben
		werden soll. Der Wert muss ein Vielfaches der groessten Tile-Kantenlaenge sein.
	Wenn die Option "-c" angegeben wird, werden die Tile-Dateien (*.t) auf jeden Fall in der
		reduzierten Version geschrieben. Normalerweise, werden Tile-Dateien im selben
		Format geschrieben, wie sie auch gelesen wurden.
	Die Option "-p" bewirkt, dass neben den Tile-Dateien (*.t) und den Tile-Daten-Dateien
		(*_y.raw, *_f.raw) auch die Pufferdateien (*_e.raw, *_n.raw) unter der
		entsprechenden Namensaenderung kopiert werden. Damit muss der TS diese nicht neu
		erstellen.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log move C:\TRSim\routes\ProTrain_Rheintal -5120 -496"

  Einsatz der erzeugten Daten:
	- Verzeichnis 'world' der Strecke loeschen und mit dem Verzeichnis 'world' aus 'newRoute'
		ersetzen.
	- Verzeichnis 'TD' der Strecke loeschen und mit dem Verzeichnis 'TD' aus 'newRoute' ersetzen.
	- Verzeichnis 'Tiles' der Strecke loeschen und mit dem Verzeichnis 'Tiles' aus 'newRoute'
		ersetzen.
	- Verzeichnis 'LO_Tiles' der Strecke loeschen und mit dem Verzeichnis 'LO_Tiles' aus 'newRoute'
		ersetzen.
	- Wenn das Verzeichnis 'Activities' in 'newRoute' vorhanden ist, das Verzeichnis 'Activities'
		der Strecke loeschen und mit diesem Verzeichnis ersetzen.
	- Wenn das Verzeichnis 'Paths' in 'newRoute' vorhanden ist, das Verzeichnis 'Paths' der Strecke
		loeschen und mit diesem Verzeichnis ersetzen.
	- Wenn das Verzeichnis 'Services' in 'newRoute' vorhanden ist, das Verzeichnis 'Services' der
		Strecke loeschen und mit diesem Verzeichnis ersetzen.
	- Wenn das Verzeichnis 'Traffic' in 'newRoute' vorhanden ist, das Verzeichnis 'Traffic' der
		Strecke loeschen und mit diesem Verzeichnis ersetzen.
	- Dateien aus dem Verzeichnis 'newRoute' in das Hauptverzeichnis der Strecke verschieben
		und vorhandene Dateien ueberschreiben.

15) Pruefen zweier globaler 'tsection.dat'-Dateien auf Kompatibilitaet
  Mit der Funktion 'chkup' kann man die Kompatibilitaet zwischen zwei Dateien des Typs der 
  globalen 'tsection.dat' ueberpruefen. Eine alte Version ist zu einer neuen kompatibel, wenn alle
  Schienen- und Strassendefinitionen der ALTEN 'tsection.dat' auch in der neuen 'tsection.dat vorhanden
  sind. Dabei koennen sich jedoch die internen Nummern geaendert haben.
  Die alte globale 'tsection.dat' wird spezifiziert, waehrend die neue globale 'tsection.dat' im
  SELBEN Verzeichnis wie die alte Version unter dem Namen 'tsection.dat' existieren muss. Damit ist
  es moeglich, eine reine Syntaxpruefung zu veranlassen, indem man die neue 'tsection.dat-Datei als
  alte Version spezifiziert.

  Diese Funktion erkennt und prueft auch reine Veraenderungen wie den Austausch von Shape-Definitionen.
  Um eine Zuordnung (alt-neu) jedoch einwandfrei feststellen zu koennen ist es notwendig, dass
  INNERHALB der Shape-Definitionen keine Veraenderung der REIHENFOLGE der Suboptionen
  (z.B. SectionIdx) erfolgt ist. Auch muss eine gewisse  allgemeine Reihenfolge eingehalten
  werden, die jedoch normalerweise gegeben ist. (z.B. 'NumPath' vor 'SectionIdx'). Falls eine
  Zuordnung im Einzelfall nicht moeglich ist (z.B. wegen Fehlerkorrektur), kann diese mit Hilfe
  der Option '-v' auch manuell erfolgen. 

  Die Funktion 'chkup' nimmt keinerlei Korrekturen vor.

  Hinweis: Da diese Funktion auch einen Teil der Streckenkonvertierung darstellt, ist die Nutzung
	als Vorstufe zu einer Streckenkonvertierung sinnvoll.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] chkup [-v<nr1>:<nr2>] <datei>
  Hierbei gilt:
	"datei" ist der Dateiname (mit Pfad) der ALTEN "tsection.dat" -Datei
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll.
        Die Zuordnung von SHAPE-Definitionen aus der ALTEN zu der NEUEN 'tsection.dat' kann
		auf Grund von Aenderungen in der Definition des Shapes nicht moeglich sein.
		Mit der Option "-v" kann MANUELL eine Zuordnung definiert werden. 'nr1' gibt
		dabei eine Shape-Kennung aus der ALTEN 'tsection.dat' an und 'nr2' beschreibt
		den zugeordneten Shape aus der NEUEN 'tsection.dat'. Die manuelle Zuordnung
		wird NUR dann aktiv, wenn keine andere Zuordnung moeglich war.
		Die Option '-v' kann MEHRFACH angegeben werden.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer '$tsection.dat': "java TSUtil -lC:\Logdat.log chkup -v99:99 C:\TRSim\global\$tsection.dat"

  Einsatz der erzeugten Daten:
	Diese Funktion erzeugt KEINE neuen Dateien! (ausser Log)

16) Anpassen der Hoehendefinitionen einer Strecke
  Die Funktion 'adjh' verschiebt eine gesamte Streckendefinition senkrecht, indem sie alle Hoehenwerte
  veraendert. Dazu wird ein fester Betrag, der angegeben wird, auf alle Hoehenwerte innerhalb der
  Strecke addiert. Es sind sowohl die Objekte als auch die Tile-Definitionen betroffen.

  Alle Dateien (*.t,*.w,...) werden im selben Format wieder geschrieben, in dem sie auch gelesen
  wurden. Lediglich die Tile-Dateien koennen mit Hilfe der Option '-c' beim Schreiben automatisch in
  das 'reduzierte Format' konvertiert werden.
  Bemerkung: *-t-Dateien sind NICHT komprimiert. (UB-Format)

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] adjh [-c] <verz> <dh>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"dh" bestimmt den Differenzwert, der auf ALLE Hoehenwerte addiert werden soll
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll.
	Wenn die Option "-c" angegeben wird, werden die Tile-Dateien (*.t) auf jeden Fall in der
		reduzierten Version geschrieben. Normalerweise, werden Tile-Dateien im selben
		Format geschrieben, wie sie auch gelesen wurden.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log adjh C:\TRSim\routes\ProTrain_Rheintal 15.5"

  Einsatz der erzeugten Daten:
	- Verzeichnis 'world' der Strecke loeschen und mit dem Verzeichnis 'world' aus 'newRoute'
		ersetzen.
	- Verzeichnis 'Tiles' der Strecke loeschen und mit dem Verzeichnis 'Tiles' aus 'newRoute'
		ersetzen.
	- Verzeichnis 'LO_Tiles' der Strecke loeschen und mit dem Verzeichnis 'LO_Tiles' aus 'newRoute'
		ersetzen.
	- Wenn das Verzeichnis 'Paths' in 'newRoute' vorhanden ist, das Verzeichnis 'Paths' der Strecke
		loeschen und mit diesem Verzeichnis ersetzen.
	- Dateien aus dem Verzeichnis 'newRoute' in das Hauptverzeichnis der Strecke verschieben
		und vorhandene Dateien ueberschreiben.

17) Komprimieren/Reduzieren von Dateien (S,T,W) in das binaer-Format
  Mit der Funktion 'cmp' koennen die verschieden Typen von Datendateien (S,T,W) reduziert und
  komprimiert werden. Dazu ist KEIN weiteres Tool erforderlich.
  Standardmässig werden die Dateien nur in das Token-Format (UB) reduziert. Mit einer zusaetzlichen
  Option koennen die Dateien aber auch nach dem ZLib-Verfahren komprimiert werden (KB-Format).
  Dies trifft jedoch NICHT fuer die Tile-Dateien zu, die NUR reduziert werden koennen.

  Mit jedem Aufruf kann nur EIN Dateityp selektiert werden.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] cmp {-s|-t|-T|-w} [-c] [-x] <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll.
	Die Option '-s' selektiert die Shape-Dateien im Unterzeichnis 'Shapes' zur Bearbeitung.
		Alle im Verzeichnis vorhandenen *.s-Dateien werden reduziert, ggf. komprimiert
		und im Verzeichnis 'newRoute/Shapes' abgelegt.
	Die Option '-t' selektiert die Tile-Dateien im Unterzeichnis 'Tiles' zur Bearbeitung.
		Alle im Verzeichnis vorhandenen *.t-Dateien werden reduziert und im Verzeichnis
		'newRoute/Tiles' abgelegt. Die zusaetzliche Option '-c' darf in diesem Fall
		NICHT angegeben werden.
	Die Option '-T' selektiert die Lo-Tile-Dateien im Unterzeichnis 'LO_Tiles' zur Bearbeitung.
		Alle im Verzeichnis vorhandenen *.t-Dateien werden reduziert und im Verzeichnis
		'newRoute/LO_Tiles' abgelegt. Die zusaetzliche Option '-c' darf in diesem Fall
		NICHT angegeben werden.
	Die Option '-w' selektiert die World-Dateien im Unterzeichnis 'World' zur Bearbeitung.
		Alle im Verzeichnis vorhandenen *.w-Dateien werden reduziert, ggf. komprimiert
		und im Verzeichnis 'newRoute/World' abgelegt.
	Wenn die Option "-c" angegeben wird, werden die Dateien nicht nur reduziert ('UB'-Format)
		sondern auch komprimiert ('KB'-Format). Dazu ist KEIN zusaetzlich installiertes
		Tool notwendig.
	Option '-x' bewirkt das Erstellen einer vollstaendigen Kopie des Quell-Verzeichnisses.
		Alle Dateien, die NICHT bearbeitet werden muessen, werden zusaetzlich in das
		Ziel-Verzeichnis kopiert.
		Achtung: Unterverzeichnisse werden NICHT bearbeitet oder kopiert.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log cmp -w -c C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Wenn Option '-x' spezifiziert: Entsprechendes Verzeichnis der Strecke loeschen und mit dem
		gleichnamigen Verzeichnis aus 'newRoute' ersetzen.
	- Sonst: Dateien im entsprechenden Verzeichnis der Strecke mit den Dateien aus dem gleichnamigen
		Verzeichnis in 'newRoute' ueberschreiben.

18) Dekomprimieren/Expandieren von Dateien (S,T,W)
  Mit der Funktion 'unc' koennen die verschieden Typen von Datendateien (S,T,W) dekomprimiert und
  expandiert werden. Dazu ist KEIN weiteres Tool erforderlich.
  Für jede Datei wird das vorliegende Format ('KB','UB','KT' (siehe oben)) analysiert und die Datei
  in das 'unkomprimierte Textformat' (UT) konvertiert. Liegt das UT-Format bereits vor, wird die
  Datei lediglich kopiert.

  Mit jedem Aufruf kann nur EIN Dateityp selektiert werden.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] unc {-s|-t|-T|-w} [-x] <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll.
	Die Option '-s' selektiert die Shape-Dateien im Unterzeichnis 'Shapes' zur Bearbeitung.
		Alle im Verzeichnis vorhandenen *.s-Dateien werden ggf. dekomprimiert und expandiert
		und im Verzeichnis 'newRoute/Shapes' abgelegt.
	Die Option '-t' selektiert die Tile-Dateien im Unterzeichnis 'Tiles' zur Bearbeitung.
		Alle im Verzeichnis vorhandenen *.t-Dateien werden ggf. expandiert und im Verzeichnis
		'newRoute/Tiles' abgelegt.
	Die Option '-T' selektiert die Lo-Tile-Dateien im Unterzeichnis 'LO_Tiles' zur Bearbeitung.
		Alle im Verzeichnis vorhandenen *.t-Dateien werden ggf. expandiert und im Verzeichnis
		'newRoute/LO_Tiles' abgelegt.
	Die Option '-w' selektiert die World-Dateien im Unterzeichnis 'World' zur Bearbeitung.
		Alle im Verzeichnis vorhandenen *.w-Dateien werden ggf. dekomprimiert und expandiert
		und im Verzeichnis 'newRoute/World' abgelegt.
	Option '-x' bewirkt das Erstellen einer vollstaendigen Kopie des Quell-Verzeichnisses.
		Alle Dateien, die NICHT bearbeitet werden muessen, werden zusaetzlich in das
		Ziel-Verzeichnis kopiert.
		Achtung: Unterverzeichnisse werden NICHT bearbeitet oder kopiert.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log unc -w C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Wenn Option '-x' spezifiziert: Entsprechendes Verzeichnis der Strecke loeschen und mit dem
		gleichnamigen Verzeichnis aus 'newRoute' ersetzen.
	- Sonst: Dateien im entsprechenden Verzeichnis der Strecke mit den Dateien aus dem gleichnamigen
		Verzeichnis in 'newRoute' ueberschreiben.

19) Mischen einer Streckendefinition in eine andere
  Die Funktion 'merge' mischt eine Streckendefinition in eine andere. Dazu sind folgende Voraussetzungen
  zu beachten:
	- Beide Streckendefinitionen duerfen KEINE Tile-Definition gemeinsam haben
		Wenn dennoch eine gemeinsame Tile-Definition existiert, wird der entsprechende Tile
		der einzumischenden Strecke ignoriert und nicht benutzt. Dies KANN zu Inkonsistenzen
		im Bereich der Datenbanken (*.tdb,*.rdb,...) fuehren und entsprechende Fehlermeldungen
		erzeugen.
		Dies betrifft auch LO-Tile-Definitionen!
	- Die Basis fuer dynamische Schienen muss identisch sein und der AKTUELLEN globalen 'tsection.dat'
	   entsprechen.

  Waehrend des Misch-Vorgangs werden auch Signal-Definitionen, Shapes, Texturen, Terrtex-Dateien und
  Sound-Definitionen, die fuer die Gesamtstrecke benoetigt werden und die nicht in der Basisstrecke vorhanden
  sind, uebernommen. Hier ist insbesonders auf Inkonsistenzen zu achten, da in der Basistrecke bereits andere
  Dateien unter gleichem Namen existieren koennen.

  Hinweis: Es ist sinnvoll, die erzeugte Streckendefinition mit der Funktion 'ichk' auf Integritaet zu
		pruefen. Damit koennen schon vorab eventuelle Probleme erkannt werden. 

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] merge [-p] [-h[{1|2|3}] <verz1> <verz2>
  Hierbei gilt:
	"verz1" ist der Dateipfad auf die Streckendefinition (Basis)
	"verz2" ist der Dateipfad auf die einzumischende Streckendefinition
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll.
	Die Option "-p" bewirkt, dass neben den Tile-Dateien (*.t) und den Tile-Daten-Dateien
		(*_y.raw, *_f.raw) auch die Pufferdateien (*_e.raw, *_n.raw) kopiert bzw. uebernommen
		werden.	Damit muss der TS diese nicht neu erstellen.
		Die Pufferdateien der 'LO_Tile'-Definitionen werden IMMER kopiert, auch wenn diese Option
		nicht aktiv ist (wegen Bug).
	Die Option "-h" wird benutzt, um den 'StaticDetailLevel' der eingemischten Schienendefinitionen
		zu modifizieren. Damit kann zusammen mit der Funktion 'cvrt' oder 'Hidewire' der
		Elektrifizierungsstatus der eingemischten Route separat behandelt werden.
		Wenn diese Option aktiv ist wird der 'StaticDetailLevel' der eingemischten
		'TrackObj'/'DynTrack'-Definitionen, deren AKTUELLER 'StaticDetailLevel' '0' ist, auf den
		Wert gesetzt, der mit '-h' spezifiziert wird.
		(Die Reihenfolge der Objekte innerhalb der World-Datei wird ebenfalls angepasst.)
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log merge C:\TRSim\routes\ProTrain_Rheintal
			C:\TRSim\routes\WE8Mod"

  Einsatz der erzeugten Daten:
	- Verzeichnis 'world' der Strecke loeschen und mit dem Verzeichnis 'world' aus 'newRoute'
		ersetzen.
	- Verzeichnis 'TD' der Strecke loeschen und mit dem Verzeichnis 'TD' aus 'newRoute' ersetzen.
	- Verzeichnis 'Tiles' der Strecke loeschen und mit dem Verzeichnis 'Tiles' aus 'newRoute'
		ersetzen.
	- Verzeichnis 'LO_Tiles' der Strecke loeschen und mit dem Verzeichnis 'LO_Tiles' aus 'newRoute'
		ersetzen.
	- Wenn das Verzeichnis 'Paths' in 'newRoute' vorhanden ist, das Verzeichnis 'Paths' der Strecke
		loeschen und mit diesem Verzeichnis ersetzen.
	- Dateien im Verzeichnis 'Shapes' der Strecke mit den Dateien aus dem Verzeichnis
		'newRoute/shapes' ueberschreiben.
	- Dateien im Verzeichnis 'Textures' der Strecke mit den Dateien aus dem Verzeichnis
		'newRoute/textures' (incl. Unterverzeichnisse) ueberschreiben.
	- Dateien im Verzeichnis 'Terrtex' der Strecke mit den Dateien aus dem Verzeichnis
		'newRoute/terrtex' (incl. Unterverzeichnisse) ueberschreiben.
	- Dateien im Verzeichnis 'Sound' der Strecke mit den Dateien aus dem Verzeichnis
		'newRoute/sound' ueberschreiben.
	- Dateien aus dem Verzeichnis 'newRoute' in das Hauptverzeichnis der Strecke verschieben
		und vorhandene Dateien ueberschreiben.

20) Bereinigen der Resourcendefinitionen einer Strecke
  Die Funktion 'clrdb' analysiert die Schienen- und Strassendatenbank und entfernt alle nicht mehr
  genutzen Definitionsketten (TrEndNode - TrVectorNode/TrJunctionNode - TrEndNode). Eine Definitions-
  kette ist dann nicht mehr genutzt, wenn es KEIN gueltiges World-Objekt mehr gibt, das auf diese
  Kette verweist. Dabei ist es unerheblich, WIESO keine Referenz mehr existiert. Durch das Loeschen
  der Markierung eines Tiles als auch durch Loeschen eines Objektes in einer World-Datei, kann dies
  erfolgen.
  Zusaetzlich werden auch ALLE TrItem-Definitionen, die nicht mehr benutzt werden, aus den Datenbanken
  entfernt.
  Alle weiterhin benutzten World-/Sound-Dateien werden im Zielverzeichnis abgelegt. Damit ist es
  moeglich, nicht mehr benoetigte Dateien auszufiltern. 

  Weiterhin werden auch alle Activity-Definitionen untersucht, ob sie auf einen ungueltigen Eintrag
  verweisen. Alle dann noch gueltigen Activity-, Path-, Service- und Traffic-Dateien werden in das
  entsprechende Zielverzeichnis kopiert. Es werden dabei auch Abhaengigkeiten untereinander berueck-
  sichtigt. Eine Activity ist nur dann gueltig, wenn ALLE abhaengigen Komponenten (Pfade,...) auch
  verwendet werden.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] clrdb [-t[ -p]] [-w] <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll.
	Mit der Option "-t" werden alle aktiven d.h. besiedelten Tile-Dateien (*.t) und deren Daten-
		Dateien in das entsprechende Zielverzeichnis ('newRoute/Tiles','newRoute/LO_Tiles')
		kopiert. Damit ist es moeglich eine Konsolidierung der fuer die Route benoetigten
		Dateien durchzufuehren.
	Die Option "-p" bewirkt, dass neben den Tile-Dateien (*.t) und den Tile-Daten-Dateien
		(*_y.raw, *_f.raw) auch die Pufferdateien (*_e.raw, *_n.raw) kopiert bzw. uebernommen
		werden.	Damit muss der TS diese nicht neu erstellen. Diese Option hat NUR Wirkung
		wenn auch '-t' spezifiziert wird.
	Um fehlende World-Dateien generieren zu lassen wird die Option '-w' verwendet. Wenn diese ange-
		geben wird, generiert TSUtil fuer jeden Quadranten einer Tile-Definition, der keine
		World-Datei hat, eine LEERE 'Dummy-World-Datei' ohne Eintraege.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log clrdb C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Verzeichnis 'world' der Strecke loeschen und mit dem Verzeichnis 'world' aus 'newRoute'
		ersetzen.
	- Wenn das Verzeichnis 'Activities' in 'newRoute' vorhanden ist, das Verzeichnis 'Activities'
		der Strecke loeschen und mit diesem Verzeichnis ersetzen.
	- Wenn das Verzeichnis 'Paths' in 'newRoute' vorhanden ist, das Verzeichnis 'Paths' der Strecke
		loeschen und mit diesem Verzeichnis ersetzen.
	- Wenn das Verzeichnis 'Services' in 'newRoute' vorhanden ist, das Verzeichnis 'Services' der
		Strecke loeschen und mit diesem Verzeichnis ersetzen.
	- Wenn das Verzeichnis 'Traffic' in 'newRoute' vorhanden ist, das Verzeichnis 'Traffic' der
		Strecke loeschen und mit diesem Verzeichnis ersetzen.
	- Dateien aus dem Verzeichnis 'newRoute' in das Hauptverzeichnis der Strecke verschieben
		und vorhandene Dateien ueberschreiben.
	- Wenn Option '-t' spezifiziert: Verzeichnis 'Tiles' der Strecke loeschen und mit dem
		Verzeichnis 'Tiles' aus 'newRoute' ersetzen.
	- Wenn Option '-t' spezifiziert: Verzeichnis 'LO_Tiles' der Strecke loeschen und mit dem
		Verzeichnis 'LO_Tiles' aus 'newRoute' ersetzen.

21) Aufbereiten einer Streckendefinition fuer den Import nach ZUSI
  Mit der Funktion("zusi") werden die in der Streckendefinition gespeicherten Daten in einer speziellen
  Form als .xml-Datei bereitgestellt. Damit diese Daten einen Sinn ergeben sollte die Streckendefinition
  moeglichst fehlerfrei aufgebaut sein. 

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] zusi <verz>
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. : "java TSUtil -lC:\Logdat.log zusi C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Dateien aus dem Verzeichnis 'newRoute' fuer den Zugsimulator 'ZuSi' benutzen.

22) Verschieben der dynamischen Definitionen aus der lokalen 'tsection.dat'
  Diese Funktion("shftdyn") verschiebt den Bereich der dynamischen Definitionen an die korrekte Position.
  Diese Position wird durch die aktuelle globale 'tsection.dat' vorgegeben. Es werden sowohl die
  besiedelten World-Dateien als auch die Schienendatenbank und die Strassendatenbank modifiziert und als
  Kopie in einem neuen Verzeichnis ('\newRoute') abgelegt. Die Dateistruktur einer Streckendefinition wird
  dabei beibehalten und die Unterverzeichnisse werden entsprechend erzeugt. Ausserdem wird im gleichen
  Verzeichnis eine neue "lokale" tsection.dat-Datei erzeugt. Damit ist es NICHT notwendig, die
  Schienendatenbank neu aufbauen zu lassen.

  Die Position des zu verschiebenden dynamischen Bereiches, wird duch die Argumente 'sha' (fuer Shapes)
  und 'sca' (fuer Sections) angegeben. Dieser Wert muss mit den Start-Indizes in der aktuellen lokalen
  'tsection.dat' uebereinstimmen. Die Laenge des Bereiches wird ebenfalls durch diese Datei vorgegeben.
  Dieser Bereich kann sich - im Gegensatz zur Funktion 'cvrt' - mit der aktuellen globalen 'tsection.dat'
  ueberlappen. 

  Um die im Aufruf spezifizierten Werte eindeutig zuordnen zu können, ist eine genaue Abfolge der Werte
  einzuhalten. Desshalb muss ggf. ein Platzhalter '+' angegeben werden.

  ACHTUNG: Obwohl die '-w'-Option aktiv ist, kann es vorkommen, dass einzelne 'DynTrack'-Objekte NICHT
		erzeugt werden. Auf Grund von fehlenden Informationen oder Fehlern in der Schienendatenbank
		kann es nicht sichergestellt werden, dass ALLE fehlenden Objekte auch generiert werden.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] shftdyn [{-c|-u}] [-w] <verz> [{<sha>|+} [<sca>]]
  Hierbei gilt:
	"verz" ist der Dateipfad auf die Streckendefinition
	"sha" ist der ID-Wert an dem der dynamische Bereich der Pfade beginnt. Wenn dieser Wert nicht
		angegeben ist, wird ein Default von '263' angenommen. Dieser Defaultwert wird auch
		dann benutzt, wenn der Platzhalter '+' angeben wird. Dieser ist ggf. notwendig, wenn
		weitere Werte folgen.
	"sca" ist der ID-Wert an dem der dynamische Bereich der Sections beginnt. Wenn dieser Wert nicht
		angegeben ist, wird ein Default von '376' angenommen.
	Die Option "-w" bewirkt, dass fehlende dynamische Definitionen generiert und hinzugefuegt werden.
		Wenn diese aktiv ist, wird versucht aus den Informationen der Schienendatenbank das
		fehlende World-Objekt zu generieren. Damit koennen auch Pfade an die korrekte Position
		verschoben zu denen - auf Grund eines Fehlers - kein DynTrack-Objekt existiert.
		Das erzeugte World-Objekt sollte NACH Aufruf dieser Funktion nochmals mit dem
		Streckeneditor bearbeitet werden, um alle 'berechneten' Werte ggf. nochmals zu korrigieren. 
	Wenn die Option "-c" angegeben wird, werden die World-Dateien (*.w) auf jeden Fall in
		der komprimierten Binaer-Version [KB] geschrieben. Normalerweise, werden World-Dateien
		im selben Format geschrieben, wie sie auch gelesen wurden. Diese Option wird durch
		die Angabe von '-u' ggf wieder zurueckgesetzt.
	Wenn die Option "-u" angegeben wird, werden die World-Dateien (*.w) auf jeden Fall in
		der unkomprimierten Text-Version [UT] geschrieben. Normalerweise, werden World-Dateien
		im selben Format geschrieben, wie sie auch gelesen wurden. Diese Option wird durch
		die Angabe von '-c' ggf wieder zurueckgesetzt.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log shftdyn C:\TRSim\routes\ProTrain_Rheintal"

  Einsatz der erzeugten Daten:
	- Verzeichnis 'world' der Strecke loeschen und mit dem Verzeichnis 'world' aus 'newRoute'
		ersetzen.
	- Dateien aus dem Verzeichnis 'newRoute' in das Hauptverzeichnis der Strecke verschieben
		und vorhandene Dateien ueberschreiben.

23) Anzeigen/Ausgeben der Versionsidentifikationen der TSUtil-Klassen
  Mit der Funktion("version") werden die internen Identifikationen der einzelnen, von TSUtil
  benutzten Java-Klassen angezeigt und ausgegeben. Damit kann ggf. geprueft werden, ob die aktuelle
  Installation auf dem neuesten Stand ist.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] version
  Hierbei gilt:
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. : "java TSUtil -lC:\Logdat.log version"

  Einsatz der erzeugten Daten:
	Diese Funktion erzeugt KEINE neuen Dateien! (ausser Log)

24) Komprimiern/Dekomprimieren/Reduzieren/Expandieren von Dateigruppen (S,T,W)
  Mit der Funktion 'fmgr' koennen Dateien oder Dateigruppen der verschieden Typen von Datendateien (S,T,W)
  bearbeitet und in ein Zielformat ('KB','UB','UT' (siehe oben)) umgewandelt werden.
  Das Quell-Verzeichnis und das Ziel-Verzeichnis werden bei dieser Funktion angegeben, sodass KEINE
  Bindung an eine bestimmte Route besteht. Quell- und Ziel-Verzeichnis können das GLEICHE Verzeichnis
  spezifizieren. In diesem Fall werden die selektierten Dateien OHNE Nachfrage ueberschrieben. (Das wirkliche
  Ziel der Ausgabe ist eine temporaere Datei, die danach in das angegebene Zielverzeichnis kopiert wird.)

  Mit dem Argument '-m' kann eine Maske spezifiziert werden, die zur Auswahl der Dateien im Quell-Verzeichnis
  benutzt wird. Diese Maske ist ein 'regulaerer Ausdruck' und bietet deshalb dessen Moeglichkeiten zur
  Spezifikation von Platzhaltern. Sie ist damit KEINE Dateimaske, wie MS sie zur Spezifikation von Dateien
  benutzt. Weitere Informationen koennen im Anhang dieser Anleitung nachgelesen werden. Dort werden auch
  die wichtigsten Platzhalter aufgelistet. Wenn dieses Argument (sowie die Option '-n') nicht angegeben wird,
  wird der Defaultwert aus der Konfigurationsdatei ('TSErrMsg...') geladen. (Shape('FleMgrMS'): '.+\.s'
  Tile('FleMgrMT'): '.+\.t' World('FleMgrMW'): '.+\.w')
  Mit der Option '-n' kann eine Selektionsmaske im 'Windows'-Stil angegeben werden. Diese wird zur Nutzung in einen
  regulaeren Ausdruck umgewandelt. Dabei werden als Platzhalter nur die Zeichen '?' und '*' unterstuetzt.

  Für diese Funktion ist KEIN weiteres Tool erforderlich. Sie basiert auf dem Konvertierungsalgorithmus von
  Martyn Griffin.
  Das vorliegende Format jeder selektierten Datei des Quell-Verzeichnisses wird analysiert und die Datei
  in das Zielformat konvertiert. Liegt das entsprechende Format bereits vor, wird die Datei lediglich kopiert.

  Achtung: Diese Funktion ist NICHT besonders effektiv, da die Daten vor der Konvertierung in das
	Zielformat satzweise immer in das Format 'UT' umgewandelt werden. Lediglich, wenn das
	Zielformat bereits vorliegt, wird die Datei nicht bearbeitet sondern lediglich kopiert.

  Mit jedem Aufruf kann nur EIN Dateityp selektiert werden.

  Der Aufruf sieht folgendermassen aus:
	C>java TSUtil [-l[<logdat>]] [-k] [-m<id>] [{-e|-w}] fmgr {-c|-e|-r} {-s|-t|-w} [{-m<msk>|-n<dmsk>}] [-o]
                <verz1> <verz2>
  Hierbei gilt:
	"verz1" ist der Dateipfad auf das Quell-Verzeichnis der Dateien
	"verz2" ist der Dateipfad auf das Ziel-Verzeichnis der Dateien
	"msk" spezifiziert das 'Sektionspattern' fuer die Dateiauswahl als regulaeren Ausdruck. Die Optionen '-m'
		und '-n' schliessen sich gegenseitig aus. Die LETZTE Angabe einer dieser Optionen wird benutzt.
		Wenn kein Pattern angegeben wird, werden ALLE Dateien des korrekten Typs bearbeitet.
	"dmsk" spezifiziert das 'Sektionspattern' fuer die Dateiauswahl im 'Windows'-Stil. Die Optionen '-n' und
		'-m' schliessen sich gegenseitig aus. Die LETZTE Angabe einer dieser Optionen wird benutzt. Wenn
		kein Pattern angegeben wird, werden ALLE Dateien des korrekten Typs bearbeitet.
		ACHTUNG: In der Dateimaske werden ausser den Zeichen '?' und '*' KEINE WEITEREN Platzhalter
			 unterstuetzt.
	"logdat" ist der (optionale) Name der LOG-Datei, der die Verlaufsmeldungen
		und Fehler aufnehmen soll.
	Die Option '-c' (compress) bewirkt, dass das Zielformat der Dateien auf 'KB' festgelegt wird. Diese
		Auswahl ist nicht erlaubt, wenn die Option '-t' verwendet wird.
	Die Option '-e' (expand) bewirkt, dass das Zielformat der Dateien auf 'UT' festgelegt wird.
	Die Option '-r' (reduce) bewirkt, dass das Zielformat der Dateien auf 'UB' festgelegt wird.
	Die Option '-s' selektiert den Typ der zu bearbeitenden Datei(en) als 'Shape-Datei'. Nur
		Dateien dieses Typs werden bearbeitet. Alle Dateien eines anderen Typs werden abgewiesen.
	Die Option '-t' selektiert den Typ der zu bearbeitenden Datei(en) als 'Tile-Datei'. Nur
		Dateien dieses Typs werden bearbeitet. Alle Dateien eines anderen Typs werden abgewiesen.
	Die Option '-w' selektiert den Typ der zu bearbeitenden Datei(en) als 'World-Datei'. Nur
		Dateien dieses Typs werden bearbeitet. Alle Dateien eines anderen Typs werden abgewiesen.
	Wenn die Option '-o' aktiv ist, werden fehlende Unterverzeichnisse des Zielverzeichnisses
		automatisch angelegt. Wenn die Option NICHT aktiv ist, wird der Aufuf der Funktion
		in diesem Fall mit einem Fehler abgewiesen.
	Bezueglich der globalen Optionen vergleiche 'Einleitung'

  z.B. fuer ProTrain 1: "java TSUtil -lC:\Logdat.log fmgr -e -w -o C:\TRSim\routes\ProTrain_Rheintal\world
                        C:\temp\world"

  Einsatz der erzeugten Daten:
	Alle erzeugten Dateien werden direkt im korrekten Verzeichnis erzeugt.






FIKTIVES GESAMTBEISPIEL (Funktion 'cvrt'):
Im folgenden Beispiel soll angenommen werden, dass im Verzeichnis "C:\TrSim" der
Trainsimulator installiert ist. Dort gibt es auch die Strecke "Usa3", die fuer Erweiter-
ungszwecke an eine neue 'tsection.dat' angepasst werden soll. Die z.Zt. noch gueltige
'tsection.dat' befindet sich im Verzeichnis "C:\TrSim\global". Die neue 'tsection.dat'
ist im Verzeichnis "C:\TrSim\neu" verfuegbar.

Im folgenden soll weiter angenommen werden, dass die Ausfuehrung der Befehle keine Fehler
erzeugt. Ausserdem ist die Pruefung der LOG-Datei nicht explizit aufgefuehrt.

a) Datensicherung erstellen

b) DOS-Fenster oeffnen (Eingabeaufforderung)
	Annahme: Das Fenster oeffnet sich auf das Verzeichnis "C:\"

c) Alle World-Dateien dekomprimieren/expandieren (Aktion NICHT mehr notwendig)

d) Kopieren und sichern der aktuellen 'tsection.dat'
	C>md C:\TrSim\alt
	C>copy C:\TrSim\global\tsection.dat C:\TrSim\alt

e) Aktivieren der neuen 'tsection.dat' (bitte ueberschreiben)
	C>copy C:\TrSim\neu\tsection.dat C:\TrSim\global

f) Loeschen des Ziel-Verzeichnisses, wenn vorhanden
	C>deltree C:\TrSim\Routes\Usa3\newRoute

g) Konvertieren der Streckendefinition
	C>java TSUtil -lTSUtil.log cvrt -bC:/TrSim/alt/tsection.dat -c C:/TrSim/Routes/Usa3

h) Loeschen der Original-Dateien aus der Streckendefinition
	C>deltree C:\TrSim\Routes\Usa3\world

i) Aktivieren der neu erzeugten Dateien (bitte ueberschreiben)
	C>xcopy C:\TrSim\Routes\Usa3\newRoute\*.* C:\TrSim\Routes\Usa3 /s

j) ggf. erzeugte Dateien loeschen
	C>deltree C:\TrSim\Routes\Usa3\newRoute

k) ggf. Fenster wieder schliessen
	C>exit


FIKTIVES GESAMTBEISPIEL (Funktion 'move'):
Im folgenden Beispiel soll angenommen werden, dass im Verzeichnis "C:\TrSim" der
Trainsimulator installiert ist. Dort gibt es auch die Strecke "Usa3", die nach Europa
verschoben werden soll. Dazu soll diese um 5120 Quadrate in X-Richtung bewegt werden.
Die Z-Position soll beibehalten werden.

Im folgenden soll weiter angenommen werden, dass die Ausfuehrung der Befehle keine Fehler
erzeugt. Ausserdem ist die Pruefung der LOG-Datei nicht explizit aufgefuehrt.

a) DATENSICHERUNG ERSTELLEN

b) Tile-Dateien expandieren
	Mit Hilfe von 'Route-Riter' die *.t-Dateien in den Verzeichnissen
	'C:/TrSim/Routes/Usa3/Tiles' und 'C:/TrSim/Routes/Usa3/LO_Tiles' dekomprimieren.

c) DOS-Fenster oeffnen (Eingabeaufforderung)
	Annahme: Das Fenster oeffnet sich auf das Verzeichnis "C:\"

d) Loeschen des Ziel-Verzeichnisses, wenn vorhanden
	C>deltree C:\TrSim\Routes\Usa3\newRoute

e) Verschieben der Streckendefinition
	C>java TSUtil -lTSUtil.log move C:/TrSim/Routes/Usa3 5120 0

f) Loeschen der Original-Dateien aus der Streckendefinition
	C>deltree C:\TrSim\Routes\Usa3\TD
	C>deltree C:\TrSim\Routes\Usa3\world
	C>deltree C:\TrSim\Routes\Usa3\Tiles
	C>deltree C:\TrSim\Routes\Usa3\LO_Tiles		(ggf.)
	C>deltree C:\TrSim\Routes\Usa3\Activities
	C>deltree C:\TrSim\Routes\Usa3\Paths
	C>deltree C:\TrSim\Routes\Usa3\Services
	C>deltree C:\TrSim\Routes\Usa3\Traffic

g) Aktivieren der neu erzeugten Dateien (bitte ueberschreiben)
	C>xcopy C:\TrSim\Routes\Usa3\newRoute\*.* C:\TrSim\Routes\Usa3 /s

h) ggf. erzeugte Dateien loeschen
	C>deltree C:\TrSim\Routes\Usa3\newRoute

i) Tile-Dateien wieder reduzieren
        (nicht notwendig wenn in Step e) die Option '-c' benutzt wurde oder die Dateien
	  in der reduzierten Form vorlagen.)
	Mit Hilfe von 'Route-Riter' die *.t-Dateien in den Verzeichnissen
	'C:/TrSim/Routes/Usa3/Tiles' und 'C:/TrSim/Routes/Usa3/LO_Tiles' reduzieren.

j) Alle World-Dateien wieder komprimieren/reduzieren (optional, auch mit 'Route-Riter')
	C>java TSUtil -lTSUtil.log cmp -w -c C:/TrSim/Routes/Usa3

k) Aktivieren der neu erzeugten Dateien (bitte ueberschreiben)
	C>xcopy C:\TrSim\Routes\Usa3\newRoute\World\*.* C:\TrSim\Routes\Usa3\World

l) ggf. erzeugte Dateien loeschen
	C>deltree C:\TrSim\Routes\Usa3\newRoute

m) ggf. Fenster wieder schliessen
	C>exit


HISTORIE:
30.07.2003 - V2.0 Freigabe zur Nutzung
01.08.2003 - V2.0 Erweiterte Plausibilitaetenpruefung
05.08.2003 - V2.0 kleinere Fehlerkorrekturen und Optimierungen (Logging)
17.08.2003 - V2.1 Aufnahme der Funktion 'shift'
25.08.2003 - V2.1 Unterstuetzung von mehreren identischen Section-Definitionen
05.09.2003 - V2.1 Korrekturen von groesseren Fehlern (gross/klein-Schreibung)
22.09.2003 - V2.2 Aufnahme weiter Optionen sowie der Funktion 'cmpw'
30.10.2003 - V2.3 Neue Funktion 'tsconv'
19.01.2004 - V2.3 Leerzeichen in Routennamen, Fehlerbeseitigung
21.01.2004 - V2.3 zusaetzliche Optionen, Optimierungen
23.01.2004 - V2.4 Neue Funktion 'ichk'
00.00.0000 - V2.5 Neue Funktion 'rendb'
16.02.2004 - V2.6 Redesign der Ausfuehrungsstruktur (lesen - pruefen - (schreiben))
07.04.2004 - V3.0 neues, vollstaendig verkettetes Datenspeichermodell, Tile-Definitionen pruefen
		    Quadratstruktur pruefen, Neue Funktion 'move', Neue Funktion 'chkup'
13.04.2004 - V3.0 Fehlerkorrektur, genauere Versionskennung
11.05.2004 - V3.0 zusaetzliche Argumente (cvrt,...), intern: lokale 'tsection.dat' umgestellt
18.05.2004 - V3.0 Fehlerkorrekturen und Optimierungen
21.05.2004 - V3.0 Umbau der Funktion 'rendb' mit Fehlerkorrektur
27.05.2004 - V3.0 Neue Funktion 'adjh' (nicht zum Download)
01.07.2004 - V3.0 Fehlerkorrekturen und erweiterte Pruefung bei Funktion 'ichk'
15.07.2004 - V3.0 Erste, noch nicht vollstaendig uebersetzte, englische Version
09.08.2004 - V3.0 Fehlerkorrekturen, Zweite englische Version (nicht vollstaendig uebersetzt)
12.08.2004 - V3.0 Fehlerkorrekturen, Dritte englische Version (Uebersetzung nahezu beendet)
19.08.2004 - V3.0 Fehlerkorrekturen, Vollstaendig uebersetzte englische Version
13.09.2004 - V3.0 Fehlerkorrekturen, Unterstuetzung mehrerer Signal-Script-Dateien
31.10.2004 - V3.0 Fehlerkorrekturen, Erweiterte Pruefung der lokalen 'tsection.dat'
15.11.2004 - V3.0 Fehlerkorrekturen, (nicht zum Download)
20.11.2004 - V3.0 Neue Funktion 'cmp', Neue Funktion 'unc', Kleinere Fehlerkorrekturen,
		    Neue globale Option, Dokumentationskorrektur
26.11.2004 - V3.0 Neue Funktion 'filt', verbesserte Fehlermeldungen
05.12.2004 - V3.0 Funktion 'filt'->'filter', Fehlerkorrekturen, 'ichk' prueft Activities
07.12.2004 - V3.0 Fehlerkorrekturen
28.12.2004 - V3.0 Fehlerkorrekturen, Umbau von Funktionen auf neue Dateischnittstelle
		    (Version NICHT zum Download verfuegbar)
16.01.2005 - V3.1 Fehlerkorrekturen, neue Funktion 'merge', Ueberarbeitung der
		    Dateischnittstellen
27.01.2005 - V3.1 Fehlerkorrekturen
06.02.2005 - V3.2 Fehlerkorrekturen, Unterstuetzung von Tiles>1, neue Funktion 'clrdb'
		    Erweiterte Dokumentation
10.02.2005 - V3.2 Fehlerkorrekturen
12.02.2005 - V3.2 Fehlerkorrekturen
17.02.2005 - V3.2 Fehlerkorrekturen
22.02.2005 - V3.2 Fehlerkorrekturen, erweiterte Pruefung bei lokalen Optionen
22.03.2005 - V3.2 Fehlerkorrekturen, erweiterte 'Merge'-Funktion(Signal)
31.03.2005 - V3.2 Fehlerkorrekturen
29.04.2005 - V3.2 Fehlerkorrekturen
27.05.2005 - V3.2 Fehlerkorrekturen, Korrekturmodus fuer World-Dateien
22.06.2005 - V3.2 Fehlerkorrekturen, Optimierungen innerhalb der Klassendefinitionen
28.07.2005 - V3.2 Fehlerkorrekturen, neue Funktion 'shftdyn', Optimierungen
26.08.2005 - V3.2 Fehlerkorrekturen, Erweiterung der Funktion 'shftdyn'
10.09.2005 - V3.2 Fehlerkorrekturen
15.09.2005 - V3.2 Fehlerkorrekturen, neue Optionen fuer Funktion 'rendb', neue Funktion 'version'
02.11.2005 - V3.2 Fehlerkorrekturen, Unterstuetzung verschiedener undokumentierter Schluesselwoerter
22.11.2005 - V3.2 Fehlerkorrekturen
06.12.2005 - V3.2 Fehlerkorrekturen, neue Funktion 'fmgr', interne Optimierungen
31.12.2005 - V3.2 Fehlerkorrekturen; Fixierung fuer Erweiterungen der Version 3.3
		    (Version NICHT zum Download verfuegbar)
04.09.2006 - V3.3.00 Fehlerkorrekturen; Unterstuetzung der Veraenderungen von 'Hidewire' oder 'Dynatrax'
		    generieren von Nebenbahnschienen aus Schienenobjekten;
		    optimieren interner Programmablaeufe; Neue Art der LOG-Aktivierung;
		    erweiterte Pruefung der 'Pfad'-, 'Service'- und 'Traffic'-Dateien;
		    neue Funktion 'zusi'; erweiterte Fehlertoleranz;
19.09.2006 - V3.3.01 Fehlerkorrekturen in Dokumentation und Meldungen
29.01.2007 - V3.3.04 Fehlerkorrekturen; Erweiterung der Erkennung von 'Hidewire'-Objekten (-z);
		    internes Redesign von Java-Objekten zur leichteren Implementierung neuer Funktionen
		    sowie Verbesserung der Ausfuehrungsgeschwindigkeit; automatische Erweiterung von
		    Dateinamen um den Zugriffspfad;
28.03.2007 - V3.3.05 Fehlerkorrekturen; interne Standardisierungen(Queues); Erweiterung des Dateimanagers(fmgr);
		    Fehlertoleranz fuer Dateikennungen in Datendateien;
11.04.2007 - V3.3.06 Fehlerkorrekturen (speziell: Ein-/Ausgabe auf TS-Dateien)
13.07.2007 - V3.3.06 Fehlerkorrekturen





ACHTUNG:

- Diese Software wurde auf meinem eigenen PC erstellt und getestet.
	Fuer eventuelle Schaeden an Hard- und Software uebernehme ich keine Verantwortung.
- Dieses Programm wird staendig weiterentwickelt. Dazu gehoert auch die Beseitigung von Fehlern,
	die im allgemeinen nicht vermeidbar sind. Die aktuellste Version ist wie folgt verfuegbar:
	'carloshr.privat.t-online.de'   oder (alias) 'www.carloshr.homepage.t-online.de'

Credits:

Ein herzlicher Dank geht an 'Don Quichotte' fuer das unermuetliche Testen von neuen Versionen. Weiterhin 
  bedanke ich mich fuer die Anregungen, die er zum Ausbau und zur Verbesserung von neuen Funktionen
  geliefert hat.
Ebenso danke ich Mike Simpson fuer die Integration dieser Sofware in Route-Riter und das damit verbundene
  'praktische' Testen der einzelnen Funktionen.


CopyRight:
----------

Dieses Utility ist Freeware und darf beliebig kopiert und verbreitet werden, solange 
der Inhalt der ZIP-Datei weder veraendert noch erweitert wird. 
Alle sonstigen Aenderungen beduerfen der Einwilligung des Autors.
Wenn die Software zur Erstellung, Modifikation oder Prüfung von kommerziellen Routen fuer den TrainSimulator
eingesetzt wird, ist die Verwendung in der Beschreibung oder Nutzungsvereinbahrung dieser Route aufzuführen.
Andernfalls ist die Benutzung von TSUtil NICHT gestattet.

Kontakt:
	carlosHR@t-online.de


======================================================================================================================

A)Anhang: Eigenschaften des Korrektur-Modus
	  ---------------------------------

ACHTUNG: Diese Beschreibung ist in erster Linie fuer Experten gedacht, die in die Tiefen von TSUtil einsteigen
	moechten und ausserdem etwas von Datenverarbeitung verstehen.

Mit der Aktivierung des Korrekturmodus werden fuer die Objekt-Definitionen der World-Dateien fuer jede fehlende
Definitionszeile eine Default-Definition hinzugefuegt. Dies Definition folgt entweder einem festen Schema oder
der Wert ist in der Property-Datei (ErrMsg???.properties) festgelegt.
Im einzelnen sind folgende Defaultwerte hinzufuegbar:

Objekttyp   !	Schluesselwort    !	Y   !	Schluessel  !	Wert
------------------------------------------------------------------------------------------------------------ 
TrackObj	Elevation		3	TSUidX03	-
TrackObj	VDbId			25	-		fester Wert '4294967294'
TrackObj	StaticDetailLevel	26	-		aktueller Level wird verwendet
DynTrack	Elevation		3	TSUidX13	-
DynTrack	VDbId			25	-		fester Wert '4294967295'
DynTrack	StaticDetailLevel	26	-		aktueller Level wird verwendet
Signal		VDbId			25	-		fester Wert '4294967295'
Signal		StaticDetailLevel	26	-		aktueller Level wird verwendet
Static		StaticDetailLevel	26	-		aktueller Level wird verwendet
Forest		ScaleRange		2	TSUidX42	-
Forest		Area			3	TSUidX43	-
Forest		Population		4	TSUidX44	-
Forest		TreeSize		5	TSUidX45	-
Forest		VDbId			25	-		fester Wert '4294967295'
Forest		StaticDetailLevel	26	-		aktueller Level wird verwendet
Platform	VDbId			25	-		fester Wert '4294967295'
Siding		VDbId			25	-		fester Wert '4294967295'
Gantry		VDbId			25	-		fester Wert '4294967295'
Speedpost	Speed_Text_Size		3	TSUidX83	-
Speedpost	VDbId			25	-		fester Wert '4294967295'
CarSpawner	CarFrequency		1	TSUidX91	-
CarSpawner	CarAvSpeed		2	TSUidX92	-
CarSpawner	VDbId			25	-		fester Wert '4294967295'
LevelCr 	Crashprobability	2	TSUidXA2	-
LevelCr 	LevelCrTiming		4	TSUidXA4	-
LevelCr		VDbId			25	-		fester Wert '4294967295'
Hazard		VDbId			25	-		fester Wert '4294967295'
Transfer	VDbId			25	-		fester Wert '4294967295'
Transfer	StaticDetailLevel	26	-		aktueller Level wird verwendet
CollideObject	VDbId			25	-		fester Wert '4294967295'
Telepole	VDbId			25	-		fester Wert '4294967295'
Pickup		VDbId			25	-		fester Wert '4294967295'

(Bemerkung: Der Wert Y verweist auf die Bitnummer in der Y-Maske (vgl. unten))

Wenn in der o.a. Tabelle ein Schluessel der Property-Datei aufgefuehrt ist, wird der Defaultwert aus dieser
Datei entnommen, mit zusaetzlichen Leerzeichen eingefasst und als Argument der Definitionszeile verwendet.
Standardmaessig werden hinter den Schluesseln 'feste Werte' hinterlegt. Ein Nutzer kann die Property-Datei
jedoch auch modifizieren und andere Werte verwenden. Dabei gibt es folgende Moeglichkeiten den Wert dynamisch
d.h. beim Einsetzen in die Ausgabe, zu modifizieren:
- Kennung '%0' wird durch den 'aktuellen Filenamen' (oder "" falls nicht vorhanden) ersetzt
- Kennung '%1' wird durch aktuellen UiD-Wert ersetzt
- Kennung '%2' wird durch den Y-Wert (vgl. Tabelle) ersetzt


Ob eine Default-Definition hinzugefuegt wird, kann mit Hilfe der 'Online-Konfiguration' nochmals veraendert
werden. Die Online-Konfiguration benutzt dazu die verborgenen globale Option '$D' um diese Korrekturen zu
steuern.
Diese globale Option sieht wie folgt aus:
	-$Dxxxx:yyyyyyyy	(Achtung: 'D', nicht 'd')
Sowohl 'xxxx' als 'yyyyyyyy' sind hierbei eine hexadezimale Maske, die genau aus 4 bzw. 8 Hex-Ziffern besteht.
Alle Bits dieser Masken sind von rechts nach links , mit '0' beginnend numeriert. Damit besteht die X-Maske aus
16 (0..15) und die Y-Maske aus 32 (0..31) Bits.

Die Bits der X-Maske sind wie folgt den verschiedenen Objekt-Typen zugeordnet:
 0 - TrackObj
 1 - DynTrack
 2 - Signal
 3 - Static
 4 - Forest
 5 - Platform
 6 - Siding
 7 - Gantry
 8 - Speedpost
 9 - CarSpawner
10 - LevelCr
11 - Hazard
12 - Transfer
13 - CollideObject
14 - Telepole
15 - Pickup

Soll nun die folgende Y-Maske auf einen Objekt-Typ angewendet werden, so ist das entsprechende Bit in der X-Maske
zu setzen. 'FFFF' wendet damit die Y-Maske auf alle moeglichen Objekt-Typen an, waehrend mit '0000' die Option
KEINE Wirkung hat.

Die Zuordnungen der Bits der Y-Maske sind wie folgt vergeben:
0..15 - vom Objekt-Typ abhangig.
16 - TrItemId
17 - CollideFlags
18 - Collidefunction
19 - FileName
20 - StaticFlags
21 - Position
22 - QDirection
23 - Matrix3x3
24 - MaxVisDistance
25 - VDbId
26 - StaticdetailLevel
27 - SignalSubObj
28 - SignalUnits
29 - NoDirLight
30 -
31 -

Diese Zuordnungen sind auch in der o.a. Tabelle ersichtlich (Y-Bit)
Die Y-Maske gibt nun an, für welche Definitionszeile KEIN Defaultwert erzeugt werden soll. Dazu ist das
entsprechende Bit ZURUECKZUSETZEN. Alle nicht benutzten Bits muessen deshalb mit '1' vorbesetzt werden.

Beispiele:
 -$DFFFF:FBFFFFFF - Defaultwerte fuer 'StaticdetailLevel' werden bei ALLEN Objekttypen NICHT erzeugt.
 -$D0001:F9FFFFFF - Defaultwerte fuer 'StaticdetailLevel' und 'VDbId' werden bei TrackObj-Def. NICHT erzeugt.
 -$DFFFF:00000000 - Es werden KEINE Defaultwerte erzeugt.
			(Alle anderen Eigenschaften der Korrekturmodus bleiben aktiv.)


B)Anhang: Definition von 'regulaeren Ausdruecken'
	  ---------------------------------------

Ein 'regulaerer Ausdruck' wird benutzt, um zu pruefen, ob eine gegebene Zeichenkette zu diesem Ausdruck passt.
Damit gibt es eine Moeglichkeit aus einer Reihe von Zeichenketten (z.B. Dateinamen) eine Untermenge
herauszufiltern und damit eine Auswahl zu treffen.
 
Ein 'regulaerer Ausdruck' setzt sich aus Zeichen MIT und OHNE 'besonderer Bedeutung' zusammen.
Zeichen OHNE 'besonderer Bedeutung' stellen das Zeichen selbst dar und muessen in dieser Form in einer zu
pruefenden Zeichenkette auftauchen, damit der Ausdruck zu dieser Zeichenkette passt. Lediglich 
Gross-/Klein-Schreibung wird ggf. nicht beachtet. Die regulaeren Ausdruecke in TSUtil, die zur Pruefung
von Dateinamen eingesetzt werden, beachten die Gross-/Klein-Schreibung NICHT.
Aufeinanderfolgende Zeichen muessen auch in der zu pruefenden Zeichenkette aufeinanderfolgen, damit der Ausdruck
passt.

Die Wirkung von Zeichen MIT 'besonderer Bedeutung' kann nicht allgemeingueltig angegeben werden, da diese von
Zeichen zu Zeichen oder Zeichengruppe zu Zeichengruppe unterschiedlich ist. Im folgenden wird die Bedeutung
der WICHTIGSTEN Zeichen beschrieben:

Zeichen Bedeutung
 .	Dieses Zeichen ist ein Platzhalter fuer JEDES beliebige EINZELNE Zeichen
	  Dieses Zeichen hat KEINE 'besondere Bedeutung' innerhalb einer Zeichenliste. (s.u.)
 \	Folgt auf dieses Zeichen ein weiteres Zeichen mit 'besondere Bedeutung' so wird diese 'besondere Bedeutung'
	  aufgehoben. Im anderen Fall wird eine Zeichengruppe definiert, die wiederum eine 'besondere Bedeutung'
	  hat. Ein Teil dieser Zeichengruppen (Zeichenklassen) ist in dieser Liste aufgefuehrt. Wird \ vor einem
	  Zeichen benutzt, das KEINE Zeichengruppe definiert, so ist dies ein Fehler.
	  Das folgende Zeichen kann auch das Zeichen selbst sein: (\\ enspricht \ ohne 'besondere Bedeutung')
 ?	Das VORANGEHENDE Zeichen darf EINMAL oder KEINMAL auftreten.
 *	Das VORANGEHENDE Zeichen darf beliebig oft oder auch KEINMAL auftreten.
 +	Das VORANGEHENDE Zeichen darf beliebig oft, muss aber mindestens EINMAL auftreten.  
 (n)	Das VORANGEHENDE Zeichen muss genau n-mal auftreten. (n ist eine Zahl)
 (n,)	Das VORANGEHENDE Zeichen muss mindestens n-mal auftreten. (n ist eine Zahl)
 (n,m)	Das VORANGEHENDE Zeichen muss mindestens n-mal und hoechstens m-mal auftreten. (n,m ist eine Zahl)
 [	Beginn einer Zeichenliste
 ]	Ende einer Zeichenliste z.B: [0123] - Die einzelnen Ziffern 0 bis 3: EINE der vier Ziffern muss auftreten
	  Dieses Zeichen hat NUR eine 'besondere Bedeutung' wenn eine Zeichenliste aktiv ist (nach [ )
 -	(1) Spezifiziert einen Bereich innerhalb einer Zeichenliste z.B: [A-Z] - Die Buchstaben A bis Z
	(2) KEINE 'besondere Bedeutung' ausserhalb einer Zeichenliste.
 ^	(1) Dreht die Bedeutung der Zeichen innerhalb einer Zeichenliste um.
	(2) Der Beginn einer Zeichenkette. (Die Spezifikation fuer das ERSTE Zeichen folgt)
 |	Das vorangehende ODER das nachfolgende Zeichen muss auftreten.
 \d	Eine beliebige Ziffer (= [0-9])
 \D	Ein beliebiges Zeichen, das KEINE Ziffer ist (= [^0-9])
 \w	Eine beliebiges Zeichen zur Wortbildung (= [a-zA-Z0-9])
 \W	Eine beliebiges Zeichen das KEIN Zeichen zur Wortbildung ist (= [^\w])
 \t	Das tab-Zeichen
 \n	Das Zeichen fuer 'neue zeile'
 \r	Das Zeichen fuer 'carriage-return'
 \f	Das Zeichen fuer Formularvorschub
 \s	Ein beliebiges Trennzeichen (Blank, neue Zeile, ...)
 \S	Ein beliebiges Zeichen, das KEIN Trennzeichen ist
 \xhh	Das Zeichen mit dem Hexadezimalwert 'hh'
 \uhhhh	Das Unicode-Zeichen mit dem Hexadezimalwert 'hhhh'

Dies ist nur EIN TEIL der moeglichen Zeichen mit 'besondere Bedeutung'. Fuer eine vollstaendige Liste wird auf
die einschlaegige Litertur verwiesen.

Beispiele fuer 'regulaere Ausdruecke':
 '...\.\d' - drei beliebige Zeichen gefolgt von einem Punkt und einer Ziffer
 '.(8)\.[01](3)' - genau acht beliebige Zeichen gefolgt von einem Punkt und genau dreimal der Ziffer 0 oder 1
 '.(8)[.][01](3)' - gleiche Bedeutung wie davor (Punkt hat keine 'besondere Bedeutung' in einer Zeichenliste)
 '.+\*.' - Eins bis n beliebige Zeichen gefolgt von einem Stern und einem weiteren beliebigen Zeichen.
 '.+\(x\)' - Eins bis n beliebige Zeichen gefolgt von '(x)'.


C)Anhang: Kurze Beschreibung der verwendeten Metasprache
	  ----------------------------------------------

Im folgenden soll die Metasprache, die zur Spezifikation von Befehlen verwendet wird, kurz beschrieben werden:

  - Platzhalter, d.h. Namen die stellvertretend für ein Wort oder eine Zahl stehen (z.B. Dateiname), werden in spitze
	Klammern gesetzt. z.B.: <xx> - xx ist eine Platzhaltervariable
  - Optionale Elemente , die auch Platzhalter,... beinhalten können, werden in eckige Klammern eingeschlossen.
	z.B.:	[H] - der Buchstabe H ist optional
		[<name>] - der Platzhalter 'name' ist optional
  - Selektive Elemente, von denen EIN Element gefordert ist, werden in geschweifte Klammern eingeschlossen und die
	einzelnen Elemente werden durch einen senkrechten Strich getrennt.
	z.B.: {A|B|C} - hier ist entweder der Buchstabe A oder B oder C gefordert.
  - Alle anderen Elemente/Zeichen werden so gefordert wie sie aufgeschrieben sind. Dabei ist normalerweise auf
	Gross - / Klein - Schreibung zu achten. Unter diese Zeichen fallen AUCH Leerzeichen.
  - Optionale / selektive Elemente koennen geschachtelt werden. Dabei koennen selektive Elemente optional sein.
	(nicht umgekehrt weil: {[X]|Y|Z} = [{X|Y|Z}] aber: {X[E]|Y|Z})

Beispiel:  Der Meta - Text
	"Txt <name> [{I|O}] [ext]"
mit "'name' ist Platzhalter für 'C:\boot.txt'" beschreibt folgende Moeglichkeiten(exakt):
	"Txt C:\boot.txt  "
	"Txt C:\boot.txt I "
	"Txt C:\boot.txt O "
	"Txt C:\boot.txt  ext"
	"Txt C:\boot.txt I ext"
	"Txt C:\boot.txt O ext"
Welche dieser Moeglichkeiten die zu Waehlende / die Richtige ist, ist dem Kontext zu entnehmen und nicht Gegenstand
 der Metasprache.

