C# Odszukiwanie i zapisywanie danej

C# Odszukiwanie i zapisywanie danej
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam. Potrafię odszukać wyraz w jakimś stringu.
Chciałbym dowiedzieć się, jaki numer znaku ma pierwsza litera odnalezionego stringu.

Na przykład:

[QUOTE]
Ala ma kota.
Jaś i Małgosia
Kot w butach
Mała syrenka.
[/QUOTE]

Powiedzmy, że chcę znaleźć słowa [B]Kot w butach[/B]. Chcę dowiedzieć się, ile znaków jest przed nim (tutaj akurat 26, czyli znakiem 27 rozpoczyna się słowo [B]Kot[/B].

Właśnie chciałbym sie dowidziedzieć, ile znaków jest przed szukanym wyrazem.

I mam jeszcze takie jedno pytanie. Czy jak znajdę już jakiś wyraz, to mogę się dowiedzieć, w której on jest linijce?
Naprzykład
[QUOTE]
Ala ma kota.
Jaś i Małgosia
Kot w butach
Mała syrenka.
[/QUOTE]

Znalazłem wyraz Mała, i chcę, żeby mi wyświetliło, że znajduje się w 4 linijce i zapisało mi całą tą czwartą linię.

Pozdrawiam
Wowol

nerf
  • Rejestracja: dni
  • Ostatnio: dni
0

Co do 1 to nadaje się przeszukiwanie w tablicy bynajmniej mi wyszło ;p Może są jakieś metody do tego już gotowe.
Co do 2 to też może tablica i szukać znaków nowej lini przed szukanym tekstem?

  • Rejestracja: dni
  • Ostatnio: dni
0

Ponieważ jestem jeszcze trochę ciemny w programowaniu, można by było dać trochę kodu?

Z góry dzięki.

M4
  • Rejestracja: dni
  • Ostatnio: dni
0

Pozycja stringu w stringu: http://msdn.microsoft.com/en-us/library/k8b1470s.aspx

A do 2 musisz sam napisać sobie funkcję, która zlicza ilość "\n" przed indeksem zwróconym przez funkcję powyżej.

  • Rejestracja: dni
  • Ostatnio: dni
0

Może to trochę dziwne, ale niezbyt rozumiem twoją odpowiedź (tą stronę).
Nie kumam, co to jest napisane tam ;(.

Czy mógłby mi ktoś pomóc?

xeo545x39
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kosmos
  • Postów: 1574
0

Jeżeli chcesz prostą metodą to: wczytujesz linie aż do szukanego wyrazu i inkrementujesz licznik przy następnej linii, potem jeżeli znajdziesz wyraz to masz numer linii czyli licznik.

  • Rejestracja: dni
  • Ostatnio: dni
0

Jeżeli można, to mógłbym dostać jakiś kod? Chociażby funcję, którą to się robi

xeo545x39
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kosmos
  • Postów: 1574
0

Jaja sobie robisz? Umiesz wyszukać string, ale nie umiesz zrobić tego co ci wytłumaczyliśmy?

  • Rejestracja: dni
  • Ostatnio: dni
0

No... tak.
Nie wiem. Po prostu potrzebuje jednej linijki kodu, funkcję, która za to odpowiada.

xeo545x39
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kosmos
  • Postów: 1574
0

Dam ci do drugiego pytania:

Kopiuj
while (fstream.Position != fstream.Length)
{
    // czytasz sobie tam czym chcesz np. StreamReader
    numLine++;
    if (line == szukanyWyraz)
        Console.WriteLine(numLine);
}

Co do drugiego podpowiem, że ma to związek z FileStream.Length
http://msdn.microsoft.com/en-us/library/system.io.filestream.aspx
Może pomoże..

  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za odpowiedź, ale kompilator nie wie co to jest to numLine.
I co jeszcze zrobić z tym fstream? Też wyświetla jako błąd.

(ps. mam okienkowego)

xeo545x39
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kosmos
  • Postów: 1574
0

Zaraz tu jebne... Chyba musisz je zadeklarować, już nie będę ci pisał takich pierdół dopisz se przed while int numLine i FileStream fstream. BTW Wiesz jak czytać z pliku? W sumie chyba wiesz, bo napisałeś, że sobie wczytujesz..

  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki. Prawie się udało.

(prawdopodobnie) Ostatnie pytanie:
Jak powiedzieć mu, że ma odczytac na przykład 5 linię?

StreamReader reader = new StreamReader("c:\Sialala.txt");
reader.ReadLine ** I co tu teraz?**

allocer
  • Rejestracja: dni
  • Ostatnio: dni
0
Wowol napisał(a)

Dzięki. Prawie się udało.

(prawdopodobnie) Ostatnie pytanie:
Jak powiedzieć mu, że ma odczytac na przykład 5 linię?

StreamReader reader = new StreamReader("c:\Sialala.txt");
reader.ReadLine ** I co tu teraz?**

Ale widzę Ty masz problem z czytaniem ze zrozumieniem także. Xeo podał Ci kod, w którym masz dosłownie WSZYSTKO, o co pytasz. Jesteś na tyle bezczelny, że nawet nie chce Ci się pomyśleć? To forum to nie przedszkole, gdzie jeden drugiego będzie prowadził za rączkę.
Wytłumaczę Ci to tak, jak wytłumaczyłbym mojemu 8letniemu kuzynowi: "Popatrz, bierzesz linie z pliku i ją numerujesz zmienną numLine. Kiedy zmienna numLine będzie wynosić pięć to wtedy ją wypiszesz. Prawda, że proste?"
A i 6, 7, 8, fefnastą linię to w podobny sposób, tylko w warunku numerek musisz zmienić.

xeo545x39
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kosmos
  • Postów: 1574
0

Jak napisze tu jeszcze jedno pytanie o to samo, to chyba zacznę się uczyć BrainFuck'a..

nerf
  • Rejestracja: dni
  • Ostatnio: dni
0

Dobry koleś ;d

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.