Code: Alles auswählen
EnableExplicit
;Ersetze 2 oder mehr Leerzeichen durch ein einziges
Define Teststring.s,k.i
Teststring="Hallo, String mit vielen Leerzeichen *"
Teststring=ReplaceString(Teststring," "," ")
MessageRequester("wrong",Teststring)
Der Fehler fällt in anderen als dem geschildertem Fall nicht auf. Würde die folgende Suche bei k+länge(Ersatzstring) beginnen, wäre auch im geschilderten Fall das Ergebnis korrekt und bisherige Fälle funktionierten weiterhin. Es würde lediglich eine etwas geringere Geschwindigkeit vorliegen, da pro Auftreten jeweils 1 Zeichen mehr untersucht werden müsste.
Der geschilderte Fall ist übrigens wichtig bei der Aufsplittung eines String mit Leerzeichen als Trennzeichen. Wenn dort mehrere Leerzeichen aufeinanderfolgen, will man das auf ein einzelnes reduziert haben.
Natürlich kann man das gewünschte Verhalten mit Findstring und Replacestring bzw. durch wiederholten Aufruf von Replacestring() nachbilden. Viel einfacher aber wäre die geschilderte Änderung in der Codierung von ReplaceString().