CSV
Een CSV-bestand is net zoals een INI-bestand een tekstbestand. Veel dumps vanuit primaire registratiesystemen zoals bijvoorbeeld SAP worden gegenereerd in dit format. Kenmerkend voor dit format is dat de waarden worden gescheiden door een scheidingsteken, veelal is dit de “;”.
CSV staat Comma Separated Value maar wordt soms ook aangeduid als Character Separated Value.
Voor deze bron hoeft geen extra verwijzing gemaakt te worden. Daarnaast is het ook niet noodzakelijk om een extra module op te nemen.
De gebruikte functies in deze klassenmodule zitten in de standaard bibliotheek "Visual Basic for Applications".
Voorts kent het CSV-format ook geen specifieke hiërarchie, de waarden worden van links naar rechts weggeschreven gescheiden door het scheidingsteken.
'----------------------------------------------------------------------------------------------------------------------- ' Auteur : pascalterheege.nl ' Datum : 10-4-2017 ' Object : clsTekstCSV ' Doel : waarden laden, wijzigen en verwijderen uit TekstBestandCSV ' Opmerking : waarden worden gescheiden door ";" '----------------------------------------------------------------------------------------------------------------------- Option Explicit Public Sub Laden(lsb As ListBox) ' Waarden per regel uitlezen m.b.v. split Dim i As Integer Dim strRegel As String Dim strItem() As String Dim strNummer As String Dim strVoornaam As String Dim strAchternaam As String Open TekstBestandCSV For Input As #1 Do Until EOF(1) Line Input #1, strRegel strItem = Split(strRegel, ";") strNummer = strItem(0) strVoornaam = strItem(1) strAchternaam = strItem(2) If IsNumeric(strNummer) Then With lsb .AddItem .List(i, 0) = strNummer .List(i, 1) = strVoornaam .List(i, 2) = strAchternaam End With i = i + 1 End If Loop Close #1 End Sub Public Sub Toevoegen(strNummer As String, strVoornaam As String, strAchternaam As String) ' Toevoegen aan einde van bestand m.b.v. append Open TekstBestandCSV For Append As #2 Print #2, strNummer & ";" & strVoornaam & ";" & strAchternaam Close #2 End Sub Public Sub Wijzig(strNummer As String, strVoornaam As String, strAchternaam As String, blnVerwijder As Boolean) ' Itereren door origineel bestand en tegelijkertijd regels kopieren naar tijdelijk bestand ' Indien nummer voorkomt regel niet kopieren maar nieuwe regel wegschrijven met de gewijzigde waarden ' Origineel bestand verwijderen en tijdelijk bestand opslaan als originieel bestand Dim strRegel As String Dim strItem() As String Open TekstBestandCSV For Input As #3 Open TekstBestandCSVtijdelijk For Output As #4 Do Until EOF(3) Line Input #3, strRegel strItem = Split(strRegel, ";") If strItem(0) = strNummer Then If blnVerwijder = False Then strNummer = strItem(0) Print #4, strNummer & ";" & strVoornaam & ";" & strAchternaam End If Else Print #4, strRegel End If Loop Close #4 Close #3 Kill TekstBestandCSV Name TekstBestandCSVtijdelijk As TekstBestandCSV End Sub Public Sub Verwijder(strNummer As String, blnAlles As Boolean) ' Verwijderen door regel in zijn geheel niet mee te kopiëren via procedure Wijzig If blnAlles = True Then Open TekstBestandCSV For Output As #5 Print #5, "Naam;Voornaam;Achternaam" Close #5 Else Wijzig strNummer, "", "", True End If End Sub