tranministrator
Goto Top

Zeilenumbrüche in mehreren Dateien eines Ordners entfernen

Hallo liebe Admins,

habe folgenden Code welcher ganz gut funktioniert und alle Zeilenumbrüche EINER bestimmten Datei entfernt.
Jetzt ist aber die große Frage wie man das so löst, dass alle Dateien eines bestimmten Ordners mit einem bestimmten Dateinamens-Anfang zB. TEST* damit ausgestattet werden ohne dass sich der Dateiname dabei ändert.


'Variablen & Konstanten definieren  
Dim fso, objEingabe, objAusgabe, objSuchen
Dim Pfad, EingabeDatei, AusgabeDatei, Zeile

Suchen_Click()

Private Sub Suchen_Click()

Pfad = "C:\Users\xxx\Desktop\test\"  
EingabeDatei = "test.txt"  
AusgabeDatei = "aus.txt"  

Const ForReading = 1, ForWriting = 2, ForAppending = 8
'Objekt erstellen  
Set fso = CreateObject("Scripting.FileSystemObject")  
If fso.FileExists(Pfad & EingabeDatei) Then
Set objEingabe = fso.OpenTextFile(Pfad & EingabeDatei, 1)
Set objAusgabe = fso.OpenTextFile(Pfad & AusgabeDatei, 2,true)
Else
MsgBox "Fehler: Eingabedatei ist nicht vorhanden."  
Exit Sub
End If

do until objEingabe.AtEndOfStream
Zeile = objEingabe.ReadAll
Zeile = Replace(zeile, vbcrlf, "")  

objAusgabe.Write (Zeile)
Loop

objEingabe.Close
objAusgabe.Close

' Eingabedatei löschen  
fso.DeleteFile Pfad & EingabeDatei, True
' AusgabeDatei umbenennen durch MoveFile  
fso.MoveFile Pfad & Ausgabedatei, Pfad & EingabeDatei

Set objAusgabe = Nothing
Set objEingabe = Nothing
Set fso = Nothing

End Sub

Viele Grüße

Robs

Content-ID: 249761

Url: https://administrator.de/contentid/249761

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

rubberman
Lösung rubberman 21.09.2014 aktualisiert um 20:19:28 Uhr
Goto Top
Hallo Tranministrator,

etwa so:
Option Explicit

Const strPath = "C:\users\xxx\desktop\test"  
Const strFirstPart = "TEST"  

Const ForReading = 1, ForWriting = 2
Dim objFSO, objFolder, objFile, objStream, strContent

Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFolder = objFSO.GetFolder(strPath)

For Each objFile In objFolder.Files
  If InStr(objFile.Name, strFirstPart) = 1 Then
    Set objStream = objFile.OpenAsTextStream(ForReading)
    strContent = Replace(objStream.ReadAll, vbCrLf, "")  
    objStream.Close
    Set objStream = objFile.OpenAsTextStream(ForWriting)
    objStream.Write strContent
    objStream.Close
  End If
Next
Grüße
rubberman
Tranministrator
Tranministrator 21.09.2014 um 20:20:43 Uhr
Goto Top
Hallo Rubberman,

recht herzlichen Dank für deine Mühe!

Hat bestens geklappt face-big-smile

Viele Grüße

Robs