Benutzer-Werkzeuge

Webseiten-Werkzeuge


tustep:loesungen:kopieren

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

tustep:loesungen:kopieren [2020/04/24 13:03]
127.0.0.1 Externe Bearbeitung
tustep:loesungen:kopieren [2021/03/16 05:34]
Zeile 1: Zeile 1:
-**Vorbemerkung:** Mit dem TUSTEP-Kommando ''#KOPIERE'' können **Dateien unverändert kopiert** oder aber beim Kopieren die **Daten** (mittels Parametern) auf vielfältige Art **analysiert, ausgewertet, modifiziert, ergänzt oder extrahiert** werden.\\ \\ **►► Lösungen zu Detailfragen und -Problemen** im Zusammenhang mit ''#KOPIERE'' finden Sie [[tustep:loesungen:kopieren:detailprobleme|hier]]. 
----- 
-[[tustep:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]] 
----- 
-====== Kopieren einer Datei ohne Veränderung der Daten ====== 
-- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}}]] schneider-lastin\\ \\ 1. Datei wird **unverändert kopiert**, die **Satznummern bleiben erhalten**.\\  Das Kommando und seine Spezifikationen lauten:\\  #KOPIERE, QUELLE, ZIEL, MODUS, LOESCHEN\\  
-<code>#= 1. Die Quelldatei 'quelle.tf' wird ggf. mit dem Kommando #anmelde angemeldet 
-#an,quelle.tf 
  
-#= 2. Die Zieldatei 'ziel.tf' wird als (permanente) Datei mit dem Kommando #datei erstellt 
-#da,ziel.tf,seq-ap 
- 
-#= 3. Datei 'quelle.tf' wird unverändert kopiert (MODUS=-) 
-#ko,quelle.tf,ziel.tf,-</code> 
-    
-2. Datei wird beim Kopieren **neu durchnummeriert**\\  
-<code>#= Datei 'quelle.tf' wird neu durchnummeriert (MODUS=+) 
-#= evtl. vorhandene Daten in der Zieldatei werden gelöscht (LOESCHEN=+) 
- 
-#ko,quelle.tf,ziel.tf,+,+</code> 
- 
-====== Kopieren einzelner Texteinheiten nach Satznummern ====== 
-- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}}]] schneider-lastin\\ \\ Das Kommando und seine Spezifikationen lauten:\\  #KOPIERE, QUELLE, ZIEL, MODUS, LOESCHEN, PARAMETER\\ \\ **Musterdatei:**\\ {{files_open:daten:psalm.tf|psalm.tf}} [350 KB]\\  
-\\ \\  Aus der Datei 'psalm.tf' (= der gesamte Psalter) werden bestimmte **Abschnitte** (= Psalmen) herauskopiert, im vorliegenden Fall die kompletten Psalmen 12, 15 und 87.\\  
-<code>#ko,psalm.tf,psalmziel.tf,-,+,* 
-nr+       2.0-2.999'15.0-15.999'87.0-87.999 
-*eof</code> 
-► Mit dem Parameter **nr+** werden die Seiten-Zeilen-Nummern (auch Bereiche) der Sätze angegeben, die kopiert werden sollen; die einzelnen Angaben müssen durch **Apostroph** getrennt werden. Die Sätze werden in der **Reihenfolge** eingelesen, in der die Seiten-Zeilen-Nummern angegeben sind. Mehrfachnennungen und Überlappungen sind möglich.\\ \\  
-====== Kopieren einzelner Texteinheiten nach Bedingungen ====== 
-- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin\\ \\ Das Kommando und seine Spezifikationen lauten:\\  #KOPIERE, QUELLE, ZIEL, MODUS, LOESCHEN, PARAMETER\\ \\ **Musterdatei:**\\ {{files_open:daten:psalm.tf|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"\\  
-<code>#ko,psalm.tf,psalmziel.tf,-,+,* 
-zf+       |silber| 
-*eof</code> 
-b. die **Zeichenfolgen** "silber" ODER "gold", aber nicht "golden"\\  
-  zf+       |silber|gold||golden| 
-c. die **Wörter** "Silber" ODER "Gold" (aber keine Zusammensetzungen, z.B. "Goldschmuck")\\  
-<code>zf+       |\Silber|\Gold||\Silber{\a}|\Gold{\a}|| 
-          alternativ: 
-zf+       |\Silber||\Silber{\a}|| 
-zf+       |\Gold||\Gold{\a}||</code> 
-2. Aus der Datei 'psalm.tf' werden diejenigen **Abschnitte** (= Psalmen) kopiert,\\  die die **Zeichenfolge** "silber" enthalten\\  
-<code>#ko,psalm.tf,psalmziel.tf,-,+,* 
-aa        |<psalm>| 
-zf+       |silber| 
-*eof</code> 
-====== Kopieren mit Zusammenfassen best. Sätze ====== 
-- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin\\ \\ **Aufgabe:** In einer Datei sollen bestimmte (TUSTEP-)Sätze zu **einem** Satz zusammengefasst werden, ohne dass sich die übrige Satzeinteilung der Datei ändert.\\ \\ **Ausgangssituation: linke Spalte -- Ergebnis: rechte Spalte**\\  
-<code><ken>1</ken> Text Text           <ken>1</ken> Text Text 
-<ken>2</ken>                     <ken>2</ken> Text Text 
-Text Text                        <ken>3</ken> Text Text 
-<ken>3</ken> Text Text           <ken>4</ken> Text Text 
-<ken>4</ken>                     <ken>5</ken> Text Text 
-Text Text 
-<ken>5</ken> Text Text</code> 
-**Skript**\\  
-<code>#da,ziel,fr=- 
-#ko,datei.tf,ziel,-std-,+,* 
-aa        |<ken>| 
-za        |<ken>| 
-*eof</code> 
- 
-**Erklärung:** Verwendung findet hier der Parameter **aa** = **A**bschnitts**A**nfang, mit dem mehrere Sätze zusammengefasst werden können.\\ \\  
-====== Kopieren mit Manipulation der Satznummern 1 ====== 
-- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin\\ \\ **Aufgabe:** Eine Datei, die mehrere Dokumente (etwa Briefe, Urkunden etc.) enthält, soll so umkopiert werden, dass **die Seitennummer** bei jeder **neuen Dokumentnummer** um 1 erhöht wird. Die Dokumentnummern stehen im Text (und zwar am Zeilenbeginn) und sind mit <nr>...</nr> getaggt, sie sind **lückenlos aufsteigend**.\\  
-<code>Ausgangsdatei                                 Zieldatei 
- 
-1.1    <nr>1</nr>                             1.1    <nr>1</nr> 
-1.2    <p>Text Text ...</p>                   1.2    <p>Text Text ...</p> 
-1.3    <nr>2</nr>                             2.1    <nr>2</nr> 
-1.4    <p>Text Text ...</p>                   2.2    <p>Text Text ...</p> 
-1.5    <nr>3</nr>                             3.1    <nr>3</nr> 
-1.6    <p>Text Text ...</p>                   3.2    <p>Text Text ...</p> 
-1.7    <p>Text Text ...</p>                   3.3    <p>Text Text ...</p></code> 
-**Script:**\\  
-<code>#ko,quelldatei,zieldatei,+,+,* 
-sa        |<nr>| 
-*eof</code> 
- 
-====== Kopieren mit Manipulation der Satznummern 2 ====== 
-- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin\\ \\ **Aufgabe:** Eine Datei, die mehrere Dokumente (etwa Briefe, Urkunden etc.) enthält, soll so umkopiert werden, dass **die Satznummer** sich nach der **Nummer des Dokuments** richtet. Die Dokumentnummern stehen im Text und sind mit <nr>...</nr> getaggt, sie sind **aufsteigend**, aber **nicht fortlaufend**. Die Zeilennumer soll mit 0 beginnen.\\ **Vorteile:** 1. Ein Dokument kann im Editor **gezielt aufgerufen/angezeigt** werden; 2. die Satznummern können für die **Erstellung von Arbeitsregistern als Referenzen** ausgewertet werden.\\  
-<code>Ausgangsdatei                                 Zieldatei 
- 
-1.1    <nr>1</nr>                             1.0    <nr>1</nr> 
-1.2    <p>Text Text ...</p>                   1.1    <p>Text Text ...</p> 
-1.3    <nr>2</nr>                             2.0    <nr>2</nr> 
-1.4    <p>Text Text ...</p>                   2.1    <p>Text Text ...</p> 
-1.5    <nr>5</nr>                             5.0    <nr>5</nr> 
-1.6    <p>Text Text ...</p>                   5.1    <p>Text Text ...</p> 
-1.7    <p>Text Text ...</p>                   5.2    <p>Text Text ...</p> 
-1.8    <nr>13</nr>                           13.0    <nr>13</nr> 
-1.9    <p>Text Text ...</p>                  13.1    <p>Text Text ...</p></code> 
-**Script:**\\  
-<code>#ko,quelldatei,zieldatei,+,+,* 
-nr        1 1000 
-zf+       |<nr>| 
-al        |<nr>| 
-el        |</nr>| 
-liv       i0 
-rr        s11 = i0; s12 = 0; s13 = 1; 
-spn       3 
-*eof</code> 
-► **Erklärung:** Die Dokumentnummer wird mit den Parametern **al, el, liv** gelesen und mit **liv** in die Variable **i0** abgespeichert. Der Wert der Variable **i0** wird mit dem Parameter **rr** auf die Variable **s11**, welche die Seitennummer enthält, gespeichert, die Variable **s12**, welche die Zeilennummer enthält, wird auf 0 gesetzt. Der Parameter **nr** ist notwendig, wenn ein Dokument (Brief, Urkunde etc.) mehr als 60 (TUSTEP-)Sätze (Voreinstellung) umfasst; im vorliegenden Beispiel wird die Anzahl der möglichen Zeilen pro (TUSTEP-)Seite auf 1000 hochgesetzt.\\ **Eine Lösung der vorstehenden Aufgabe mit TUSCRIPT finden sie [[tuscript:loesungen:kopieren_und_manipulieren#Kopieren mit Manipulation der Satznummern|hier]]**\\ \\ \\  
-====== Kopieren mit Vergleichstext / Merk-Vergleichstext ====== 
-- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin (nach einem Skript von N. Bohnert)\\ \\ {{files_open:daten:vglliste.tf|vglliste.tf}} [2 KB]\\ \\ \\ **Aufgabe:** Eine Liste mit Jahreszahlen soll so umkopiert werden, dass nachfolgende **gleiche Jahreszahlen unterdrückt** werden.\\ \\ **Ausgangssituation: linke Spalte -- Ergebnis: rechte Spalte**\\  
-<code><j>1963</j> <t>...</t>            <j>1963</j> <t>...</t> 
-<j>1963</j> <t>...</t>                        <t>...</t> 
-<j>1974</j> <t>...</t>            <j>1974</j> <t>...</t> 
-<j>1983</j> <t>...</t>            <j>1983</j> <t>...</t> 
-<j>1983</j> <t>...</t>                        <t>...</t> 
-<j>1983</j> <t>...</t>                        <t>...</t> 
-<j>1991</j> <t>...</t>            <j>1991</j> <t>...</t> 
-<j>1996</j> <t>...</t>            <j>1996</j> <t>...</t></code> 
-**Skript**\\  
-<code>#da,ergliste,fr=- 
-#ko,vglliste.tf,ergliste,,+,* 
-av    1   |<j>| 
-ev    1   |</j>| 
-vgl     0 
-xx    1   |<j>*</j>          | 
-ak1     |<j>| 
-ek1     |</j>| 
-spn       23 
-sp2        3 5 
-*eof</code> 
-**Erklärung:** Ein mit den Parametern **AV** und **EV** definierter Vergleichstext (die Jahreszahl) wird mit einem zuvor gemerkten Vergleichstext verglichen. Parameter **VGL** prüft, ob die beiden Texte übereinstimmen. Im Falle von Ja wird die Jahreszahl mit dem Parameter **XX** entfernt und die Texteinheit in die Zieldatei ausgegeben (**3**); im Falle von Nein wird die Texteinheit unverändert in die Zieldatei ausgegeben (**23**). Anschließend wird derselbe Vergleichstext (die Jahreszahl) mit den Parametern **AK1** und **EK1** nochmals eingelesen und im Programmteil **5** zum neuen Merk-Vergleichstext bestimmt, der danach mit dem nächsten eingelesenen Vergleichstext verglichen wird (siehe "Logischer Programmaufbau" von ''#KOPIERE'' im Handbuch).\\ \\ Die Parameter **AV** und **AK1** können weggelassen werden; sie wurden hier nur zur Verdeutlichung aufgenommen.\\ \\ **Eine Lösung dieser Aufgabe mit TUSCRIPT finden sie [[tuscript:loesungen:kopieren:Ersetzen nach Bedingungen|hier]]**\\ \\  
-====== Kopieren mit Abfrage ====== 
-- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin\\ \\ **Aufgabe:** Innerhalb eines "#KOPIERE" mit einer Austauschanweisung soll der Benutzer durch **Ja-Nein-Abfrage** entscheiden können, ob im Ausgabesatz ein Asteriscus eingefügt werden soll oder nicht, ob also\\  
-<code>xx        |eingabe|ausgabe*| 
-            oder 
-xx        |eingabe|ausgabe|</code> 
-ausgeführt werden soll.\\ \\ **Einfache Lösung** (Skript: N. Bohnert):\\  
-<code>#makro 
-$$? "Soll ein Asterisk angefügt werden? (Ja/Nein)", antw="ja" 
-#ko,quelle,ziel,,+,* 
-$$ IF ("<antw>".AB."Ja") THEN 
-xx        |eingabe|ausgabe*| 
-$$ ELSE 
-xx        |eingabe|ausgabe| 
-$$ END IF 
-*eof* 
-*eof</code> 
-\\ **Lösung mit Frage im Pop-up-Fenster mit Schaltflächen** (Skript: M. Trauth):\\  
-<code>#makro 
-$$ MODE TUSCRIPT, {} 
- 
-SET system = SYSTEM() 
-IF (system .EQ. "WIN") THEN 
-   SET frage = * 
-      DATA ====================================== 
-      DATA ====     Asteriskus ausgeben?     ==== 
-      DATA ====================================== 
-   SET antwort = QUESTION ("Frage:", frage, YES) 
-ELSE 
-   ASK "Asteriskus ausgeben?  (j/n*) ", antwort = "n" 
-END IF 
-MODE DATA 
-#ko,quelle,ziel,,+,* 
-$$ IF (antwort .AB. "ja", "yes") THEN 
-xx        |eingabe|ausgabe*| 
-$$ ELSE 
-xx        |eingabe|ausgabe| 
-$$ END IF 
-*eof* 
-*eof</code> 
-► Die Frage nach dem Betriebssystem (''system'') ist nötig, weil die Makrofunktion QUESTION unter Linux nicht funktioniert.\\ **Eine Lösung der vorstehenden Aufgabe (nur) mit TUSCRIPT finden sie [[tuscript:loesungen:kopieren#Kopieren mit Abfrage|hier.]]**\\  
----- 
-[[tustep:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]] 
tustep/loesungen/kopieren.txt · Zuletzt geändert: 2021/03/16 05:34 (Externe Bearbeitung)