Teoh Chia Wei Ответов: 1

Vb.net разделение строк по шаблону с группой из нескольких строк


I am working on data collection from a simple text file as shown below:


* GROUP No.1   *
Result: PASS
Remark:
Example No.: 11


* GROUP No.2   *
Result: PASS
Remark:
Example No.: 12


* GROUP No.3   *
Result: PASS
Remark:
Example No.: 13


* GROUP No.4   *
Result: PASS
Remark:
Example No.: 14


* GROUP No.5   *
Result: FAIL
Remark:
Example No.:27

Subject	PaperId	Point	
001260	001	30
001261	002	20
001262	003	10


* GROUP No.6   *
Result: FAIL
Remark:
Example No.:16


I want to read the data group by the * GROUP No.X * into the array. Only if the result is FAIL there will have extra information.

how can I do it in VB.net?


я пытался, когда размещал коды, но реалт сошел с ума

Что я уже пробовал:

Dim arrayCut As String() = NoNLText.Split("* GROUP ")

        For Each p As String In arrayCut
            txtSplittedText.Text = p
            MsgBox("Result")
        Next

1 Ответов

Рейтинг:
0

OriginalGriff

Вместо простого разделения я бы предложил вам посмотреть на регулярное выражение: VB.Net - Регулярные Выражения - Tutorialspoint[^- они могут быть гораздо более гибкими и мощными. Но им трудно научиться.

Вместо того чтобы делать либо то, либо другое, считывайте файл как строки и обрабатывайте каждую строку, отбрасывая пустые строки
Когда строка начинается с "* GROUP No.", это начало группы, и тривиально получить номер группы с помощью подстроки и TryParse.
Следующая строка должна начинаться с "результата":" и снова тривиально получить код результата.
Соберите данные замечания и примера, игнорируйте пустые строки
Если результирующий код является FAIL, то соберите дополнительную информацию, в противном случае игнорируйте ее, пока не получите новую группу.

- Я? Я бы создал класс для хранения информации и создавал новый экземпляр для заполнения каждый раз, когда получал новую группу - добавляя ее в коллекцию, такую как список. Я получаю всю информацию, которую могу, потому что в какой-то более поздний момент задача изменится и потребует некоторой ее части, и ее легче организовать для начала. Дополнительные данные для кода сбоя будут представлять собой его собственную коллекцию в созданном мной классе.