Dela via


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 PeekCharsTextFieldParser 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.

Se även