Visual Basic, Namen von Dateien teilweise ändern?

Hallo zusammen,

ich habe zwar ein paar VB Kenntnisse, diese beschränken sich jedoch eher auf lesen und grundlegendes Verstehen eines Codes. Daher hoffe ich auf Helfende, die mir (hoffentlich mit etwas Spaß an der Sache) unter die Arme greifen können.

Angenommen ich habe einen Pfad: C:\Beispiel

In diesem Pfad liegen beliebig viele Dateien. Alle sind namentlich in etwa wie folgt aufgebaut:

ABC-DE1F-GHI-123.xyz

ODER

ABC-DEF-G1HI-JKL-456.xyz

 

Der Dateiname besteht also aus mehreren Blöcken (hier durch Buchstaben gekennzeichnet, können aber auch vereinzelt Zahlen beinhalten), die immer durch Bindestriche getrennt sind. Die Anzahl der Bindestriche ist verschieden (meist 3 oder 4 pro Name). Die Zeichenanzahl pro Block kann unterschiedlich sein (also ABC-… könnte demnach auch ABCD-… oder ABCDE-… sein). Der letzte Block, quasi vor der Dateiendung, ist IMMER eine Zahl. Diese muss jedoch nicht dreistellig wie oben im Beispiel sein, kann auch ein- oder zweistellig sein. Die Dateiendung ist immer gleich.

Ich brauche ein Makro, welches im Namen alle Blöcke bis auf den letzten (also die Zahl) und die Dateiendung löscht.

Aus ABC-DE1F-GHI-123.xyz würde dann 123.xyz werden.

Meine Idee war, dass das Makro den Dateinamen nach dem letzten Bindestrich durchsucht und diesen samt allem was vorne dran steht entfernt.

Allerdings hört es bei mir programmiertechnisch mit der Definition des Verzeichnisses als String dann auch schon auf. Kann mir hier jemand helfen?

LG

Felix

 

Computer, Visual Basic, Computerprogramm
3 Antworten
Welche Programmiersprache sollte ich erlernen?

Sehr geehrte Gemeinde,

Also es ist so. Ich interessiere mich für das Erlernen wie man Programme bzw. Anwendungen, Scripts und sonstiges schreibt. Ich plane eine konkrete Ausbildung in einer dieser Sprachen zu machen.

Ich bin sehr interessiert daran und weiß auch das es schwer wird, das ist keine Frage.

Ich hab allerdings jetzt keine richtige Ahnung in welcher Sprache ich mein Wissen aufbauen bzw. einen Lehrgang starten soll.

Ich habe mich schon ein wenig informiert und kenne vom Namen folgende gebräuchlichen Programmiersprachen, mit einer von denen ich mich dann auch weiterbilden möchte:

C, C++, C#, Java, Visual Basic oder Visual Basic for Applications (VBA).

Des Weiteren bin an Python interessiert, weil eines meiner persönlichen Lieblingsprogramme in Python geschrieben ist. Mit Python möchte ich aber keinen Lehrgang belegen.

Es wird sich ausschließlich um eine der oberen Programmiersprachen handeln.

Kann jemand von euch, der sich vielleicht schon mit der ein oder anderen oder sogar mehreren von denen auskennt, mir Tipps geben, welche Programmiersprache, die besten Möglichkeiten (auch in der Zukunft) gibt bzw. was für Einschränkungen bei diesen bestehen?

Ich möchte einmal hochleistungsfähige Programme schreiben.

Auf der Einfachheit liegt überhaupt kein Betrachtungspunkt.

Es kann also schwer sein, wenn es dafür entsprechend flexible Möglichkeiten bietet.

Bei Java habe ich schon gehört, dass man hiermit plattformübergreifende Applikationen schreiben kann.

Vielen Dank für Eure/deine Hilfe.

PC, Computer, Visual Basic, programmierer, programmieren, Java, VBA, Programmierung, Applikationsentwicklung, C-plus-plus, C Sharp, CPP, CSharp, Informatik, Programmiersprache, Python, Appentwicklung
17 Antworten
Hilfe! Problem mit VB.Net-Exception?

Guten Tag. Ich hab einen Problem.

Wenn dieser Code läuft (habe ich selber geschrieben, also nicht Copy&Paste oder so ...), erhalte ich eine System.ArgumentOutOfRangeException.

Außerdem ist "Game" ein UserControl.

Code:

Public Class ROM_Downloader_Home
  Public Sub ROM_Downloader_Home_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim games As New List(Of Game)
    Dim Indexes As New List(Of Integer)

    Try
      Dim Request As HttpWebRequest = Hthttps://www.loveroms.com/roms/top-100.php.com/roms/top-100.php")
      Request.Proxy = Nothing
      Request.UserAgent = "Test"
      Dim Response As HttpWebResponse = Request.GetResponse
      Dim ResponseStream As System.IO.Stream = Response.GetResponseStream
      Dim streamReader As New System.IO.StreamReader(ResponseStream)
      Dim Data As String
      Data = streamReader.ReadToEnd
      streamReader.Close()
      Indexes = GetIndexes(Data, "<span class=""game-title"">", 10)

      For Each num In Indexes
        games.Item(num).GameTitle.Text = Data.Substring(Indexes.Item(num), 15)
        GamePanel.Controls.Add(games.Item(num))
      Next
    Catch ex As Exception
      MsgBox("Fehler: Top Roms wurden nicht gefunden. :( " + ex.ToString)
    End Try
  End Sub

  Private Function GetIndexes(ByVal SearchWithinThis As String, ByVal SearchForThis As String, Optional ByVal maxNumber As Integer = 0) As List(Of Integer)
    Dim Result As New List(Of Integer)
    Dim i As Integer = SearchWithinThis.IndexOf(SearchForThis)
    Dim count As Integer = 0

    If maxNumber = 0 Then
      While (i <> -1)
        Result.Add(i)
        i = SearchWithinThis.IndexOf(SearchForThis, i + 1)
      End While
    Else
      While (i <> -1)
        count = count + 1
        Result.Add(i)
        i = SearchWithinThis.IndexOf(SearchForThis, i + 1)

        If count = maxNumber Then Exit While
      End While
    End If

    Return Result
  End Function
End Class

Ich bitte um Hilfe. Danke!

Visual Basic, Programmierung, Anwendungsentwicklung, Basic, vb.net, Visual Studio, exception, Programmierfehler, Web scraping
2 Antworten

Meistgelesene Fragen zum Thema Visual Basic

UserForm durch CommandButton schließen

4 Antworten

Wie ermittelt man in Excel (VBA) den Zelleninhalt bei verbundenen Zellen?

5 Antworten

Wie kann ich in einer Excel-Tabelle beliebige Zwischenwerte linear interpolieren lassen?

8 Antworten

Wie erstelle ich ne exe-datei von meinem Visual Studio 2010 Projekt

2 Antworten

was kann man programmieren? ideen?

7 Antworten

Excel-VBA Userform in den Hintergrund stellen

3 Antworten

Wozu verwendet man Arrays (Feldvariablen)?

3 Antworten

[Visual Basic] Prüfen ob bestimmter Prozess läuft

1 Antwort

Prüfen ob ein Objekt in der Combobox ist (VBA)?

1 Antwort

Visual Basic - Neue und gute Antworten