Zwei oder mehr Leerzeichen ersetzen mit einem Bindestrich
Da ich nicht sicher bin ob es ein VB-Script, Batch oder sonst was wird stell ichs mal hier rein.
Hallo,
brauche bitte Hilfe, ich habe ein PDF in ein TXT konvertiert damit ich aus diesem TXT dann ein XLS machen kann muss ich alles was mehr als ein Leerzeichen ist irgendwie in ein anderes Trennungszeichen zB.: Bindestrich konvertieren.
Kann mir da bitte wer helfen. Mit Notepad++ hab ich zumindest geschafft das 2 Leerzeichen = 1 Bindestrich aber hilfreich ist das auch nicht wirklich.
Danke!
lg mcdy
Hallo,
brauche bitte Hilfe, ich habe ein PDF in ein TXT konvertiert damit ich aus diesem TXT dann ein XLS machen kann muss ich alles was mehr als ein Leerzeichen ist irgendwie in ein anderes Trennungszeichen zB.: Bindestrich konvertieren.
Kann mir da bitte wer helfen. Mit Notepad++ hab ich zumindest geschafft das 2 Leerzeichen = 1 Bindestrich aber hilfreich ist das auch nicht wirklich.
Danke!
lg mcdy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 165630
Url: https://administrator.de/forum/zwei-oder-mehr-leerzeichen-ersetzen-mit-einem-bindestrich-165630.html
Ausgedruckt am: 18.04.2025 um 05:04 Uhr
11 Kommentare
Neuester Kommentar
Also was mir auf der Schnelle einfallen würde und war sehr einfach ist:
Editor öffnen; Die längste Reihenfolge an Leerzeichen ermitteln; Zeichen ersetzen; Die längste Reihenfolge an Leerzeichen eingeben und durch ein anderes Zeichen ersetzen; Danach das mit einem Leerzeichen weniger durchführen. Das machst du so lange bist du nur mir 1 Leerzeichen hast.
Wie gesagt ist jetzt sehr einfach!
mfg
Editor öffnen; Die längste Reihenfolge an Leerzeichen ermitteln; Zeichen ersetzen; Die längste Reihenfolge an Leerzeichen eingeben und durch ein anderes Zeichen ersetzen; Danach das mit einem Leerzeichen weniger durchführen. Das machst du so lange bist du nur mir 1 Leerzeichen hast.
Wie gesagt ist jetzt sehr einfach!
mfg
Zitat von @mc-doubleyou:
Hallo,
brauche bitte Hilfe, ich habe ein PDF in ein TXT konvertiert damit ich aus diesem TXT dann ein XLS machen kann muss ich alles was
mehr als ein Leerzeichen ist irgendwie in ein anderes Trennungszeichen zB.: Bindestrich konvertieren.
Kann mir da bitte wer helfen. Mit Notepad++ hab ich zumindest geschafft das 2 Leerzeichen = 1 Bindestrich aber hilfreich ist das
auch nicht wirklich.
Hallo,
brauche bitte Hilfe, ich habe ein PDF in ein TXT konvertiert damit ich aus diesem TXT dann ein XLS machen kann muss ich alles was
mehr als ein Leerzeichen ist irgendwie in ein anderes Trennungszeichen zB.: Bindestrich konvertieren.
Kann mir da bitte wer helfen. Mit Notepad++ hab ich zumindest geschafft das 2 Leerzeichen = 1 Bindestrich aber hilfreich ist das
auch nicht wirklich.
Normalerweise macht man sowas mit sed oder ähnlichem, aber in Notepad würde ich es so machen:
Drei Leerzeichen durch zwei Leerzeichen ersetzen, und zwar solange, bis keine Ersetzungen mehr möglich sind.
Und dann zwei Leerzeichen durch einen Bindestrich -et voila - Das gewünschte Ergebnis sollte da sein.
Mir ist das nochwas eigenfallen!
Im Word den Ersetzten Dialog öffnen.
Dann gibts bei da Erwitert>>, dort aktivierst du Platzhalter verwenden.
Jetzt gibts du bei Suchen nach folgendes ein: Leerzeichen{2;}
Bei ersetzten dein gewünschtes Zeichen. Statt Leerzeichen natürlich ein wirkliches Leerzeichen eingeben ;)
Alle ersetzen und fertig!!
Mfg
Im Word den Ersetzten Dialog öffnen.
Dann gibts bei da Erwitert>>, dort aktivierst du Platzhalter verwenden.
Jetzt gibts du bei Suchen nach folgendes ein: Leerzeichen{2;}
Bei ersetzten dein gewünschtes Zeichen. Statt Leerzeichen natürlich ein wirkliches Leerzeichen eingeben ;)
Alle ersetzen und fertig!!
Mfg
hallo mc-doubleyou,
eventuell hilft dir ja dieses VBS-Script schon und man muss ja nicht alle Möglichkeiten
" " > durchackern.
probier mal:
das nehme ich zum einfachen ersetzen von irgendwelchen Strings in Text(typischen)dateien
Gruss
Tsuki
[Edit]
wie Biber schon anmerkt:
Wenn du EIN LEERZEICHEN ungerade Anzahl nur behalten willst, dann suche nach mindestens ZWEI LEERZEICHEN gerade Anzahl
[/Edit]
eventuell hilft dir ja dieses VBS-Script schon und man muss ja nicht alle Möglichkeiten
" " > durchackern.
probier mal:
Option Explicit
Dim Pfad
Dim SuchText
Dim ReplaceText
dim FSO , MeineDatei
Dim MeineDateiNeu
Dim objDialog , intResult
Dim Zaehler
Pfad = BrowseForFile("C:\", "Textdateien (.txt)|*.txt|All Files|*.*")
If Pfad = "" Then
Wscript.Echo "Keine Datei ausgewählt. Script wird beendet"
Wscript.Quit
End If
Function BrowseForFile(pstrPath, pstrFilter)
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = pstrFilter
objDialog.InitialDir = pstrPath
objDialog.Flags = &H80000 + &H4 + &H8
intResult = objDialog.ShowOpen
BrowseForFile = objDialog.FileName
End Function
Set objDialog = Nothing
SuchText = InputBox("Bitte Suchtext eingeben." , "Suchtext...","Suche")
ReplaceText = InputBox("Bitte ErsetzenText eingeben." , "ErstzenText...","Ersetze")
Ersetzen
Private Sub Ersetzen()
On Error Resume next
Set FSO = createobject("Scripting.FileSystemObject")
Set MeineDatei = FSO.OpenTextFile(Pfad, 1)
MeineDateiNeu = Replace(MeineDatei.ReadAll,SuchText,ReplaceText)
Zaehler = Instr(MeineDateiNeu,ReplaceText)
MeineDatei.Close
Set MeineDatei = FSO.CreateTextFile(Pfad,True)
MeineDatei.Write(MeineDateiNeu)
MeineDatei.Close
Set FSO = Nothing
Set MeineDatei = Nothing
End Sub
If Not Zaehler = 0 Then
Wscript.Echo "In der Datei: " & Chr(34) & Pfad & Chr(34) & VbCrlf _
& "wurde: " & Chr(34) & Suchtext & Chr(34) & " durch " _
& Chr(34) & ReplaceText & Chr(34) & "ersetzt."
Else
Wscript.Echo "In der Datei: " & Chr(34) & Pfad & Chr(34) & VbCrlf _
& "konnte der gesuchte Text nicht gefunden werden."
End If
das nehme ich zum einfachen ersetzen von irgendwelchen Strings in Text(typischen)dateien
Gruss
Tsuki
[Edit]
wie Biber schon anmerkt:
Wenn du EIN LEERZEICHEN ungerade Anzahl nur behalten willst, dann suche nach mindestens ZWEI LEERZEICHEN gerade Anzahl
[/Edit]
Ich bin zwar weder Bastla noch Biber aber, ...
In vbs kanns tdu die Datei einlesen. Dann gibts da nen replace befehl, danach wieder in eine Datei schreiben. Wobei du da dann auch mehrere replace nacheinander machen kannst bzw. in schleife um eben auch 50 leerzeichen zu einem zu reduzieren.
In Batch kannst du eine Datei mit einer for schleife zeile für zeile verarbeiten. Am einfachsten ist es indem du dann eine unterprozedur aufrufst, die zeile einer variabeln zuweist, dann die leerzeichen ersetzt und wieder in eine (andere) datei schreibst:
In vbs kanns tdu die Datei einlesen. Dann gibts da nen replace befehl, danach wieder in eine Datei schreiben. Wobei du da dann auch mehrere replace nacheinander machen kannst bzw. in schleife um eben auch 50 leerzeichen zu einem zu reduzieren.
In Batch kannst du eine Datei mit einer for schleife zeile für zeile verarbeiten. Am einfachsten ist es indem du dann eine unterprozedur aufrufst, die zeile einer variabeln zuweist, dann die leerzeichen ersetzt und wieder in eine (andere) datei schreibst:
echo %zeile: =_%>>datei.txt
das geht natürlich auch wieder mehrfach hintereinander oder in einer übergeordneten schleife.Zitat von @mc-doubleyou:
Bzgl. sed das ist doch ein UNIX Editor oder? Ich habe nämlich hier nur ein Windows.
Bzgl. sed das ist doch ein UNIX Editor oder? Ich habe nämlich hier nur ein Windows.
mit cygwin alles kein Problem. Da bekommt man die ganze gnu-toolchain und einiges mehr, wenn man will.
http://www.cygwin.com
Moin mc-Double-you,
nun macht da nicht so'n Heckmeck drum
Eine Zeile VBScript:
Demo am CMD-Prompt:
Fertig.
Okay, statt Ausgabe auf den Monitor sollte der Krams umgeleitet werden mit
Und falls es für die nachfolgende Verarbeitung in Excel nötig sein sollte, dann halt statt mehrere SPACEs mit einem SPACE ersetzen:
Und ganz aussen wieder ein
Grüße
Biber
nun macht da nicht so'n Heckmeck drum
Eine Zeile VBScript:
'RemoveDoubleSpaces.vbs
Wscript.Echo Replace(Replace(Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile(wscript.arguments(0)).ReadAll, " "," ")," "," "), " "," ")
Demo am CMD-Prompt:
>type TextMitDoppeltenLeerzeichen.txt
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
(=15:07:33 F:\schnipsel=)
>RemoveDoubleSpaces.vbs TextMitDoppeltenleerZeichen.txt
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen Text mit Leerstellen an irgendwelchen Positionen
Text mit Leerstellen an irgendwelchen Positionen
Fertig.
Okay, statt Ausgabe auf den Monitor sollte der Krams umgeleitet werden mit
RemoveDoubleSpaces.vbs TextMitDoppeltenLeerzeichen.txt > TextMitWenigerLeerzeichen.txt
Und falls es für die nachfolgende Verarbeitung in Excel nötig sein sollte, dann halt statt mehrere SPACEs mit einem SPACE ersetzen:
... Replace(" ","_")... 'Replace MehrereSpaces mit "_"
Und ganz aussen wieder ein
... Replace("__","_")... ' Replace mehrere "_" durch eines.
Grüße
Biber