none
aus Excel/CSV Zelle suchen und 2 weitere Zellen aus der Spalte ausgeben RRS feed

  • Frage

  • Hallo,

    ich habe auf meiner Form 2x Label, 1x Textbox und 1x Button.
    In die Texbox gebe ich eine Zahl ein zBsp 5. Durch betätigen des Buttons, soll dann in der Tabellen-CSV-Datei (aus Excel exportiert) in der Spalte A nach der Zahl suchen (Bsp. 5) und dann in Label1 den Wert von Spalte B in der Zeile von der 5, sowie von Spalte C der Wert angegeben werden.

    Das suchen funktioniert auch schon ganz gut, aber ich bekomme es nur hin, die komplette Zeile auszulesen und zusätzlich werden dann alle leeren Spalten dahinter als ";" aufgeführt.
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            For Each zeile As String In IO.File.ReadAllLines("Tabelle.csv")
                If zeile.Contains(TextBox1.Text) Then 
                    Label1.Text = zeile
                    'Label2.Text = ????
                End If
            Next
    End Sub
    In diesem Beispiel steht in der Zeile, bei welcher die 5 ist : Spalte = 47,55 und Spalte C = 33,2.
    Als Ergebnis bekomme ich aktuell "47,55;33,2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"

    Wie bekomme ich das jetzt hin, dass im Label1 nur der Wert von Spalte B (47,55) und Label2 Spalte C (33,2) angezeigt wird?

    Samstag, 12. Januar 2019 19:46

Antworten

  • Hi,

    du solltest dir die Methode String.Split anschauen. Damit kannst du deine Zeile in ein Array splitten.

    Oder du machst es zum Beispiel so:

    Dim result = (From line In File.ReadAllLines("C:\Temp\z.csv")
    			  Let value = line.Split(CType(";", Char()))
    			  Select New With {
    				   .Spalte_A = value(0),
    				   .Spalte_B = value(1),
    				   .Spalte_C = value(2),
    				   .Spalte_F = value(4)}).ToList()
    
    
    
    Dim s = result.Where(Function(w) w.Spalte_A = "3.1").FirstOrDefault()
    If Not s Is Nothing Then
    	Console.WriteLine(String.Format("A:{0}, B:{1}, C:{2}, F:{3}", s.Spalte_A, s.Spalte_B, s.Spalte_C, s.Spalte_F))
    End If

    Es gibt, wie immer, viele Möglichkeiten..

    Gruß


    Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP

    • Als Antwort vorgeschlagen Ivan DragovModerator Dienstag, 15. Januar 2019 08:08
    • Als Antwort markiert witcher7 Sonntag, 20. Januar 2019 17:55
    Samstag, 12. Januar 2019 23:51