Im ersten Kapitel über die Bearbeitung von Zeichenketten haben wir uns
bereits mit einer Grundausstattung von Funktionen versorgt, mit denen
man Zeichenketten am Anfang und am Ende formatieren kann. Außerdem wurde
ein Set von Funktionen für das Testen von Einzelzeichen vorgestellt.
Hier geht es jetzt weiter mit einem Bündel von neuen Lisp-Funktionen,
mit denen man Zeichenketten durchsuchen sowie Teile aus Zeichenketten
entfernen bzw. einfügen kann.
Ähnlich wie (subst ...) bei den Listen ersetzt die
folgende Funktion einen Teilstring innerhalb eines Strings durch
einen anderen String. Natürlich kann es sich hier um einzelne
Zeichen oder auch Folgen aus Zeichen handeln:
(defun str-subst(str neu alt / i la str2)
(setq i 1)
(setq la(strlen alt))
(setq str2 "")
(while(<= i(strlen str))
(if
(=(substr str i la)alt)
(progn
(setq str2(strcat str2 neu))
(setq i(+ i la))
)
(progn
(setq str2(strcat str2(substr str i 1)))
(setq i(1+ i))
)
)
)
str2
)
Anwendungsbeispiele:
(str-subst "c:/dir/subdir/file.ext" "\\" "/")
=> "c:\\dir\\subdir\\file.ext"