Vorlage Diskussion:IndexOfDouble

Aus Perrypedia
Wechseln zu: Navigation, Suche

Version 1.0

IndexOfDouble sucht nach dem ersten doppelten Vorkommen eines Zeichens und liefert die Position bzw. -1, falls kein doppeltes Vorkommen gefunden wurde (siehe Beispiele weiter unten).
Dabei wird wiederholt folgendes gemacht:
Zeichen suchen, schauen, ob der nächste Fundort eine Stelle weiter ist, falls nicht, ab nächstem Fundort wiederholen.
Diese Teilsuche wird insgesamt 10 mal wiederholt, wenn auch das 10. Vorkommen des gesuchten Zeichens noch kein doppeltes ist, wird die Suche abgebrochen (als Position -1 geliefert). Das Vorgehen ist den eingeschränkten Möglichkeiten beim Vorlagenerstellen und Performance-Überlegungen geschuldet.

Falls jemand weiß, wie man das mit den vorhandenen Mitteln besser machen kann, ist das natürlich willkommen. Aber bitte daran denken, dass die Vorlage indirekt in seeeehr vielen Seiten eingebunden ist, eine Änderung sollte von daher sehr gut überlegt sein, weil die Aktualisierung all dieser Seiten zwar im Hintergrund abläuft, das wiki aber eventuell durchaus beansprucht.

Parameter:

  • 1. Parameter: Text, der durchsucht werden soll.
  • 2. Parameter: Zeichen, nach dem gesucht werden soll. Falls keines angegeben wurde wird nach dem Leerzeichen gesucht.

Beispiele:

Beispiel Ergebnis Erwartetes Ergebnis
{{IndexOfDouble|abcdabcd}} -1 -1, es wird nach doppelten Leerzeichen gesucht, es sind aber keine Leerzeichen enthalten.
{{IndexOfDouble|ab cd ab cd}} -1 -1, es wird nach doppelten Leerzeichen gesucht, es sind aber nur einfache Leerzeichen enthalten.
{{IndexOfDouble|ab cd ab cd}} 2 2, das erste Leerzeichen ist ein doppeltes (wird im Browser nicht so dargestellt, sieht man aber im Quelltext), es wird von 0 ab gezählt.
{{IndexOfDouble|ab cd ab cd}} 5 5, das erste Leerzeichen ist ein einfaches, das zweite ein doppeltes (wird im Browser nicht so dargestellt, sieht man aber im Quelltext), es wird von 0 ab gezählt.
{{IndexOfDouble|ab cd ab cd}} 5 5, das erste Leerzeichen ist ein einfaches, das zweite und dritte ein doppeltes (wird im Browser nicht so dargestellt, sieht man aber im Quelltext), es wird die Position des ersten Vorkommens geliefert.
{{IndexOfDouble|ab cd ab cd| }} 5 5, Leerzeichen als zu suchendes Zeichen explizit mit angegeben; das erste Leerzeichen ist ein einfaches, das zweite und dritte ein doppeltes (wird im Browser nicht so dargestellt, sieht man aber im Quelltext), es wird die Position des ersten Vorkommens geliefert.
{{IndexOfDouble|abcdaabcd|a}} 4 4, Beispiel für eine Suche nach einem anderem Zeichen als dem Leerzeichen

Eventuell für Leute interessant, die die Vorlage weiterentwicklen wollen: Die Erstellung erfolgte auf der Seite Benutzer:NAN/Vorlage IndexOfDouble, über die Versionsgeschichte hat man dort z.B. auch Zugriff auf Versionen, in denen die einzelnen Wiederholungen noch durch Zeileinumbrüche getrennt und damit besser lesbar sind. Die Kommentare geben etwas Auskunft darüber, warum bestimmte Sachen auf eine bestimmte Weise und nicht anders gemacht wurden. ;-) --NAN (Diskussion|Beiträge) 09:25, 13. Mai 2012 (CEST)