String-Handling

09/12/2014 - 07:36 von Lothar Geyer | Report spam
Ich habe folgende Aufgabe. Es sind einige Strings in einer Schleife des
Öfteren miteinander zu verbinden. Z.B.:

Strg1 - ist konstant
Strg2 - àndert sich bei jedem Mal
Strg3 - konstant
Strg4 - kann manchmal ein Leerstring sein
Strg5 - àndert sich meist
Strg6 - ist konstant

Also etwa so:

Strg1 = "sdf"
Strg3 = "123"
Strg6 = "xyz"
Do While ...
Strg2 = StrFunc01(...)
Strg4 = StrFunc02(...)
Strg5 = StrFunc03(...)
Ergebnis = ...
Loop

Was ist der bessere / schnellere / weniger Ressourcen brauchende Weg:
1) Strg1 & Strg2 & Strg3 ...
2) die Strings in ein Array und dann Joinen
3) ??

Danke.

Lothar Geyer
 

Lesen sie die antworten

#1 Wolfgang Wolf
09/12/2014 - 07:55 | Warnen spam
Am 09.12.2014 07:36, schrieb Lothar Geyer:


Was ist der bessere / schnellere / weniger Ressourcen brauchende Weg:
1) Strg1 & Strg2 & Strg3 ...
2) die Strings in ein Array und dann Joinen
3) ??




Ich würde mal sagen 3.

Meine Begründung:

zu 1: String-Konkatenation ist nicht besonders schnell, dürfte aber bei
den wenigen Strings keine all zu große Bremse sein. Es sei denn deine
DI-Schleife dauert lange.

zu 2: Join ist nicht schlecht, jedoch kostet das Umkopieren der Strings
in ein Array zusàtzlich Zeit

deshalb also 3: auf Strg1-6 verzichten und lieber gleich mit einen Array
arbeiten:

Dim Strg(1 to 6) as string
Strg(1) = "sdf"
Strg(3) = "123"
Strg(6) = "xyz"
Do While ...
Strg(2) = StrFunc01(...)
Strg(4) = StrFunc02(...)
Strg(5) = StrFunc03(...)
Ergebnis = Join(Strg)
Loop

oder 4:
Strg1 = "sdf"
Strg3 = "123"
Strg6 = "xyz"
Do While ...
Strg2 = StrFunc01(...)
Strg4 = StrFunc02(...)
Strg5 = StrFunc03(...)
Strg = space(len(Strg1) + len(Strg2) + ...)
Mid$(Strg,x,y) = Strg1
Mid$(Strg,x,y) = Strg2
Loop

Schönen Gruß
W. Wolf

Ähnliche fragen