Wycinanie określnych słów z pliku txt

0

Witam
Moim zdaniem jest stworzenie programu, który będzie wczytywał plik tekstowy i jeśli napotka tekst pomiędzy słowami <usun>jakis tekst</usun> ma usunąć tekst z pliku i wyrzucić ten usunięty tekst to jakiego textVBoxa. Próbuje zmierzyć się z tym programem już parę dni i nic mi nie wychodzi. Próbowałem nawet używać wyrażeń regularny ale nie wychodzi mi to. Czy ktoś mógłby mi podpowiedzieć jak rozwiązać ten problem?

0
                        String inputString = ""; //wczytujesz zawartosc txt do stringa
			String startPatern = ""; //np. <usun>
			String stopPatern = "";  //np. </usun>
			
			String reszta = "";
			int posStart = 0;
			int posStop = 0;
			
			System.Text.RegularExpressions.Regex r1 = new System.Text.RegularExpressions.Regex(startPatern);
			System.Text.RegularExpressions.Regex r2 = new System.Text.RegularExpressions.Regex(stopPatern);
			foreach(System.Text.RegularExpressions.Match m1 in r1.Matches(inputString)){
				System.Text.RegularExpressions.Match m2 = r2.Match(inputString, m1.Index);
				String outputString = inputString.Substring(m1.Index+startPatern.Length, m2.Index-m1.Index);
				// nie jestem pewien, czy nie będziesz musiał dodać albo odjąć gdzieś jedną literę w linijce wyżej
				// najlepiej dodaj też jakiesz zabezpieczenia, bo jak nie znajdzie znacznika zamykającego to najpewniej się wywali
				// w outputString masz swoj fragment
				
				posStop = m1.Index;
				reszta += inputString.Substring(posStart, posStop-posStart); //tak jak wyżej może być potrzeba dodania albo odjęcia 1 znaku
				posStart = m2.Index+ stopPatern.Length;
				
				// program nie poradzi sobie z zagnieżdżonymi oraz przeplatającymi się znacznikami, ale to już sobie sam dopracuj.
				// zalecam też jakąś optymalizację, bo ten program napisałem na szybko i nawet nie zdążyłem przetestować.
                                //Najlepiej zacznij od stringbuildera a potem sam zobacz co jeszcze
			}
                       //na koniec zapisujesz zawartość zmiennej reszta do pliku.
0

No i tradycyjnie. Męczyłem się parę dni z tym problemem. Kombinowałem jak najęty:P. Napisałem posta na forum i niedługo po tym znalazłem rozwiązanie, które okazało się tak banale, że aż wstyd:). Oto one:
String txt = "Jan kowalski<usun>jest dupkiem</usun> duzo potrafi"
int indeksStart = txt.IndexOf("<usun>");
int indeksEnd = txt.IndexOf("</usun>");
int i = indeksEnd - indeksStart;
string podlancuch1 = txt.Substring(0,indeksStart+6);
string podlancuch2 = txt.Substring(indeksEnd);
string zdanie = podlancuch1 + "*" + podlancuch2;

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