przeszukiwanie tekstu

0

Witam,

mam problem następujący i bardzo proszę o pomoc. Potrzebuję przeszukać tekst i część danych z tekstu pobrać do tablicy i nie mogę sobie poradzić. Mój tekst wygląda następująco:
a opis1
b opis2
c opis3
a opis4
b opis5
c opis6

Do przeszukiwania tekstu używam indexOf ale nie wiem jak wyodrębnić tekst który znajduje się po szukanej frazie. Przykładowo dla każdego "a" opis tego musi znaleźć się w mojej tablicy (czyli: opis1, opis4)....
Z góry dziękuję za jakąś podpowiedź.

0

W takim razie, dlaczego a ma 2 różne opisy? Jeżeli tak wygląda struktura to szukasz tego a, a potem szukasz znaku nowej linii od tego a, masz teraz 2 pozycje zapamiętane i wywołujesz Substring(...) z parametrami właśnie tych pozycji i dostajesz opis, potem ew. możesz dać Trim(), żeby usunąć śmieci.

0

Można też najpierw podzielić tekst i wrzucić do tablicy dwuwymiarowej (n x 2) przy użyciu metody Split (najpierw na linie, później na pary litera - opis), a następnie pogrupować wg liter.

0

Jeżeli każdy opis jest w nowej linii to użyj metody GetLine() w pętli. Potem sprawdź czy uzyskana linia zaczyna się od 'a' metodą StartsWith i jeżeli tak użyj Split() do rozdzielenia poszczególnych wyrazów. Trim() może jeszcze Ci się też przydać. To wszystko.

0

Albo możesz też użyć wyrażeń regularnych, które załatwią sprawę za Ciebie. Np tak:

 
            string text = "a opis1 \r\n" +
                          "b opis2 \r\n" +
                          "c opis3 \r\n" +
                          "a opis4 \r\n" +
                          "b opis5 \r\n" +
                          "c opis6 \r\n";

            string pattern = "a .*";

            MatchCollection matches = Regex.Matches(text, pattern);
            string[] opisy = new string[matches.Count];
            int i = 0;
            foreach (Match m in matches)
                opisy[i++] = m.Value.Substring(2, m.Value.Length - 2);

            // sprawdzenie
            foreach (string o in opisy)
                MessageBox.Show(o);

1 użytkowników online, w tym zalogowanych: 0, gości: 1