Frage zu VB6

  • VB6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Uwe23.

    Hallo, ich bin VB6- Anfänger und habe ein Problem, welches ich noch nicht lösen konnte. Ich habe einige Hundert Verzeichnisse. In jedem Verzeichnis befindet sich eine html-Datei - mit unterschiedlichen Namen ("*.htm). Diese Datei möchte ich mit dem Verzeichnisnamen umbenennen.
    Mit der GetFunktion habe ich es versucht, bin aber daran gescheitert.

    Verzeichnis xy Verzeichnis xy
    | |
    ------- ' *.htm ' --------> ----------- ' Verzeichnisxy.htm '

    Kann mir jemand helfen? :/
    Hey, da du ja noch Anfänger bist, würde ich dir empfehlen mit VB.NET (eine neuere Variante als Vb6) zu programmieren. Die IDE (Visual Studio) gibt es kostenlos als Community Edition.

    Theoretisches vorgehen:

    Verzeichnisse Rekursiv durchlaufen
    Dateien auflisten und nach *.htm suchen
    -> Falls gefunden Filename = Directory name & ".htm"

    Wie genau das in VB6 funktioniert kann ich dir leider nicht sagen, da ich nur mit der .NET Variante gearbeitet habe.
    Hallo Uwe23,
    probier' mal dies:
    Controls: 1 * DirListBox

    Visual Basic-Quellcode

    1. Dim i&, Dat1$, OldName$, NewName$, Pfad$
    2. Dir1.Visible = False
    3. Dir1.Path = "D:\Data\Folder" ' Pfad des übergeordneten Ordners hier einsetzen
    4. For i = 0 To Dir1.ListCount - 1
    5. Pfad = Dir1.List(i)
    6. Dat1 = Dir$(Pfad & "\*.htm")
    7. If Dat1 <> "" Then
    8. OldName = Pfad & "\" & Dat1
    9. NewName = Pfad & "\" & Mid$(Pfad, InStrRev(Pfad, "\") + 1) & ".htm"
    10. Name OldName As NewName
    11. End If
    12. DoEvents
    13. Next i
    Gruss,

    Neptun
    Ich kann mir nicht vorstellen, dass der TE eine native VB6-Umgebung hat.
    Ich gehe vielmehr davon aus, dass er versucht, in Visual Studio bzw. in VB2010 mit VB6-Code zu hantieren.

    In dem Fall wäre es aber wirklich angebracht, gleich VB.Net-Code zu verwenden.

    @Uwe23 In welcher Entwicklungsumgebung programmierst du?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Danke Neptun. Habe den Quelltext versucht. Leider scheint da noch ein Fehler zu sein. Er findet in DIR1 das Verzeichnis, kann aber nicht die *.htm - Datei auslesen. Der Dat1-String bleibt leer.

    Ich habe das "reine" 'Visual Basic 6, verwende nicht VS oder VB2010. Das habe ich mir gekauft und verwende es, um kleinere Programme für verschiedene Zwecke zu schreiben. Für VB-net fehlt mir leider die Zeit mich einzuarbeiten. Vielleicht dann, wenn ich etwas mehr Zeit finde.
    Hallo Neptun,

    ja natürlich. Die Endung ist htm. Ich habe es nochmals durchdacht. Braucht man zum Anzeigen nicht noch ein FileListfeld? Das Dir zeigt doch nur Verzeichnisse an. Vielleicht liegt daran der Fehler. Aber trotzdem Danke für die idee mit dem Dir. Ich werde es aufgreifen und versuchen mit dem FileListfeld es umzusetzen. Das müsste funktionieren. Bin die nächsten 2 Wochen im Urlaub. Nach dem Urlaub setze ich mch ran. Gruss Uwe