Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het TextFieldParser
object biedt een manier om gestructureerde tekstbestanden, zoals logboeken, eenvoudig en efficiƫnt te parseren. De TextFieldType
eigenschap bepaalt of het een bestand met scheidingstekens is of een met velden met vaste breedte van tekst.
Een door komma's gescheiden tekstbestand parseren
Maak een nieuwe
TextFieldParser
. Met de volgende code wordtTextFieldParser
met de naamMyReader
gemaakt en wordt het bestandtest.txt
geopend.Using MyReader As New Microsoft.VisualBasic. FileIO.TextFieldParser( "C:\TestFolder\test.txt")
Definieer het
TextField
type en het scheidingsteken. De volgende code definieert deTextFieldType
eigenschap alsDelimited
en het scheidingsteken als ','.MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Doorloop de velden in het bestand. Als er lijnen corrupt zijn, meldt u een fout en gaat u door met het verwerken. De volgende code doorloopt het bestand, waarin elk veld op zijn beurt wordt weergegeven en alle velden worden gerapporteerd die onjuist zijn opgemaakt.
Dim currentRow As String() While Not MyReader.EndOfData Try currentRow = MyReader.ReadFields() Dim currentField As String For Each currentField In currentRow MsgBox(currentField) Next Catch ex As Microsoft.VisualBasic. FileIO.MalformedLineException MsgBox("Line " & ex.Message & "is not valid and will be skipped.") End Try
Sluit de
While
enUsing
blokken metEnd While
enEnd Using
.End While End Using
Voorbeeld
In dit voorbeeld wordt uit het bestand test.txt
gelezen.
Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
"C:\TestFolder\test.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.
FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"is not valid and will be skipped.")
End Try
End While
End Using
Robuuste programmering
De volgende voorwaarden kunnen een uitzondering veroorzaken:
Een rij kan niet worden geparseerd met behulp van de opgegeven indeling (MalformedLineException). In het uitzonderingsbericht wordt de regel opgegeven die de uitzondering veroorzaakt, terwijl aan de ErrorLine eigenschap de tekst in de regel wordt toegewezen.
Het opgegeven bestand bestaat niet (FileNotFoundException).
Een gedeeltelijke vertrouwenssituatie waarbij de gebruiker niet over voldoende machtigingen beschikt om toegang te krijgen tot het bestand. (SecurityException)
Het pad is te lang (PathTooLongException).
De gebruiker heeft onvoldoende machtigingen voor toegang tot het bestand (UnauthorizedAccessException).
Zie ook
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Procedure: Lezen uit tekstbestanden met vaste breedte
- Procedure: Lezen uit tekstbestanden met meerdere indelingen
- Tekstbestanden parseren met het TextFieldParser-object
- Overzicht: Bestanden en mappen bewerken in Visual Basic
- Problemen oplossen: lezen van en schrijven naar tekstbestanden