Parsa textfiler med TextFieldParser-objektet (Visual Basic)
Med TextFieldParser
objektet kan du parsa och bearbeta mycket stora filer som är strukturerade som avgränsade kolumner med text, till exempel loggfiler eller äldre databasinformation. Att parsa en textfil med TextFieldParser
liknar att iterera över en textfil, medan parsningsmetoden för att extrahera textfält liknar strängmanipuleringsmetoder som används för att tokenisera avgränsade strängar.
Parsa olika typer av textfiler
Textfiler kan ha fält med olika bredd, avgränsade med ett tecken, till exempel ett kommatecken eller ett tabbutrymme. Definiera TextFieldType
och avgränsare, som i följande exempel, som använder SetDelimiters
metoden för att definiera en flikavgränsad textfil:
testReader.SetDelimiters(vbTab)
Andra textfiler kan ha fältbredder som är fasta. I sådana fall måste du definiera TextFieldType
som FixedWidth
och definiera bredden för varje fält, som i följande exempel. I det SetFieldWidths
här exemplet används metoden för att definiera textkolumnerna: den första kolumnen är 5 tecken bred, den andra är 10, den tredje är 11 och den fjärde har variabelbredd.
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
När formatet har definierats kan du loopa igenom filen med hjälp av ReadFields
metoden för att bearbeta varje rad i tur och ordning.
Om ett fält inte matchar det angivna formatet genereras ett MalformedLineException undantag. När sådana undantag utlöses ErrorLine
innehåller egenskaperna och ErrorLineNumber
texten som orsakar undantaget och radnumret för texten.
Parsa filer med flera format
Metoden PeekChars
TextFieldParser
för objektet kan användas för att kontrollera varje fält innan du läser det, så att du kan definiera flera format för fälten och reagera därefter. Mer information finns i Läsa från textfiler med flera format.