Startseite

VB.Net

* Class CSVData
* SGSSG



Impressum

VBnet - Class CSV Data


Zum lesen und schreiben von CSV Dateien, in meiner Diplomarbeit hatte ich zwar auch so eine Klasse erstellt, allerdings ist diese Klasse besser, da 2 Funktionen alles machen können, Lesen, schreiben und anhängen.
Geplant ist eine Version 1.03 in der Pfad und Dateiname übergeben wird, dadurch kann beim Schreiben dann auf den Ordner geprüft werden, und wenn nicht vorhanden wird dieser angelegt.

Class CSVData
    ' www.lamda-t.de
    ' 120527 Verbesserungswürdig, aber erfüllt seinen Zweck 
    ' Version 1.02
	' http://lamda-t.de/index.php?site=Projekte&Projekt=VBnet&SubProjekt=CSVData
    Private Dateiname

    Sub SetParameter(ByVal Name)
        Dateiname = Name
    End Sub

    Function CSVDataRead()
        Dim Datei, FS, readalldaten, splitvbcrlf, splitseli, colums, rows
        Dim i, j, maxi, maxj As Integer
        Dim Daten(,) ' As Array
        maxi = 0
        maxj = 0
        '  ReDim Daten(maxi, maxj)

        readalldaten = ""
        Datei = CreateObject("Scripting.FilesystemObject")
        If Datei.FileExists(Dateiname) Then
            FS = Datei.OpenTextFile(Dateiname, 1)

            readalldaten = FS.ReadAll

            FS.Close()
            FS = Nothing
        End If

        splitvbcrlf = Split(readalldaten, vbCrLf)
        i = 0
        For Each colums In splitvbcrlf
            splitseli = Split(colums, ";")
            If (maxi < UBound(splitvbcrlf, 1)) Then
                maxi = UBound(splitvbcrlf, 1)
            End If
            If (maxj < UBound(splitseli, 1)) Then
                maxj = UBound(splitseli, 1)
            End If

            ReDim Preserve Daten(maxi, maxj)
            j = 0
            For Each rows In splitseli
                Daten(i, j) = rows
                j = j + 1
            Next
            i = i + 1
        Next
        
        Datei = Nothing
        CSVDataRead = Daten
    End Function

    Sub CSVDataWrite(ByVal Daten, ByVal SORA)

        Dim text, i, j, FS, Datei

        If ((SORA <> 2) And (SORA <> 8)) Then
            SORA = 8
        End If

        Datei = CreateObject("Scripting.FilesystemObject")
        FS = Datei.OpenTextFile(Dateiname, SORA, 1)

        For i = 0 To UBound(Daten, 1) Step 1
            text = Daten(i, 0)
            For j = 1 To UBound(Daten, 2) Step 1
                text = text & ";" & Daten(i, j)
            Next
            FS.WriteLine(text)
        Next

        FS.Close()
        FS = Nothing

        Datei = Nothing
    End Sub
End Class


Der Quellcode ist relativ einfach, viel Spass bei der Verwendung ;)