String zurecht schneiden

  • VB.NET

Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    String zurecht schneiden

    Hallo liebe Community,

    ich habe mal wieder eine Frage an euch:
    Ich habe einen String. Meinetwegen sei es ein Pfad zu einer Datei:
    C:\Programme(x86)\MeinProgramm\datei.exe

    Und diesen String möchte ich nun kürzen, sodass ich am Ende nur noch folgendes dort zu stehen habe:
    datei.exe

    Ich frage mich nur die ganze Zeit, wie ich sowas realisiere.
    Wichtig ist dabei nur, dass man das nicht mit abzählen der Buchstaben realisieren kann, da der Pfad in meinem Fall variabel ist und sich ändern kann.

    MfG, lace
    /facepalm

    Path ist ein Namespace und bietet diese Funktion, welcher du deinen String bietest.

    VB.NET-Quellcode

    1. Dim ImASexyPath As String = "C:\Program Files (x86)\Directory\Ordner\Verzeichnis\DATEILOL.exe"
    2. Dim ImAnEvenSexierFilename As String = System.IO.Path.GetFilename(ImASexyPath)
    Ok danke. Dann probier ich das mal.
    Eine Frage hätte ich da aber noch:

    Ich habe eine Listview in der einige Dateinamen drin stehen. Mit einem Button werden alle diese Dateien nacheinander hochgeladen.
    Ich habe außerdem 2 Progressbars bei mir und möchte die obere dafür benutzen, den Fortschritt des Uploads der aktuellen Datei anzuzeigen.
    Die untere Progressbar, soll den Fortschritt des Uploads aller Dateien anzeigen.

    Das Problem ist nur: Ich weiß nicht wie ich das bei meinem Code hinbekomme:

    VB.NET-Quellcode

    1. Imports txtProgressbarAdvanced
    2. Imports System.IO
    3. Imports System.Net
    4. Public Class Form1
    5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. Dim di As New IO.DirectoryInfo(CurDir) 'Der Pfad
    7. Dim diar1 As IO.FileInfo() = di.GetFiles() 'Hol die Dateien aus dem Pfad
    8. Dim dra As IO.FileInfo 'Die FileInfo
    9. Dim i As Integer = 0
    10. 'list the names of all files in the specified directory
    11. For Each dra In diar1
    12. i = i + 1
    13. Dim item As New ListViewItem(i)
    14. item.SubItems.Add(dra.Name)
    15. Dim size As Long = dra.Length
    16. If size >= 1048576 Then
    17. item.SubItems.Add(Math.Round(size / 1048576, 2) & " MB")
    18. Else
    19. item.SubItems.Add(Math.Round(size / 1024, 0) & " KB")
    20. End If
    21. item.SubItems.Add(dra.FullName)
    22. ListView1.Items.AddRange(New ListViewItem() {item})
    23. Next
    24. End Sub
    25. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    26. For Each l As ListViewItem In ListView1.Items
    27. Dim UploadClient As New Net.WebClient
    28. UploadClient.Credentials = New Net.NetworkCredential("MeinServer", "meinPW")
    29. UploadClient.UploadFile("ftp://soft-way.de:21/neu/" & l.SubItems(1).Text.ToString, l.SubItems(3).Text.ToString)
    30. Next
    31. End Sub
    32. End Class


    Bitte konzentriert euch nur um meine Frage. Ich weiß, dass der Code nicht mein bestes Werk ist, aber darum gehts jetzt nicht.

    MfG, lace

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „lace“ ()

    Beim WebClient gibt es ein Event Names UploadFileProgressChanged, das kannst du benutzen um den Fortschritt der aktuellen Datei anzuzeigen.
    Und den GesamtFortschritt müsstest du mit

    Quellcode

    1. (FertigeDatein*100+AktuellerFortschritt)/AnzahlDatein

    berechnen können. Alles sind natürlich Prozentangaben.
    Danke. Ich hab das jetzt so gemacht wie er, aber das interessiert meine Progressbar sehr wenig:

    VB.NET-Quellcode

    1. Imports txtProgressbarAdvanced
    2. Imports System.IO
    3. Imports System.Net
    4. Public Class Form1
    5. WithEvents UploadClient As New Net.WebClient
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. Dim di As New IO.DirectoryInfo(CurDir) 'Der Pfad
    8. Dim diar1 As IO.FileInfo() = di.GetFiles() 'Hol die Dateien aus dem Pfad
    9. Dim dra As IO.FileInfo 'Die FileInfo
    10. Dim i As Integer = 0
    11. 'list the names of all files in the specified directory
    12. For Each dra In diar1
    13. i = i + 1
    14. Dim item As New ListViewItem(i)
    15. item.SubItems.Add(dra.Name)
    16. Dim size As Long = dra.Length
    17. If size >= 1048576 Then
    18. item.SubItems.Add(Math.Round(size / 1048576, 2) & " MB")
    19. Else
    20. item.SubItems.Add(Math.Round(size / 1024, 0) & " KB")
    21. End If
    22. item.SubItems.Add(dra.FullName)
    23. ListView1.Items.AddRange(New ListViewItem() {item})
    24. Next
    25. End Sub
    26. Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    27. For Each l As ListViewItem In ListView1.Items
    28. UploadClient.Credentials = New Net.NetworkCredential("Benutzer", "Passwort")
    29. UploadClient.UploadFile("ftp://soft-way.de:21/neu/" & l.SubItems(1).Text.ToString, l.SubItems(3).Text.ToString)
    30. Next
    31. End Sub
    32. Private Sub UploadClient_UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs) Handles UploadClient.UploadProgressChanged
    33. ProgressBar1.Value = e.ProgressPercentage
    34. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „lace“ ()

    ich hab nicht nach Code gefragt.
    Ich gebe dir den Tipp, den Umgang mittm Objectbrowser zu erlernen, und dann nachzugucken, was dort über das genannte Event dokumentiert ist.
    ObjectBrowser ist übrigens ein Link, der zu einem tutorial über Recherche im Allgemeinen, und OB im Besonderen führt.

    Also, was kannst du mittm OB über diese Event herausfinden - wie lautet die "Zusammenfassung"?
    Danke für deine Hilfe aber da steig ich nicht durch. Vor allem weil der Link für C Sharp ist und nicht für VB. -.-
    Kann denn echt keiner mehr helfen?

    Bis jetzt habe ich nur so einen Stuss hier:

    VB.NET-Quellcode

    1. Private Sub UploadClient_UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs) Handles UploadClient.UploadProgressChanged
    2. ProgressBar1.Value = e.ProgressPercentage
    3. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „lace“ ()