Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Problem z Visual Basic

06.01.2012 20:29
😒
1
zanonimizowany793553
31
Konsul

Problem z Visual Basic

Otóż w moim projekcie mam funkcję sprawdzającą czy w tekście znajduje się pewne zdanie - <div id="costam">

Problem polega na tym że to zdanie zawiera cudzysłów i gdy stosuję komendę

If TextBox8.Text.Contains("<div id="costam">") Then ....

program interpretuje tą komendę jako sprawdzenie czy zdanie zawiera div it= zamiast <div id="cośtam">

Wie ktoś może jak sobie z tym poradzić ?

06.01.2012 20:32
Arxel
2
odpowiedz
Arxel
231
Kostka Rubika

Spróbuj

If TextBox8.Text.Contains("<div id=""costam"">") Then ....

06.01.2012 20:37
Toshi_
3
odpowiedz
Toshi_
175
Got sarcasm?

To tak czy siak "zamknie" się po drugim cudzysłowie (więc znowu będzie szukało tylko <div id=.
Moja propozycja: Contains("<div id='costam'>") <- tak, apostrofy :P

06.01.2012 20:38
😒
4
odpowiedz
zanonimizowany793553
31
Konsul
Image

Teraz jako słowo interpretuje "<div id=""costam"">"
[3] zaraz wypróbuję

---

niestety...

06.01.2012 20:46
Toshi_
5
odpowiedz
Toshi_
175
Got sarcasm?

Visual Basica nie widziałem nigdy na oczy, ale pewnie też są tam stringi? ;]

string text = "<div id='costam'>";
If TextBox8.Text.Contains(text) Then ‹...›

EDIT: Wróć... Coś nie tak ;D
EDIT: Ok, już prędzej... Jeśli dalej się pluje, to już nie wiem... W ASPie (i z resztą nie tylko) w takich sytuacjach wstawia się apostrofy i wszystko działa.

06.01.2012 20:58
6
odpowiedz
zanonimizowany793553
31
Konsul

Ok, popytam jeszcze na innych specjalistycznych forach, ale jeśli ktoś wpadłby na rozwiązanie to może je napisać tutaj albo podesłać mi na [email protected], ta jedna rzecz rujnuje cały mój program który piszę już od pięciu godzin :(

06.01.2012 21:04
Toshi_
7
odpowiedz
Toshi_
175
Got sarcasm?

A musisz sprawdzać, czy występuje CAŁY ten string? Nie możesz po prostu szukać samego ID tego div'a? Z reguły ID divów są unikalne, więc jeśli pojawi się ten konkretny identyfikator, to RACZEJ cały div też tam jest.

Skąd w ogóle bierze się ten tekst w tym TextBoxie? Pobierany jest z jakiegoś pliku, wpisywany jest z palca przez użytkownika?

06.01.2012 21:11
legrooch
8
odpowiedz
legrooch
239
MPO Squad Member

Arxel, Toshi ==> Błąd. W VB dowolnym znak " wstawia się jako "" :)

VicFirth ==> W podpowiedzi przejedź w dół, aż będziesz miał zestawienie na wyszukiwanie stringa, a nie chara. Nie wiem skąd to wynika, ale po wybraniu takiej konstrukcji wyszukiwanie jako

If TextBox8.Text.Contains("<div id=""costam"">") Then ....

zadziała

06.01.2012 21:11
9
odpowiedz
zanonimizowany793553
31
Konsul

Do jednego textboxa pobierane jest źródło pewnej strony internetowej w którym id np. "cośtam" występuje kilka razy,a string "<div id="costam"> tylko raz, a w dalszej części komendy chodzi o to żeby program pobierał m.in linię znajdującą się pod linią zawierającą ten string do innego textboxa :>

06.01.2012 21:20
10
odpowiedz
zanonimizowany793553
31
Konsul

Legrooch jeśli chodzi ci o podpowiedź która pojawia się przy napotkaniu błędu w działaniu programu to podpowiedź która mi się pojawia nie dotyczy błędu przy wyszukiwaniu stringa ( za dużo zabezpieczeń w przypadku wystąpienia błędu :) ), wolałbym samemu zmienić co trzeba niż żeby zrobił to za mnie projektor.

Chyba wpadłem na prostsze rozwiązanie, zaraz zobaczę czy zadziała.

---

Dobra jakoś sobie z tym poradziłem kombinując z liniami w źródle strony, wielkie dzięki wszystkim za pomoc :)

06.01.2012 21:26
11
odpowiedz
zanonimizowany792388
37
Generał

If TextBox8.Text.Contains("<div id=\"costam\">") Then

A takie cos nie przejdzie ? Zawsze mozesz zrobic wlasna funkcje Contains przelatujaca kazdy char stringa.

@Down: dla C++ takze.

06.01.2012 21:27
legrooch
12
odpowiedz
legrooch
239
MPO Squad Member

VicFirth ==> Chodzi mi o intelisense. Po wpisaniu metody przewiń w dół możliwości, aż będziesz mieć dostępnego stringa zamiast char. Nie mam bladego pojęcia, jak to wpływa na działanie VS, ale podobna sytuacja ma miejsce przy użyciu split na stringu. Jeżeli walniesz split, to w kodzie będzie wyszukiwany dowolny znak zamiast ciągu tekstu.

W skrócie - po wpisaniu nazwy metody (czyli textbox8.text.contains) pojawia Ci się informacja, co metoda zgarnia i co daje. Przeklikaj to do szukania stringa zamiast char i powinno być ok :)

+ oczywiście podwójne cudzysłowy.

Edit:
cruiser ==> To jest dla C#. W VB.NET nie ma sensu dorzucać własnego dziabania.

06.01.2012 21:40
13
odpowiedz
zanonimizowany793553
31
Konsul

Ok, sposób legroocha działa :) Thx !

Problem nr 2

W textboxie1 mam takie zdanie jak na przykład "obrazek.jpgcostamblablabla"
Chciałbym skopiować do textboxa2 zdanie z textboxa1 tak, żeby zawierało wszsytkie znaki DO ".jpg", czyli zdanie bez znaków "costamblablabla"

To nie może być komenda typu usuń 15 ostatnich znaków z prawej strony bo ilość tych znaków po lewej i prawej stronie od .jpg będzie różna ( więc kopiowanie iluśtam pierwszych znaków od lewej też odpada)

06.01.2012 21:43
14
odpowiedz
zanonimizowany792388
37
Generał
06.01.2012 22:01
legrooch
15
odpowiedz
legrooch
239
MPO Squad Member

textbox8.text.split(".")(0)

06.01.2012 22:10
16
odpowiedz
zanonimizowany793553
31
Konsul

TextBox8.Text = TextBox9.Text.Split("jpg")(0)
TextBox8.Text = TextBox9.Text + "jpg"

Teraz działa znakomicie ! Dziękuję legroochu :)

Forum: Problem z Visual Basic