|
Wie würden Sie einen Teil-String in einen anderen String einfügen? Wahrscheinlich wohl so:
Neu = Left$(Alt, Position - 1) & Einfügen & Mid$(Alt, Position)
Eine andere denkbare Möglichkeit wäre jedoch:
Neu = Alt & Space$(Len(Einfügen))
Mid$(Neu, Position) = Einfügen & Mid$(Alt, Position)
Hier stellt sich die Frage, welche der beiden Möglichkeiten effizienter und schneller ist. Ganz eindeutig lässt sich das nicht beantworten.
Grundsätzlich ist die zweite Variante schneller, in jedem Fall bei kurzen Strings (unter 100 Zeichen) - etwa bei Namen, in die ein fehlendes Zeichen eingefügt werden soll. Bei längeren Strings, etwa einigen Kilobytes eines Datei-Inhalts, ist die erste Variante um so schneller, je näher die Einfügeposition am Anfang des Strings liegt.
Umgekehrt ist jedoch die zweite Variante erheblich schneller, je näher die Einfügeposition am Ende des Strings liegt. Dabei spielt sogar die String-Länge fast gar keine Rolle mehr. Mit wachsender String-Länge wird sie kaum langsamer, während sich bei der ersten Variante eine zunehmende String-Länge deutlich nachteilig auf die Geschwindigkeit auswirkt.
Aber unabhängig davon, welche der beiden Varianten Sie verwenden möchten, gilt vor allem bei der Verwendung in Schleifen: Fügen Sie eine der beiden Code-Zeilen direkt in Ihren übrigen Code ein und verzichten Sie darauf, scheinbar praktische Funktionen daraus zu machen und aufzurufen. Der Overhead der Funktionsaufrufe selbst schluckt um Größenordnungen mehr Zeit als die Ausführung der eigentlichen Aufgabe - erst bei einer Funktion mit der ersten Variante und bei sehr langen Strings reicht die eigentliche Bearbeitungszeit an den Zeitbedarf für den reinen Funktionsaufruf selbst heran.
|