Indexof() błąd wyszukiwania

Indexof() błąd wyszukiwania
CE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Hej,
mam problem z funkcją, która wczytuje kod strony HTML do String i próbuje znaleźć wartość pozycji dla danego słowa jednak wywala mi -1. Niestety nie wiem dlaczego czy tutaj długość String ma znaczenie ? (5k lini)
Jak wpiszę jakieś słowo, które znajduje się na początku znajduje pozycję, końcowe słowo też, lecz jak coś jest w środku to wywala -1.

Kopiuj
    static System.Int32 abc(System.String adress)
    {
        System.Net.WebClient client = new System.Net.WebClient();
        System.String sourceCode = client.DownloadString(adress);

        return sourceCode.IndexOf("Jakies slowo kluczowe");
    }
Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

The method returns -1 if the character or string is not found in this instance.

Po prostu ci tego tekstu nie znajduje, zapewne dlatego, że go tam nie ma…

CE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Strona: http://www.esl.eu/pl/wot/7on7/zloto_dla_zuchwalych_75/database/members/*/
Słowo kluczowe: Potwierdzeni
Wynik: -1

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

To wklej jeszcze zawartość swojej zmiennej string.

CE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Którą ? Wszystko już wkleiłem co potrzeba. Dla uściślenia wszystko wypiszę.

funkcja abc(); jest wywoływana w ten sposób

Kopiuj
 
System.Console.WriteLine(abc("http://www.esl.eu/pl/wot/7on7/zloto_dla_zuchwalych_75/database/members/*/"));

Natomiast

Kopiuj
System.String sourceCode 

To po prostu source strony.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Tej zmiennej, w której rzekomo masz źródło strony, chociaż prosty test z wyszukiwaniem pokazuje, że wcale tak nie jest.

CE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Dobrze znalazłem błąd... Mianowicie nie uwzględniłem jednego aspektu iż WebClient łączy się ze stroną w języku ENG przez co zmienia język na Angielski. Szukane słowo "Potwierdzeni" występuje pod "Confirmed". Sam sobie znowu odpowiedziałem na pytanie...

Jest jakaś możliwość sztucznego wymuszenia PL ?(Tak dla wiedzy na przyszłość)

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

Owszem, od tego są nagłówki żądania. W Twoim przypadku:

Kopiuj
client.Headers.Add("Accept-Language", "pl,en-us;q=0.7,en;q=0.3");

Ogólnie zaprzyjaźnij się z Firebugiem czy tam innymi narzędziami deweloperskimi dla swojej przeglądarki. :)

CE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 29
0

Myślałem, że coś robię źle w tak prostej funkcji...
Dzięki za Header.

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.