Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: martinusbaum am Sonntag, 20. Oktober 2019, 17:14

Titel: String in Variable links um drei Buchstaben abschneiden?
Beitrag von: martinusbaum am Sonntag, 20. Oktober 2019, 17:14
hallo zusammen,
hab Stücke in Verzeichnissen, die nummeriert sind, z.B. 01_Stückname.
nun soll der Verzeichnisname ohne Nummer als title verwendet werden (title = "Stückname")
Bitte wie kann ich an dem string links drei Zeichen abschneiden?
Lieben Dank für Hilfe!
Titel: Antw:Striing in Variable links um drei Buchstaben abschneiden?
Beitrag von: harm6 am Sonntag, 20. Oktober 2019, 17:46
(string-drop "01_Stückname" 3)
oder
(cadr (string-split "01_Stückname" #\_))

Allerdings können beide Methoden falsche Ergebnisse liefern:
string-drop falls Buchstaben vorkommen deren string-length größer 1 ist. Z.B (string-drop "äü_Stückname" 3) -> "�_Stückname"
string-split wenn mehr als ein Unterstrich vorkommt. Z.B. (cadr (string-split "01_Stück_name" #\_)) ->"Stück"

Gruß,
  Harm
Titel: Antw:Striing in Variable links um drei Buchstaben abschneiden?
Beitrag von: Malte am Sonntag, 20. Oktober 2019, 17:48
Oder(substring "01_Stückname" 3)Wie sich das jetzt von string-drop unterscheidet, ist mir nicht ganz klar ... Mehr dazu: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/String-Selection.html#String-Selection

Edit: Nachdem du immer nur Ziffern und Unterstriche abschneidest, sollte es keine Probleme mit einer falschen Anzahl von Buchstaben geben; diese Zeichen sind alle im ASCII drin und damit auch in UTF8 in nur einem Byte kodiert.
Titel: Antw:Striing in Variable links um drei Buchstaben abschneiden?
Beitrag von: harm6 am Sonntag, 20. Oktober 2019, 19:48
ZitatWie sich das jetzt von string-drop unterscheidet, ist mir nicht ganz klar

Naja, string-drop startet am Anfang und schmeißt alles raus bis zum spezifizierten Wert.
substring behält alles ab dem spezifizierten Wert bis zum optionalen Wert oder dem string-Ende.

Übrigens, all diese string-operationen klappen in guile-2 sehr viel direkter, da sehr viele characters gelistet werden.
Z.B.
Zitat von: guile-prompt
scheme@(guile-user)> (version)
$3 = "2.0.14"
scheme@(guile-user)> (string-drop "äü_Stückname" 1)
$4 = "ü_Stückname"

Wenn nur  die anderen Probleme nicht wären...

Gruß,
  Harm
Titel: Antw:Striing in Variable links um drei Buchstaben abschneiden?
Beitrag von: harm6 am Montag, 21. Oktober 2019, 12:29
Zum Vergleich:

Zitat von: guile-1.8-prompt
guile> (version)
"1.8.8"
guile> (char-set-size char-set:full)
256

Zitat von: guile-2.0.14-prompt
$2 = "2.0.14"
scheme@(guile-user)> (char-set-size char-set:full)
$3 = 1112064

Gruß,
  Harm
Titel: Antw:Striing in Variable links um drei Buchstaben abschneiden?
Beitrag von: martinusbaum am Mittwoch, 23. Oktober 2019, 18:22
Lieben Dank!
dass daraus sogar eine vertiefende Disussion entstanden ist....