Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erweitern vom Duden um Entferne_Anzahl_Vorne, Entferne_Anzahl_Hinten #43

Merged
merged 10 commits into from
Dec 12, 2023
80 changes: 80 additions & 0 deletions lib/stdlib/Duden/Texte.ddp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,86 @@ Und kann so benutzt werden:
"ein leerer Text" oder
"einen leeren Text"

[
Entfernt eine feste Anzahl von Buchstaben vom Anfang eines gegebenen Textes.
Ist die Länge des Textes kürzer als die zu löschende Anzahl, gibt die Funktion einen leeren Text zurück.
Werte für Anzahl kleiner als 0 wird wie 0 gewertet.
z.B.:
Der Text t ist "abcdef".
Entferne 3 Buchstaben am Anfang von t.
t: "def"

Der Text t ist "abc".
Entferne 5 Buchstaben am Anfang von t.
t: ""
]
Die öffentliche Funktion Entferne_Anzahl_Vorne_Mutierend mit den Parametern text und anzahl vom Typ Text Referenz und Zahl, gibt nichts zurück, macht:
Wenn die Länge von text kleiner als, oder anzahl ist, dann:
Speichere "" in text.
Sonst speichere text ab dem (anzahl plus 1). Element in text.
Und kann so benutzt werden:
"Entferne <anzahl> Buchstaben am Anfang von <text>"

[
Entfernt eine feste Anzahl von Buchstaben vom Ende eines gegebenen Textes.
Ist die Länge des Textes kürzer als die zu löschende Anzahl, gibt die Funktion einen leeren Text zurück.
Werte für Anzahl kleiner als 0 wird wie 0 gewertet.
z.B.:
Der Text t ist "abcdef".
Entferne 3 Buchstaben am Ende von t.
t: "abc"

Der Text t ist "abc".
Entferne 5 Buchstaben am Ende von t.
t: ""
]
Die öffentliche Funktion Entferne_Anzahl_Hinten_Mutierend mit den Parametern text und anzahl vom Typ Text Referenz und Zahl, gibt nichts zurück, macht:
Wenn die Länge von text kleiner als, oder anzahl ist, dann:
Speichere "" in text.
Sonst speichere text bis zum (die Länge von text minus anzahl). Element in text.
Und kann so benutzt werden:
"Entferne <anzahl> Buchstaben am Ende von <text>"

[
Entfernt eine feste Anzahl von Buchstaben vom Anfang eines gegebenen Textes.
Ist die Länge des Textes kürzer als die zu löschende Anzahl, gibt die Funktion einen leeren Text zurück.
Werte für Anzahl kleiner als 0 wird wie 0 gewertet.
z.B.:
Der Text t ist "abcdef".
Entferne 3 Buchstaben am Anfang von t.
t: "def"

Der Text t ist "abc".
Entferne 5 Buchstaben am Anfang von t.
t: ""
]
Die öffentliche Funktion Entferne_Anzahl_Vorne mit den Parametern text und anzahl vom Typ Text und Zahl, gibt einen Text zurück, macht:
Wenn die Länge von text kleiner als, oder anzahl ist, dann:
Gib "" zurück.
Gib text ab dem (anzahl plus 1). Element zurück.
Und kann so benutzt werden:
"<text> mit den ersten <anzahl> Buchstaben entfernt"

[
Entfernt eine feste Anzahl von Buchstaben vom Ende eines gegebenen Textes.
Ist die Länge des Textes kürzer als die zu löschende Anzahl, gibt die Funktion einen leeren Text zurück.
Werte für Anzahl kleiner als 0 wird wie 0 gewertet.
z.B.:
Der Text t ist "abcdef".
Entferne 3 Buchstaben am Ende von t.
t: "abc"

Der Text t ist "abc".
Entferne 5 Buchstaben am Ende von t.
t: ""
]
Die öffentliche Funktion Entferne_Anzahl_Hinten mit den Parametern text und anzahl vom Typ Text und Zahl, gibt einen Text zurück, macht:
Wenn die Länge von text kleiner als, oder anzahl ist, dann:
Gib "" zurück.
Gib text bis zum (die Länge von text minus anzahl). Element zurück.
Und kann so benutzt werden:
"<text> mit den letzten <anzahl> Buchstaben entfernt"

[
Entfernt alle gegebenen Buchstaben vom Anfang eines gegebenen Textes.
z.B.:
Expand Down
42 changes: 42 additions & 0 deletions tests/testdata/stdlib/Texte/Texte.ddp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,48 @@ Binde "Duden/Ausgabe" ein.

Schreibe (einen leeren Text) auf eine Zeile.

[Entferne_Anzahl_Vorne_Mutierend]
Der Text Entferne_Anzahl_Vorne_Mutierend_Text ist "Hello World!".
Entferne 0 Buchstaben am Anfang von Entferne_Anzahl_Vorne_Mutierend_Text.
Schreibe (Entferne_Anzahl_Vorne_Mutierend_Text) auf eine Zeile. [Hello World!]
Entferne 5 Buchstaben am Anfang von Entferne_Anzahl_Vorne_Mutierend_Text.
Schreibe (Entferne_Anzahl_Vorne_Mutierend_Text) auf eine Zeile. [ World!]
Entferne 2 Buchstaben am Anfang von Entferne_Anzahl_Vorne_Mutierend_Text.
Schreibe (Entferne_Anzahl_Vorne_Mutierend_Text) auf eine Zeile. [orld!]
Entferne -21489159 Buchstaben am Anfang von Entferne_Anzahl_Vorne_Mutierend_Text.
Schreibe (Entferne_Anzahl_Vorne_Mutierend_Text) auf eine Zeile. [orld!]
Entferne 21489159 Buchstaben am Anfang von Entferne_Anzahl_Vorne_Mutierend_Text.
Schreibe (Entferne_Anzahl_Vorne_Mutierend_Text) auf eine Zeile. []

[Entferne_Anzahl_Vorne]
Der Text Entferne_Anzahl_Vorne_Text ist "Hello World!".
Schreibe (Entferne_Anzahl_Vorne_Text mit den ersten 4 Buchstaben entfernt) auf eine Zeile. [o World!]
Schreibe (Entferne_Anzahl_Vorne_Text mit den ersten 0 Buchstaben entfernt) auf eine Zeile. [Hello World!]
Schreibe (Entferne_Anzahl_Vorne_Text mit den ersten -4 Buchstaben entfernt) auf eine Zeile. [Hello World!]
Schreibe (Entferne_Anzahl_Vorne_Text mit den ersten 5000 Buchstaben entfernt) auf eine Zeile. []
Schreibe (Entferne_Anzahl_Vorne_Text) auf eine Zeile. [Hello World!]

[Entferne_Anzahl_Hinten_Mutierend]
Der Text Entferne_Anzahl_Hinten_Mutierend_Text ist "Hello World!".
Entferne 0 Buchstaben am Ende von Entferne_Anzahl_Hinten_Mutierend_Text.
Schreibe (Entferne_Anzahl_Hinten_Mutierend_Text) auf eine Zeile. [Hello World!]
Entferne 6 Buchstaben am Ende von Entferne_Anzahl_Hinten_Mutierend_Text.
Schreibe (Entferne_Anzahl_Hinten_Mutierend_Text) auf eine Zeile. [Hello ]
Entferne 2 Buchstaben am Ende von Entferne_Anzahl_Hinten_Mutierend_Text.
Schreibe (Entferne_Anzahl_Hinten_Mutierend_Text) auf eine Zeile. [Hell]
Entferne -21489159 Buchstaben am Ende von Entferne_Anzahl_Hinten_Mutierend_Text.
Schreibe (Entferne_Anzahl_Hinten_Mutierend_Text) auf eine Zeile. [Hell]
Entferne 21489159 Buchstaben am Ende von Entferne_Anzahl_Hinten_Mutierend_Text.
Schreibe (Entferne_Anzahl_Hinten_Mutierend_Text) auf eine Zeile. []

[Entferne_Anzahl_Hinten]
Der Text Entferne_Anzahl_Hinten_Text ist "Hello World!".
Schreibe (Entferne_Anzahl_Hinten_Text mit den letzten 4 Buchstaben entfernt) auf eine Zeile. [Hello Wo]
Schreibe (Entferne_Anzahl_Hinten_Text mit den letzten 0 Buchstaben entfernt) auf eine Zeile. [Hello World!]
Schreibe (Entferne_Anzahl_Hinten_Text mit den letzten -4 Buchstaben entfernt) auf eine Zeile. [Hello World!]
Schreibe (Entferne_Anzahl_Hinten_Text mit den letzten 5000 Buchstaben entfernt) auf eine Zeile. []
Schreibe (Entferne_Anzahl_Hinten_Text) auf eine Zeile. [Hello World!]

Schreibe (" guh??" mit allen ' ' davor entfernt) auf eine Zeile. [TrimAnfangWert, guh??]
Schreibe ("guh?? " mit allen ' ' danach entfernt) auf eine Zeile. [TrimEndeWert, guh??]
Schreibe (" guh?? " mit allen ' ' davor und danach entfernt) auf eine Zeile. [TrimWert, guh??]
Expand Down
20 changes: 20 additions & 0 deletions tests/testdata/stdlib/Texte/expected.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@

Hello World!
World!
orld!
orld!

o World!
Hello World!
Hello World!

Hello World!
Hello World!
Hello
Hell
Hell

Hello Wo
Hello World!
Hello World!

Hello World!
guh??
guh??
guh??
Expand Down