Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

txstep:loesungen:kopieren_mit_txstep

Vorbemerkung: Das TXSTEP-Tag transform bietet einen ähnlichen Funktionsumfang wie das TUSTEP-Kommando #kopiere. Mit transform können Dateien unverändert kopiert oder aber beim Kopieren die Daten (mittels Parametern) auf vielfältige Art analysiert, ausgewertet, modifizert, ergänzt oder extrahiert werden.


Zurück zum Inhaltsverzeichnis - Lösungen und Tipps


Kopieren einer Datei ohne Veränderung der Daten

- [tomcbe | tomcbe]

1. Datei wird unverändert kopiert, die Satznummern bleiben erhalten.

<?xml version="1.0" encoding="UTF-8"?>
<script xmlns="http://www.xstep.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <variables>
        <!-- Definition einer Variablen als execution-file. Darin werden die TUSTEP-Kommandos vor der Ausführung gespeichert. -->
        <variable type="execution-file" name="exec">file:///C:/txstep/exec.tu</variable>
        <!-- Definition der TXSTEP-Variablen "source", die auf die Ursprungsdatei verweist. -->
        <variable type="permanent-file" name="source">file:///C:/txstep/quelle.tf</variable>
        <!-- Definition der TXSTEP-Variablen "dest", die auf die Zieldatei verweist (diese wird gleich angelegt bzw. zuerst gelöscht, falls sie schon existiert). -->
        <variable type="permanent-file" name="dest" option="erase">file:///C:/txstep/ziel.tf</variable>
    </variables>
    <!-- Kopieren der Daten in "source" nach "dest", mode="-" bedeutet, dass die Sätze beim Kopieren nicht neu nummeriert werden. -->
    <transform source="$source" destination="$dest" mode="-"></transform>
</script>


2. Datei wird beim Kopieren neu durchnummeriert
Dafür muss nur die Angabe beim Attribut mode geändert werden: + bedeutet, dass die Sätze neu nummeriert werden.

<transform source="$source" destination="$dest" mode="+"></transform>


Kopieren einzelner Texteinheiten nach Bedingungen

- [tomcbe | tomcbe]]

Musterdatei:

psalm.tf [350 KB]

1. Aus der Datei 'psalm.tf' (= der gesamte Psalter) werden diejenigen Sätze (= Verse) kopiert, die eine bestimmte Zeichenfolge enthalten.
a. die Zeichenfolge „silber“
Transform arbeitet – wie #kopiere übrigens auch – in mehreren Durchgängen (pass in TXSTEP). Innerhalb eines solchen Durchgangs können mit dem Tag examine-text verschiedene Bedingungen definiert werden, wann ein Textteil für die Weiterverabeitung ausgewählt wird und wann nicht. In diesem Fall reicht die Angabe von select mit entsprechender Bedingung text-contains.

<script xmlns="http://www.xstep.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <variables>
        <!-- Definition einer Variablen als execution-file. Darin werden die TUSTEP-Kommandos vor der Ausführung gespeichert. -->
        <variable type="execution-file" name="exec">file:///C:/txstep/exec.tu</variable>
        <!-- Definition der TXSTEP-Variablen "source", die auf die Ursprungsdatei verweist. -->
        <variable type="permanent-file" name="source">file:///C:/txstep/psalm.tf</variable>
        <!-- Definition der TXSTEP-Variablen "dest", die auf die Zieldatei verweist (diese wird gleich angelegt bzw. zuerst gelöscht, falls sie schon existiert). -->
        <variable type="permanent-file" name="dest" option="erase">file:///C:/txstep/psalmziel.tf</variable>
    </variables>
    <!-- Kopieren der Daten in "source" nach "dest", mode="-" bedeutet, dass die Sätze beim Kopieren nicht neu nummeriert werden. -->
    <transform source="$source" destination="$dest" mode="-">
        <pass>
            <examine-text>
                <select>
                    <text-contains>
                        <search-table><search-string>silber</search-string></search-table>
                    </text-contains>
                </select>
            </examine-text>
        </pass>
    </transform>
</script>

b. die Zeichenfolgen „silber“ ODER „gold“, aber nicht „golden“
Innerhalb der Suchtabelle (search-table) können nicht nur Suchzeichenfolgen (search-string), sondern auch Ausnahmezeichenfolgen (exception-string) angegeben werden. exception-strings müssen vor den search-strings definiert werden. Der Ausdruck „golden“ muss als exception-string der Suchtabelle hinzugefügt werden.

<select>
    <text-contains>
        <search-table>
            <exception-string>golden</exception-string>
            <search-string>silber</search-string>
            <search-string>gold</search-string>
        </search-table>
    </text-contains>
</select>

c. die Wörter „Silber“ ODER „Gold“ (aber keine Zusammensetzungen, z.B. „Goldschmuck“)
Analog zu b. werden hier zwei exception-strings verwendet. \G bzw. \S steht für den jeweiligen Grossbuchstaben, {\a} für einen beliebigen Kleinbuchstaben. \g und \s würden für die jeweiligen Kleinbuchstaben stehen.

<select>
    <text-contains>
        <search-table>
            <exception-string>\Silber{\a}</exception-string>
            <exception-string>\Gold{\a}</exception-string>
            <search-string>\Silber</search-string>
            <search-string>\Gold</search-string>
        </search-table>
    </text-contains>
</select>

2. Aus der Datei 'psalm.tf' werden diejenigen Abschnitte (= Psalmen) kopiert, die die Zeichenfolge „silber“ enthalten
Hierzu kann vor dem ersten pass mit dem Tag define-text-units definiert werden, welche Zeichenfolgen den Anfang bzw. das Ende einer Texteinheit markieren. Diese Texteinheiten werden als ganzes weiterverabeitet.

<transform source="$source" destination="$dest" mode="-">
    <define-text-units>
        <text-unit-start>
            <comparison-table>
                <!-- < und > müssen in TXSTEP mit {{ resp. }} codiert werden. -->
                <comparison-string>{{psalm}}</comparison-string>
            </comparison-table>
        </text-unit-start>
    </define-text-units>
    <pass>
        <examine-text>
            <select>
                <text-contains>
                    <search-table><search-string>silber</search-string></search-table>
                </text-contains>
            </select>
        </examine-text>
    </pass>
</transform>

Zurück zum Inhaltsverzeichnis - Lösungen und Tipps

txstep/loesungen/kopieren_mit_txstep.txt · Zuletzt geändert: 2021/03/16 05:34 (Externe Bearbeitung)