Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az TextFieldParser objektum segítségével könnyen és hatékonyan elemezheti a strukturált szövegfájlokat, például a naplókat.
A TextFieldType tulajdonság azt határozza meg, hogy az elemzett fájl tagolt fájl-e, vagy rögzített szélességű szövegmezőkkel rendelkezik. Rögzített szélességű szövegfájlban a végén lévő mező változó szélességű lehet. Ha meg szeretné adni, hogy a mező vége változószélességű legyen, definiálja úgy, hogy a szélessége nullánál kisebb vagy egyenlő legyen.
Rögzített szélességű szövegfájl elemzése
Hozzon létre egy újat
TextFieldParser. Az alábbi kód létrehozza aTextFieldParsernévvel ellátottReaderfájlt, és megnyitja a fájlttest.log.Using Reader As New Microsoft.VisualBasic. FileIO.TextFieldParser("C:\TestFolder\test.log")Határozza meg a
TextFieldTypetulajdonságotFixedWidth-ként, meghatározva a szélességet és a formátumot. A következő kód határozza meg a szövegoszlopokat; az első 5 karakter széles, a második 10, a harmadik 11, a negyedik pedig változó szélességű.Reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth Reader.SetFieldWidths(5, 10, 11, -1)A fájl mezőinek bejárása. Ha valamelyik sor sérült, jelentsen hibát, és folytassa az elemzést.
Dim currentRow As String() While Not Reader.EndOfData Try currentRow = Reader.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 TryZárja be a
WhileésUsingblokkokat aEnd WhileésEnd Usingelemekkel.End While End Using
példa
Ez a példa a fájlból test.logolvas be.
Using Reader As New Microsoft.VisualBasic.FileIO.
TextFieldParser("C:\TestFolder\test.log")
Reader.TextFieldType =
Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Reader.SetFieldWidths(5, 10, 11, -1)
Dim currentRow As String()
While Not Reader.EndOfData
Try
currentRow = Reader.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
Robusztus programozás
A következő feltételek kivételt okozhatnak:
Egy sor nem elemezhető a megadott formátum (MalformedLineException) használatával. A kivételüzenet a kivételt okozó sort adja meg, míg a ErrorLine tulajdonság a sor szövegéhez van rendelve.
A megadott fájl nem létezik (FileNotFoundException).
Részleges megbízhatósági helyzet, amelyben a felhasználó nem rendelkezik megfelelő engedélyekkel a fájl eléréséhez. (SecurityException).
Az elérési út túl hosszú (PathTooLongException).
A felhasználó nem rendelkezik megfelelő engedélyekkel a fájl (UnauthorizedAccessException) eléréséhez.
Lásd még
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Útmutató: Olvasás Comma-Delimited szövegfájlokból
- Útmutató: Olvasás több formátumot tartalmazó szövegfájlokból
- Szövegfájlok elemzése a TextFieldParser objektummal
- Útmutató: Fájlok és könyvtárak manipulálása a Visual Basicben
- Hibaelhárítás: Olvasás szövegfájlokból és írás szövegfájlokba