Bestimmte Dateien von Komma in Punkt umwandeln

  • VBScript

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von etze877.

    Bestimmte Dateien von Komma in Punkt umwandeln

    Hallo Gemeinde

    ich habe ich VBS ein kleines Programm geschrieben, indem ich bestimmte Dateien (im meinen Fall *.dat und *.txt) von Komma in Punkt umwandeln lasse. Das Programm funktioniert auch soweit so gut. Nun habe ich das Problem, wenn eine Datei mit einer anderer Endung in meinen ausgewählten Ordner ist, geht mein Programm in die die Else-Schleife und meine msgbox sagt keine Datei gefunden.
    Was stimmt an meinen Quellcode nicht. Vielleicht kann mir ja jemand helfen.

    Danke

    Option Explicit
    Dim FSO, Dateipfad, Ordner, Inhalt, Datei, Zaehler, Input, Endung

    Dim objShell : Set objShell = CreateObject("Shell.Application")
    Dim objFolder : Set objFolder = objShell.BrowseForFolder(0, "Bitte waehlen Sie den Ordner aus.", &H0010, "")

    If objFolder Is Nothing Then
    WScript.Quit
    End If

    set FSO = CreateObject("Scripting.FileSystemObject")
    set Ordner = FSO.GetFolder(objFolder.Self.path)
    Set Dateipfad = Ordner.Files
    Zaehler = 0
    Input = InputBox("Welche Dateiendung soll gestartet werden?"&VbCRLF&VbCRLF&"1 = dat-File"&VbCRLF&"2 = txt-File")

    Select Case Input
    Case "1"
    Endung = "dat"
    Case "2"
    Endung = "txt"
    Case else
    MsgBox " Ungeeignete Eingabe!", vbSystemModal, "Abbruch"
    End Select

    for each File in Dateipfad
    If Endung = right(File, 3) Then
    If FSO.FileExists(File) Then
    Inhalt = FSO.OpenTextFile(File).ReadAll()
    Inhalt = Replace(Inhalt, ",", ".")
    Set Datei = FSO.OpenTextFile(File, 2)
    Datei.Write Inhalt
    Datei.Close
    Zaehler=Zaehler + 1
    End If
    Else
    msgbox" Keine Dateien gefunden.", vbSystemModal, "Ende"
    WScript.Quit
    End If

    Next

    msgbox Zaehler &" Datei(en) fertig generiert", vbSystemModal, "Ende"
    Willkommen im Forum.

    etze877 schrieb:

    wenn eine Datei mit einer anderer Endung in meinen ausgewählten Ordner ist, geht mein Programm in die die Else-Schleife und meine msgbox sagt keine Datei gefunden.
    Dann weißt Du doch, wo der Fehler liegt. Lass den Else-Zweig weg oder setze ein Flag, wenn die Endung gefunden wurde und lass die Box erscheinen, wenn das Flag noch im Initialzustand ist.

    btw: Bitte CodeTags verwenden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Dein Code mithilfe eines Flags (ein Boolean-Markierer) erweitert

    Visual Basic-Quellcode

    1. Dim AtLeastOneFittingFileExists
    2. AtLeastOneFittingFileExists = False
    3. For Each File in Dateipfad
    4. If Endung = right(File, 3) Then
    5. If FSO.FileExists(File) Then
    6. AtLeastOneFittingFileExists = True
    7. Inhalt = FSO.OpenTextFile(File).ReadAll()
    8. Inhalt = Replace(Inhalt, ",", ".")
    9. Set Datei = FSO.OpenTextFile(File, 2)
    10. Datei.Write Inhalt
    11. Datei.Close
    12. Zaehler=Zaehler + 1
    13. End If
    14. End If
    15. Next
    16. If Not AtLeastOneFittingFileExists Then
    17. MsgBox "Keine Dateien gefunden.", vbSystemModal, "Ende"
    18. WScript.Quit
    19. End If


    Aber wenn Du eh schon die Zaehler-Variable hast, kannst Du natürlich die gleich verwenden:

    Visual Basic-Quellcode

    1. For Each File in Dateipfad
    2. If Endung = right(File, 3) Then
    3. If FSO.FileExists(File) Then
    4. Inhalt = FSO.OpenTextFile(File).ReadAll()
    5. Inhalt = Replace(Inhalt, ",", ".")
    6. Set Datei = FSO.OpenTextFile(File, 2)
    7. Datei.Write Inhalt
    8. Datei.Close
    9. Zaehler = Zaehler + 1
    10. End If
    11. End If
    12. Next
    13. If Zaehler = 0 Then
    14. MsgBox "Keine Dateien gefunden.", vbSystemModal, "Ende"
    15. WScript.Quit
    16. End If
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.