leerzeichen aus txt entfernen

Henne85

Grünschnabel
Hi,

ich lese eine Textdatei ein und will die leerzeichen entfernen . Nun kommt aber das Problem:
Zwischen den Strassennamen zb. sind auch leerzeichen, diese sollen aber nicht entfernt werden.

Auszug aus der Txt:

4564 |4 |034 |000 |sdfg |testweg blabla2 |test234 |
0457|3 |034 |000 |sdfg |strasse des blabla243 |test234 |
4544 |6 |024 |000 |fgsd |bla des blabla2345123 |test234 |



So sollte es aussehen:
4564|4|034|000|sdfg|testweg blabla2|test234|
0457|3|034|000|sdfg|strasse des blabla243|test234|
4544|6|024|000|fgsd|bla des blabla2345123|test234|

Die Pipes sind zur trennung da.
Habs mal mit -> Replace(inhalt_txt, " ", "") versucht aber da ersetzt der mir nur doppelte leereichen, mit ->Replace(inhalt_txt, " ", "") würde der alle leerzeichen ersetzten

kann mir da jemand helfen? danke im vorraus
 
Wie es aussieht, sind die überflüssigen Leerzeichen (zumindest in den Testdaten) ja vor der Pipe.

Wie wäre es da mit:
Code:
Replace(inhalt_txt, " |", "")

Ansonsten müsstest Du das Strassenfeld zuvor extrahieren, und nur die anderen Felder bearbeiten.

Grüsse
ronaldh
 
es ist ja nicht nur ein leerzeichen vor den Pipes sondern mehrere. In der Darstellung oben wurden die leerzeichen irgendwie entfernt.
Die Pipes nach dem leerzeichen müssen enthalten werden.
 
Wenn Du den Aufruf in einer Schleife solange durchlaufen lässt, bis kein Leerzeichen vor den Pipes mehr vorhanden ist, sollte es gehen.

Code:
    Do While Instr(inhalt_txt," |") > 0 
          Replace(inhalt_txt, " |", "|")
    Loop

Grüsse
ronaldh
 
danke dir :)

Code:
Do While Instr(inhalt_txt," |") > 0 
          inhalt_txt = Replace(inhalt_txt, " |", "|")
    Loop

man musste es nur nochmal der inhalt_txt übergeben.

thx
 
Zuletzt bearbeitet:
Replace ersetzt normalerweise alle vorkommenden Stellen, eine Schleife ist also normalerweise nicht notwendig. Ich hab das mal mit VBA mit der Replace-Zeile von ronaldh getestet (damit man nicht sagen kann, er hätte einen Fehler drin gehabt), hat ohne Probleme alle ungewünschten Leerzeichen ersetzt.

Es gibt schon die Möglichkeit, nur ein Zeichen ersetzen zu lassen, man kann einen Counter einfügen lassen:
Visual Basic:
inhalt_txt = Replace(inhalt_txt, " |", "|", , 3) 'Hier würden nur 3 Ersetzungen vorgenommen werden
Schau dir dazu auch die VB-Hilfe an.


Der Doc!
 
Hallo Doc,

ja, so geht es auch. Kommt sicherlich drauf an, ob es da eine beliebige Zahl von Leerzeichen vor der Pipe geben kann, welche Lösung im Einzelfall sinnvoller ist.

Viele Grüsse
ronaldh
 
Zurück