Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Effektives Ersetzen in einem String
#1
Hallo,

gegeben ist (beispielhaft!) folgendes Nachnamen-Array:

farr = Array( "Kohl", "Merkel", "Wehner", "Adenauer", "Schmidt", "Schröder","Genscher")

Jetzt habe ich Zeichenketten, die folgendermaßen aussehen:

strZ1 = "Helmut   Herbert     Gerhard    Merkel      Hans-Dietrich"
strZ2 = "Konrad   Schröder   Herbert     Gerhard    Kohl    Angela"

Wie bekomme ich die Nachnamen, also allgemeiner gesprochen die Werte die in dem Array stehen und festgelegt wurden, dass sie nicht in den Zeichenketten strZ1 und strZ2 stehen dürfen

so schnell wie möglich weg? Da die Replace Funktion ja nur Strings ersetzt, müßte ja hier mühselig eine Schleife durchlaufen werden.
Antworten Top
#2
Hallo,
(26.04.2017, 14:25)Elke Boese schrieb: müßte ja hier mühselig eine Schleife durchlaufen werden.

Was genau ist daran "mühselig"? Mir fällt kein anderer Weg ein.
Gruß Jonas
Antworten Top
#3
Hallo Elke,

richtig erkannt. Dann machen wir doch einen String draus Smile

Code:
Sub test()
arr1 = Array("a", "b", "c")
str1 = Join(arr1, ",")
str1 = Replace(str1, "b", "")
arr1 = Split(str1, ",")
End Sub

Du erhälst so statt b ein leeres Feld. Ist das nicht erwünscht, müsste man noch die Kommata behandeln. Statt Komma gehen natürlich auch andere Trennzeichen, je nachdem, was eindeutig passt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
TE möchte aber statt

strZ1 = "Helmut   Herbert     Gerhard    Merkel      Hans-Dietrich"
strZ2 = "Konrad   Schröder   Herbert     Gerhard    Kohl    Angela"

richtig haben:

strZ1 = "Helmut   Herbert     Gerhard   Hans-Dietrich"
strZ2 = "Konrad   Herbert     Gerhard    Angela"


Daher musst Du tatsächlich das ganze Array für Replace durchlaufen, wie Jonas schon schrieb. In einer Schleife.
Antworten Top
#5
Hallöchen,
Schleife? Da sage ich nach wie vor nein.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
@André

danke für deinen Post. Habe die Sache dann gestern abend auf der Grundlage deines Beitrages versucht. Kriege ich aber leider nicht hin!

Bitte zeig doch mal wie das deiner Meinung nach ohne Schleife funktionieren sollte. Danke!
Antworten Top
#7
Ich vermute, schauan hat nicht verstanden, dass ALLE Nachnamen, die im Array gelistet sind, aus den beiden Strings entfernt werden sollen, anstelle nur EINES (bei ihm: "b").
Antworten Top
#8
Hallo Lupo,
Ich denke, es ist gar nicht so schwer zu verstehen, die codezeile zu kopieren und auf einen zweiten Namen anzupassen... Ich bin nur gerade am Smartphone und da ist das getippe etwas unkomfortabel.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
Daran krankt es, denn Dein Name ist ein Inhalt, keine Variable. Elke möchte aber das Array mit egal welchem Inhalt auf die beiden Strings anwenden.
Antworten Top
#10
Hallo lupo,

Dein strz2 ist z. B. Ein string. Da tauschst Du erst den Herbert durch den Gerhard aus, dann den Schröder durch denHerbert und zum Schluss nimmst Du den Kohl mit nix raus. Alles 3 mit 3 replace und ggf noch eine Trennzeichenkorrektur um das Array zu kürzen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste