Servus
Ich habe mir eine Funktion gebaut, mit der ich CSV-Daten parsen kann. Idealerweise direkt in ein DataGrid:
Die Listen selbst habe ich als Property angelegt:
Sofern ich das ganze als Module anlege, kann ich problemlos darauf zugreifen, als Klasse: Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis.
Was mache ich hier falsch?
Weiter: Return-Werte. Wie man sieht liefert der Code nicht in allen Pfaden ein Ergebnis zurück. Funktioniert, aber eben unsauber. Da ich die Liste erst im Case definiere, wüsste ich nicht, wie ich das Returnvalue anders übergeben sollte. Ich wollte das wenn möglich gleich als ReturnType angeben: Function LoadCSV(ByVal Pfad As String) as List(of ?)
Vielen Dank!
Ich habe mir eine Funktion gebaut, mit der ich CSV-Daten parsen kann. Idealerweise direkt in ein DataGrid:
VB.NET-Quellcode
- Function LoadCSV(ByVal Pfad As String)
- Using Parser = New Microsoft.VisualBasic.FileIO.TextFieldParser(Pfad, Encoding.Default)
- Parser.SetDelimiters(";")
- Dim CSVType As Integer = Parser.ReadFields.Length
- Select Case CSVType
- Case 3 'Attribute
- Dim List = New List(Of Attribut)
- Dim Fields = Parser.ReadFields
- Dim LineCount As Integer = 0
- While Fields IsNot Nothing
- LineCount = LineCount + 1
- List.Add(New Attribut(LineCount, "?", Fields(0), Fields(1), Fields(2)))
- Fields = Parser.ReadFields
- End While
- Return List
- Case 8 'Komponente
- Dim List = New List(Of Komponente)
- Dim Fields = Parser.ReadFields
- Dim LineCount As Integer = 0
- While Fields IsNot Nothing
- LineCount = LineCount + 1
- List.Add(New Komponente(LineCount, "?", Fields(0), Fields(1), Fields(2), Fields(3), Fields(4), Fields(5), Fields(6), Fields(7)))
- Fields = Parser.ReadFields
- End While
- Return List
- Case 15 'System
- Dim List = New List(Of System)
- Dim Fields = Parser.ReadFields
- Dim LineCount As Integer = 0
- While Fields IsNot Nothing
- LineCount = LineCount + 1
- List.Add(New System(LineCount, "?", Fields(0), Fields(1), Fields(2), Fields(3), Fields(4), Fields(5), Fields(6), Fields(7), Fields(8), Fields(9), Fields(10), Fields(11), Fields(12), Fields(13), Fields(14)))
- Fields = Parser.ReadFields
- End While
- Return List
- End Select
- End Using
- End Function
Die Listen selbst habe ich als Property angelegt:
Sofern ich das ganze als Module anlege, kann ich problemlos darauf zugreifen, als Klasse: Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis.
Was mache ich hier falsch?
Weiter: Return-Werte. Wie man sieht liefert der Code nicht in allen Pfaden ein Ergebnis zurück. Funktioniert, aber eben unsauber. Da ich die Liste erst im Case definiere, wüsste ich nicht, wie ich das Returnvalue anders übergeben sollte. Ich wollte das wenn möglich gleich als ReturnType angeben: Function LoadCSV(ByVal Pfad As String) as List(of ?)
Vielen Dank!
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „hate_regex“ ()