Odczyt danych z webbrowser

0

Otóż mam problem żeby odczytać niektóre dane z tego kodu, np jakie mam skile czyli doświadczenie itp, kombinowałem za pomocą:

WebBrowser. OleObject. Document. All.Item(n).InnerText
Zamiast 'n' wpisywałem odpowiednik położenia czy coś takiego, ale co któreś logowanie to wszystko się zmieniało i nie mogłem tego ogranąć.
Prosiłbym o szybką odpowiedz.

						<div class="charstats_bg" id="char_f3_tt"
				<span class="charstats_text">Budowa fizyczna</span>
				<div class="charstats_balken">
					<div class="charstats_balken_misc" id="charbalken_f3" style="width:69%;"></div>
				</div>
				<span id="char_f3" class="charstats_value">47</span>
			</div>

						<div class="charstats_bg" id="char_f4_tt" 
				<span class="charstats_text">Charyzma</span>
				<div class="charstats_balken">
					<div class="charstats_balken_misc" id="charbalken_f4" style="width:50%;"></div>
				</div>
				<span id="char_f4" class="charstats_value">30</span>
			</div>
						<div class="charstats_bg" id="char_f5_tt"

				<span class="charstats_text">Inteligencja</span>
				<div class="charstats_balken">
					<div class="charstats_balken_misc" id="charbalken_f5" style="width:35%;"></div>
				</div>
				<span id="char_f5" class="charstats_value">15</span>
			</div>
0

Do wydobycia pewnych wartości z dłuższego i złożonego tekstu, na przykład kodu html - przydadzą się wyrażenia regularne.
Moduł do obsługi ów wyrażeń wraz z dokumentacją i przykładami wrzuciłem na: http://www.mediafire.com/?czhw3mmzjyn

0

Coś załapać tego nie mogę, kombinuje , kombinuje i nic.
Jakbyś mógł podać na przykładzie tego co jest wyżej to bym rozczaił.

0

Dostałeś informacje i ja muszę za Ciebie ślęczeć i wymyśleć wyrażenie regularne. Ludzie ogarnijcie
się wreszcie kurde [!!!] :P Trochę samodzielności. Eh, wszystko za Was pisać. No aż ręce opadają ;/

//...
uses
  regexpr;

function DlaLeniwegoOrazNieSamodzielnegoMatigi12(const AInputString : string) : string;
const
  HtmlRE = '<div class="charstats_bg"(.+?)"charstats_text">(.+?)</span>(.+?)<span id=(.+?)"charstats_value">(.+?)</span>';
var
  R : TRegExpr;
begin
  Result := '';
  R := TRegExpr.Create;
  try
    R.Expression := HtmlRE;
    if R.Exec(AInputString) then
    begin
      repeat
        Result := Result + R.Match[2] + ': ' + R.Match[5] + #13#10;
      until not R.ExecNext;
    end;
  finally
    R.Free;
  end;
end;

Dla wycinku jaki podałeś - działa ok. I uprzedzając pytania - w AInputString ma być ten kod html.

0

Kurde... zrobiłem tak, wkleiłem ten kod html do memo następnie wywołuje tą funkcje czyli
label38 := skill(memo1.text)
i kicha.

0

No to zobacz sobie ten program. Działa ok. A poza tym co to jest label38? String czy TLabel,
ktory wyświetli maksymalnie jedną linijkę? Widzisz chyba to #13#10 w kodzie? To wiadomo,
że będzie więcej niż jedna linijka. Dostajesz gotowca i nadal problemy, naprawdę wysiadam.
http://www.speedyshare.com/files/22404296/reg_expr09.rar

0

Wielkie dzięki, już wiem co źle robiłem, złe memo wybierałem :P
Rzeczywyście jestem młotem...

Ale mam jeszcze jeden problem, bo usunąłem tutaj procedure onMouseOver i jak wklejam cały kod to sie kopie.

Już zrobiłem, bo webbrowser pobiera delikatnie inny kod i dlatego nie działało ;] a już zrobiłem.

0

Pewnie miałeś Memo bez SCrollBarów i dlatego tekst się zwaijał, a RegExpr go wtedy nie dopasowywał do wzorca wyrażenia.
Poza tym po co wklejasz kod do Memo. Jak użytkownik ma nie widzieć tego kodu tylko efekt koncowy, to używaj TStringList
i z niego pobieraj tekst. A tak btw, to coś ściemniasz w swojej sygnaturce, bo coś nie za bardzo się "sam kszrałcisz" imo :P

0

Teraz to już zrobiłem taką obróbkę tego tekstu że w jednej funkcji mi porównuje moje staty z kogoś innego i jeśli moje są większe to świecą na zielono a jak moje są mniejsze to na czerwono. :]
A co do samokształcenia to to jest tak, że jak czegoś nie umiem to kombinuje np pisze webbrowser1. i sie wyświetla cała lista funkcji i później znajomość angielskiego sie kłania ;]

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