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 ;)