Stopklatka.pl i Delphi 7 ??!!

0

Czesc! Wszystkim [browar]

potrzebuje zrobic cosik takiego ale przedtem troche literek :d

ok?! pisze program w DELPHI 7 i tak niefortunnie potrzebuje wyciagnac dane o filmie z serwisu "stopklatka.pl".

jak wyciagnac dane o filmie tj. tytul filmu, czas, gatunek, rok itp. ??!!
bardzo prosze o jakies porady lub pomoc.

z gory wielkie dzieki PROGRAMISCI :>

zapraszam na moja stronke: http://www.mail-soft.prv.pl
tam jest sofcik mojej produkcji co pisze w wolnym czasie :d

PS. mozecie pisac na maila: [email protected]

0

sciagasz sobie stronke (przy pomocy np. INDY) i walisz np. do Memo... a Potem szybkie Pos(zmienna, zmienna); i jedziemy... Kwestia przeanalizowania kodu HTML, zeby wiedzieć co gdzie jest

0

walisz np. do Memo

a ten krok po co? :|

0

ok?! walnąłem to do memo i z tym no problem ale jak powyciągać te wszystkie dane ?? :)
z tym mam problem. prosze pomóżcie.

z góry THX!

0

ok?! walnąłem to do memo i z tym no problem ale jak powyciągać te wszystkie dane ?? :)
z tym mam problem. prosze pomóżcie.

z góry THX!

Pos i copy + F1

0

walnąłem to do memo

Ale PO CO? Po co wrzucać dane do wizualnego komponentu tylko po to, aby wyciągnąć z niego kawałek tekstu?? Jeśli uczysz się programować to od początku rób to dobrze!

0

walnąłem to do memo

Ale PO CO?

bo gdzieś trzeba to jeszcze wyświetlić... zapomnialem dodać, żeby jeszcze wywalić znaczniki HTML... Chodziło mi o to, żeby poszukiwane informacje zostały w memo... może źle to ująłem....

0

dokładnie.. wyświetlic to w czyms trzeba a po co za każdym razem łączyć się z stopklatką jak wszystko może być w memo tak czy siak i potem odwolywac sie do memo ;)

o to chodzi tu z tym walnięciem kodu html do memo "marooned"

tyle ze to ja wiem, ale mam problemy z analiza kodu ;-(
czy mozecie wciepac tu kawalek kodu delphi jak cos podobnego zrobic ??!!

PROSZZZEEEE [niewinnosc]

wiem tyle ze filmy z stopklatki wyszukuje sie w ten sposob:
http://www.stopklatka.pl/szukaj/szukaj.asp?szukaj=tytul_filmu&kategoria=film

i wyswietle go na Webbrowser !! (tak by to bylo wszystko wizualnie) ok?!

potem rzecz kolejna.. czyli po kliknieciu na link z wyszukanego filmu powinna sie otworzyc stronka, gdzie sa zawarte info o filmie (opis, gatunek i te sprawy)
do tego sluzy to: http://www.stopklatka.pl/film/film.asp?fi=???
gdzie w miejscu ??? jest ID wyszukanego filmu i to tez wiem jak zrobic.

ALE ludzie niewiem jak powyciagac dane typu (opis,gatunek,rok,czas...)

Co i jak zrobic by te dane byly w np. slynnym memo lub osobnych editach.

0
  1. nie pytaj o takie rzeczy, bo nikt ci bedzie pisal parsera, jeszcze tak skomplikowanego
  2. czy jestes pewien, ze wyciaganie informacji o filmie z jakiejs strony jest legalne?
  3. jesli jest to napisz do nich list z pytaniem, czy nie jest udostepniony jakis publiczny format odczytu takiego info, np RSS.
0

Ale PO CO? Po co wrzucać dane do wizualnego komponentu tylko po to, aby wyciągnąć z niego kawałek tekstu?? Jeśli uczysz się programować to od początku rób to dobrze!

Ja tez z poczatku tak robilem gdy slowa typu strumien, bufor itp mnie przerazaly ;).

0

dokładnie.. wyświetlic to w czyms trzeba a po co za każdym razem łączyć się z stopklatką jak wszystko może być w memo tak czy siak i potem odwolywac sie do memo ;)

o to chodzi tu z tym walnięciem kodu html do memo "marooned"

o ja $^$%* - wiem, że to lekki OT, ale forum jest po to, aby pomagać więc chcę Ci pomóc. Bo widzę, że nie kumasz na maxa podstaw.

Wiesz co to memo? to obiekt klasy TMemo. Jest to komponent wizualny taki jak TEdit tyle że wielolinijkowy. A więc używa się go do przedstawienia użytkownikowi jakiś treści. A gdzie owe treści są przechowywane? Właściwość Text, która jest typu AnsiString. Ewentualnie jak potrzebne jest odwołanie do poszczególnych linii rozdzielonych znakiem entera, to można użyć właściwości Lines typu TStrings.

No ok - a po co to wszytko piszę? Bo Ty chcesz ściągnąć ze strony jakiś tekst, przeanalizować go i wyłowić pewien jego fragment. Dopiero ten fragment chcesz pokazać użytkownikowi. Więc pytam się: po grzyba walisz całą zassaną stronę do komponentu wizualnego?? Przecież chcesz jeszcze nad tym popracować więc wrzuć treść strony do zmiennej typu AnsiString. Będzie dokładnie tak samo jak w Twoim ukochanym memo ale bez pokazywania tego użytkownikowi. Bo po co o ma widzieć treść strony?

Czy teraz już wiesz o co chodzi? Bo jak nie to... ech...

0

niekoniecznie musi widzieć - wystarczy że da Visible:=false; :)
//do postu poniżej
ODRADZAM W TYM WYPADKU używania memo. kolega Detox ort! się na mnie (chyba) jakby chciał mi krzywde zrobić :-8
//

Ale TMemo zabiera więcej pamięci co w tym przypadku jest bezsensowne. to oczywiście nie są wielkie ilości ale jak zaczniesz uczyć się oszczędnie dysponować pamięcią to pisząc większe aplikacje będziesz automatycznie dobierł najergonomiczniejsze rozwiązania i nie będziesz miał tego typu problemy :)

0

<font color="green">niekoniecznie musi widzieć - wystarczy że da Visible:=false; </span>

Jezuu - zapomnijcie o TMemo - to jest tylko końcowy efekt Twojej pracy - wyświetlenie ostatecznego wyniku, a jak widzę, że ktoś używa VCLa tylko po to, aby przeprowadzić konwersję na łańcuchu to mnie aż trzęsie.

Ludomir - spoko, nie zauważyłem buźki w poście :)

0

OK, olejcie juz te memo.

Przegladalem zrodlo tej strony i jest jakas szansa na odczytanie tego wszystkiego, chociaz nie bedzie to ani estetyczne, ani bezbledne to proponuje cos takiego: sciagasz se ta strone z filmem, wycinasz z niego wszystkie tagi HTMLa (powinno byc w faq na tej stronie) nastepnie:

procedure Explode(s: string; Dot: Char; var Buffer: TStringList);
begin
 Buffer.Clear;
 while Pos(Dot, s) <> 0 do begin
  Buffer.Add(Copy(s, 1, Pos(Dot, s) - 1));
  s := Copy(s, Pos(Dot, s) + 1, Length(s) - Pos(Dot, s));
 end;
 if Length(s) > 0 then begin
  Buffer.Add(s);
 end;
end;

function GetParam(s: String): String;
var
  lines: TStringList;
  q: Integer;
begin
  lines := TStringList.Create;
  KodStronyBezHTMLa := StringReplace(KodStronyBezHTMLa, ':', ': ', [rfReplaceAll]);
  lines := Explode(KodStronyBezHTMLa, ' ', lines);
  for q := 0 to lines.Count -1 do
    if (lines[q] = s + ':') and (q < lines.Count -1) then begin
      Result := lines[q+1];
      Break;
end;

potem wywolujesz np

Memo1.Lines.Add('rezyser:' + GetParam('reżyser'));
0

OK, olejcie juz te memo.

Drodzy koledzy i fachowcy :) musze stuknac tu ze nareszcie sie rozumiemy.
dla wytlumaczenia jak nie walkuje z tym TMemo. wiem, ze to koncowe wyniki moge sobie zapisac w MEMO ale go nie uzywam (napisalem tak dla przykladu).
ja robilem tak, ze deklarowalem tablice TCos = array of string;
i wszystko co wyszukiwalem w html'u to wpisywalem do tablicy.
na koniec wyciagam te dane stamtad :-P ale program sie zawiesza (ale nie za kazdym razem). czasem dane wyskoczyly a czasem i nie.

DZIEKI (a ten kodzik i FAQ poczytam sobie jutro bo jestem zmeczony)

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