Bestimmte Spalten in Listview mit "For Each" nach und nach auslesen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von benni.

    Bestimmte Spalten in Listview mit "For Each" nach und nach auslesen

    Hi Leute,

    ich würde gerne in meiner Listview (3 Spalte: ID, Filename, Size) den Filename auslesen und in eine MsgBox packen.
    In der Spalte ID ist das ganze durchnummeriert. Wenn ich jetzt aber versuche mit folgendem Befehl die Filenames auszulesen bekomme ich nur nach und nach die Nummer?!

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. For Each ListViewSubItem In ListView1.Items
    3. MsgBox(ListViewSubItem.Text.ToString)
    4. Next
    5. End Sub



    Wie kann ich denn bitte die 2. Spalte auslesen?

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

    Jetzt würde ich gerne die Dateien die dort ausgegeben werden auf meinen FTP Server hochladen.
    Nur leider habe ich bis jetzt nur mit dem Download gearbeitet. So weit bin ich bis jetzt:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. For Each l As ListViewItem In ListView1.Items
    3. MsgBox(l.SubItems(1).Text.ToString)
    4. Dim UploadClient As New Net.WebClient
    5. UploadClient.Credentials = New Net.NetworkCredential("root", "meinpw ;)")
    6. UploadClient.UploadString = wie muss das hier aussehen?
    7. Next
    8. End Sub



    Ich wüsste gerne wie es nun weitergeht? Wie lade ich das Ding nun hoch? Wartet der mit dem For Each bis die eine Datei fertig ist und macht dann die nächste?

    VB.NET-Quellcode

    1. Dim client As New Net.WebClient
    2. client.Credentials = New Net.NetworkCredential("Username", "Passwort")
    3. client.UploadFile("ftpadresse", "C:\file.txt")
    GOOGLE ist mein Meister :)
    Danke.
    Dann habe ich noch 2 Fragen:

    1. Frage:
    Ich möchte das Ganze nun mit einer Progressbar im Auge behalten. Ich mache also hinter meinen Code folgendes:

    VB.NET-Quellcode

    1. Private Sub MyWebClient_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles MyWebClient.DownloadProgressChanged
    2. Progressbar.Value = e.ProgressPercentage
    3. End Sub


    Ich hoffe doch, damit spricht man den UploadClient, den ich oben definiert habe an, oder?
    Springt die Progressbar denn auch bei jedem weiteren Upload des Clienten wieder auf 0 zurück?






    2. Frage:
    (xD vergessen)
    Sollte in etwa so aussehen. Musste nur etwas umbauen.

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Dim WithEvents wClient As New WebClient
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. For Each sfiles In Liste
    6. wClient.Credentials = New Net.NetworkCredential("Username", "Passwort")
    7. wClient.UploadFile("ftpadresse", "C:\file.txt")
    8. AddHandler wClient.UploadFileCompleted, AddressOf UploadFileComplet
    9. Next
    10. End Sub
    11. Public Sub UploadFileComplet(ByVal sender As Object, ByVal e As UploadFileCompletedEventArgs)
    12. MsgBox(e.Result.ToString)
    13. End Sub
    14. End Class
    GOOGLE ist mein Meister :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Bady“ ()

    Ahh und die 2. Frage war:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. For Each l As ListViewItem In ListView1.Items
    3. Dim UploadClient As New Net.WebClient
    4. MsgBox(l.SubItems(1).Text.ToString)
    5. UploadClient.Credentials = New Net.NetworkCredential("***", "***")
    6. UploadClient.UploadFile("ftp://46.38.236.49/var/www/vali/", l.SubItems(1).Text.ToString)
    7. ' Statt "l.SubItems(1).Text.ToString" soll der Dateiname (also alles hinter dem letzten "/") angegeben werden
    8. Next
    9. End Sub


    Wie kann ich aus z.B. "C:\bla\blub\dingdong\hallo.exe" nur "hallo.exe" machen?
    Weil im Moment soll er ja jedes SubItem (was nunmal so in der Liste steht: C:\bla\blub\dingdong\hallo.exe) nur so hochladen: "hallo.exe".
    Weil sonst heißt die Datei, die auf dem Server landen soll ja irgendwie "C:\..." únd das geht doch nicht, oder?

    Edit by Manschula: FTP-Zugangsdaten entfernt! <<-- Danke!

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

    Ich weiß, ich bin zwar etwas spät, aber vielleicht kann ich ja jemand anderem helfen, der ebenfalls Hilfe braucht :D .

    Ich glaube, so müsst es gehn:

    VB.NET-Quellcode

    1. Dim a As String[] = l.SubItems(1).Text.ToString().Split(Convert.ToChar(@""))
    2. Dim namedesprogrammes = a[-1]


    Also ich habs zwar nicht ausprobiert, aber ich glaub so klappts.

    Edit: zwischen die Anführungszeichen bei

    VB.NET-Quellcode

    1. Convert.ToChar(@"")
    muss ein \ rein, VB-Paradise wollte es so nicht erkennen :D

    Benni

    P.S.: Ich programmier C#, also nicht wundern, wenn zu große Fehler drin vorkommen, aber so in der Richtung ist es :D :D Aber als Denkanstoß müsste es genügen :D


    ErfinderDesRades - Moderator - Notiz: bitte keine Uralt-Threads beposten - das interessiert niemanden mehr!
    --> closed

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