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
40 changes: 40 additions & 0 deletions lib/stdlib/Duden/Texte.ddp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,46 @@ 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 mit den Parametern text und anzahl vom Typ Text Referenz und Zahl, gibt nichts zurück, macht:
Wenn nicht ((die Länge von text) größer als anzahl ist), dann:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Könnte zu Wenn die Länge von Text kleiner als, ode anzahl ist, ... vereinfacht (und ein wenig deutscher) werden

Speichere "" in text.
Sonst speichere text von anzahl plus 1 bis (die Länge von text) in text.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die Syntax hat sich im letzten Release zu t im Bereich von ... bis ... geändert, deshalb failen noch die Tests.
Es geht inzwischen sogar noch besser: text ab dem (anzahl plus 1). Element.

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 mit den Parametern text und anzahl vom Typ Text Referenz und Zahl, gibt nichts zurück, macht:
Wenn nicht ((die Länge von text) größer als anzahl ist), dann:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Selbiges wie oben

Speichere "" in text.
Sonst speichere text von 1 bis (die Länge von text minus anzahl) in text.
Copy link
Member

@bafto bafto Dec 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die Syntax hat sich im letzten Release zu t im Bereich von ... bis ... geändert, deshalb failen noch die Tests.
Es geht inzwischen sogar noch besser: text bis zum (die Länge von text minus anzahl). Element.

Und kann so benutzt werden:
"Entferne <anzahl> Buchstaben am Ende von <text>"

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

Schreibe (einen leeren Text) auf eine Zeile.

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

[Entferne_Anzahl_Hinten]
Der Text Entferne_Anzahl_Hinten_Text ist "Hello world!".
Entferne 0 Buchstaben am Anfang von Entferne_Anzahl_Hinten_Text.
Schreibe (Entferne_Anzahl_Hinten_Text) auf eine Zeile. [Hello World!]
Entferne 6 Buchstaben am Anfang von Entferne_Anzahl_Hinten_Text.
Schreibe (Entferne_Anzahl_Hinten_Text) auf eine Zeile. [Hello ]
Entferne 2 Buchstaben am Anfang von Entferne_Anzahl_Hinten_Text.
Schreibe (Entferne_Anzahl_Hinten_Text) auf eine Zeile. [Hell]
Entferne -21489159 Buchstaben am Anfang von Entferne_Anzahl_Hinten_Text.
Schreibe (Entferne_Anzahl_Hinten_Text) auf eine Zeile. [Hell]
Entferne 21489159 Buchstaben am Anfang von Entferne_Anzahl_Vorne_Text.
Schreibe (Entferne_Anzahl_Vorne_Text) auf eine Zeile. []

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
10 changes: 10 additions & 0 deletions tests/testdata/stdlib/Texte/expected.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@

Hello World!
World!
orld!
orld!

Hello World!
Hello
Hell
Hell

guh??
guh??
guh??
Expand Down
Loading