Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Leerzeichen ersetzen- Trim?

Leerzeichen ersetzen- Trim?
14.11.2007 13:05:00
Thomas
Hallo Experten,
ich möchte die Funktion "Split" nutzen, um einen String auf ein Array aufzuteilen. Das klappt wunderbar, solange zwischen den Daten nur ein Leerzeichen ist. Sind dort mehrere Leerzeichen, erhalte ich im Ergebnisfeld auch Leerfelder.
Dies umgehe ich momentan, indem ich den String nach 2 Leerzeichen durchsuche und diese mit nur einem Leerzeichen ersetze:

Do While InStr(msg, "  ") > 0
msg = Replace(msg, "  ", " ")
Loop
a = Split(msg)


Bei etlichen Hunderttausend bzw. Millionen von Strings dauert die Bearbeitung aber schon mal ziemlich lange.
Hat jemand eine andere Idee, wie ich die Leerzeichen ersetzen bzw. den String aufteilen kann?
Danke!
Thomas

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeichen ersetzen- Trim?
14.11.2007 13:06:00
Hajo_Zi
Hallo Thomas,
geht die nicht mit Relace? 2 Leerstelen durch eine Leerstelle ersetzen.

AW: Leerzeichen ersetzen- Trim?
14.11.2007 13:11:00
Thomas
Hallo Hajo,
ja, das mache ich ja auch (wie beschrieben). Jetzt stell dir aber vor, dass es im String teilweise 10 Leerzeichen hintereinander gibt, die mit der Schleife erkannt und auch beseitigt werden.
Aber wie gesagt, die Anzahl der Schleifendurchläufe pro String ist eben immens, und bei einigen Millionen Strings dauert das dann mal schon so 'ne Stunde...
Gruß

AW: WorksheetFunction.Trim
14.11.2007 13:13:25
Erich
Hallo Thomas,
msg = WorksheetFunction.Trim(msg)
sollte helfen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: WorksheetFunction.Trim
14.11.2007 13:23:00
Thomas
Danke Erich, det war't!
Hatte schon Trim ausprobiert, aber "Trim" und "Worksheet.Trim" bringen beide andere Ergebnisse. Und das "Worksheet.Trim" bringt eben das richtige Ergebnis.
Vielen Dank und Gruß aus Berlin,
Thomas

AW: WorksheetFunction.Trim
14.11.2007 13:26:00
Rudi
Hallo,
vergiss meinen Vorschlag von gerade.
array=split(Worksheetfunction.Trim(String))
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

natürlich ...
14.11.2007 13:28:09
Rudi
Hallo,
myArray=Split(Worksheetfunction.Trim(String)," ")
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Leerzeichen ersetzen- Trim?
14.11.2007 13:23:00
Rudi
Hallo,
wie wäre es, erst mal einen Haufen Strings in eine Tabelle zu schreiben und dann mit TextToColumns zu splitten? Das erlaubt die Behandlung mehrerer Trennzeichen als eines.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Leerzeichen ersetzen - Replace
14.11.2007 13:26:00
Erich
Hallo Thomas,
statt jede Zelle einzeln (jeden einzelnen Text) zu bearbeiten, kannst du Excel das
in einem Rutsch erledigen lassen:

With Range("B1:B3500")
.Replace What:="12345678", Replacement:=" ", LookAt:=xlPart, _
SearchFormat:=False, ReplaceFormat:=False
.Replace What:="1234", Replacement:=" "
.Replace What:="123", Replacement:=" "
.Replace What:="12", Replacement:=" "
End With

Die Ziffern im What must du natürlich durch Leerzeichen ersetzen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Danke euch beiden!
14.11.2007 13:41:43
Thomas
Hallo Rudi, hallo Erich,
tatsächlich lese ich die Strings aus einer Datei ein, wandle bzw. bearbeite sie und gebe sie in eine andere Datei aus. Es handelt sich um Log-Dateien, wo Daten mitgeschrieben werden.
Diese Textdateien sind mehrere Hundert Megabyte groß und haben mehrere Millionen Zeilen. Nun wird Zeile für Zeile bearbeitet.
Ich glaube, wenn ich den Umweg über die Excel-Zellen gehe, dauert das noch länger...
Vielen Dank nochmal für eure Zeit und Mühe,
Thomas

Anzeige
...und Dank natürlich auch an Hajo! :o)
14.11.2007 13:42:00
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige