Tekstbestanden parseren met het Object TextFieldParser (Visual Basic)
Met TextFieldParser
het object kunt u zeer groot bestand parseren en verwerken dat is gestructureerd als kolommen met tekst met scheidingstekens, zoals logboekbestanden of verouderde databasegegevens. Het parseren van een tekstbestand is vergelijkbaar met TextFieldParser
het herhalen van een tekstbestand, terwijl de parseringsmethode voor het extraheren van tekstvelden vergelijkbaar is met tekenreeksmanipulatiemethoden die worden gebruikt om tekenreeksen met scheidingstekens te tokeniseren.
Verschillende typen tekstbestanden parseren
Tekstbestanden kunnen velden van verschillende breedte hebben, gescheiden door een teken, zoals een komma of een tabruimte. Definiëren TextFieldType
en het scheidingsteken, zoals in het volgende voorbeeld, waarbij de SetDelimiters
methode wordt gebruikt om een tekstbestand met tabscheidingstekens te definiëren:
testReader.SetDelimiters(vbTab)
Andere tekstbestanden hebben mogelijk veldbreedten die zijn opgelost. In dergelijke gevallen moet u de TextFieldType
breedte FixedWidth
van elk veld definiëren en definiëren, zoals in het volgende voorbeeld. In dit voorbeeld wordt de SetFieldWidths
methode gebruikt om de kolommen met tekst te definiëren: de eerste kolom is 5 tekens breed, de tweede is 10, de derde is 11 en de vierde is van variabele breedte.
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Zodra de indeling is gedefinieerd, kunt u het bestand doorlopen met behulp van de ReadFields
methode om elke regel op zijn beurt te verwerken.
Als een veld niet overeenkomt met de opgegeven indeling, wordt er een MalformedLineException uitzondering gegenereerd. Wanneer dergelijke uitzonderingen worden gegenereerd, bevatten de ErrorLine
en ErrorLineNumber
eigenschappen de tekst die de uitzondering en het regelnummer van die tekst veroorzaken.
Bestanden parseren met meerdere indelingen
De PeekChars
methode van het TextFieldParser
object kan worden gebruikt om elk veld te controleren voordat het wordt gelezen, zodat u meerdere indelingen voor de velden kunt definiëren en dienovereenkomstig kunt reageren. Zie Instructies voor meer informatie : Lezen uit tekstbestanden met meerdere indelingen.