Pobieranie pliku dźwiękowego i tekstu z www, prezentacja wyników.

0

Witam.
Znalazłem bardzo fajną stronę do nauki angielskiego, na której znajduje się plik dźwiękowy w formacie mp3, i tekst:
http://www.englishdaily626.com/train-your-ear_1.html (plik mp3 dostępny od przykładu 30).

Chciałbym napisać program, który przypomni co dzień o przesłuchaniu pliku i przejrzeniu tekstu i zaprezentuje ich zawartość (na początek wystarczy wyświetlenie tekstu, mp3 niech się otwiera w zewnętrzym programie).

Zastanawiam się, w jakim języku programowania najprościej wykonać taki projekt
(moje umiejętności to podstawy c++, np. wiem, jak napisać konstruktor kopiujący, ale nie mam pojęcia, jak połączyć c++ z internetem, czyli i tak sporo nauki przede mną. Bardzo fajnie mi się uczy na takich praktycznych przykładach, i chciałbym się dowiedzieć, za co się najlepiej się zabrać, dlatego proszę o pomoc).

Powoli przestawiam się też na użytkowanie linkusa, więc dobrze byłoby, gdybym mógł projekt w tym systemie uruchomić.
Teraz przyszedł mi na myśl Bash, ale na razie niewiele wiem o tym języku. Da się coś takiego w miarę łatwo wykonać?

Od razu zaznaczam, że nie oczekuję gotowego kodu, tylko przydatnych rad.
Z góry dziękuję za odpowiedzi.

0

Ja też początkujący, nie znam c++, siedzę w innym języku i myślę, że potrafiłbym napisać taki program.

W skróćie:

  1. pobierasz kod źródłowy strony (są różne sposoby na to, zależy, czy masz jakiś c++ builder, czy coś z komponentami do tego, czy nie), można też o socketach poczytać, w google wpisz sockets c++ lub po polsku coś ze słowami kurs, artykuł lub tutorial (lub gniazda), no i są jeszcze strony jak te:
    http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Zaawansowane/Winsock/371
    http://www.cppzone.host.sk/html/artykuly/winsock.html

  2. jak już kod źródłowy strony pobierzesz, to wtedy możesz jakąś funkcją (nie wiem jakie są w c++ funkcje od szukania pozycji danego ciągu znaków) wyszukać fragmety tekstu, które cię interesują. Te funkcje powinny mieć takie opcje jak skopiowanie fragmentu tekstu lub wywalenie no i tak sobie wyciągasz to co chcesz. A na tej stronie widzę, że w jakimś przykładzie ten plik mp3 jest w kodzie źródłowym zapisany normalnie, jest zwykły adres z końcówką mp3 więc wyciągnąć go łatwo.

0

Ustaw sobie na stronę główną przeglądarki:

javascript:!function(l,b,c){location='http://www.englishdaily626.com/train-your-ear.php?'+('00'+(l[c]=~~l[c]+!!(l[b]^(l[b]=new Date/864e5>>0)))).substr(-3)}(localStorage,'lastDate','lastID')

każdego dnia włączy się nowa strona

jeśli chcesz poćwiczyć programowanie i multiplatformowość to chyba lepszym wyborem od c++ będzie java

0

Dziękuję za odpowiedzi.
Winsock, wbrew nazwie, jest też pod linuksem, i tym się zainteresuję. Może znacie jakąś książkę, gdzie jest to dobrze opisane, bo kilka książek z c++ już przerobiłem, i nigdzie o tym nie wspomnieli.
@unikalna_nazwa Ten kod w javascript niestety mi nie działa, nie wyświetla nic.

0

A myślicie, że w bashu można coś takiego wykonać?
Znalazłem tą stronę: http://www.magu.pl/content/view/40/29/ i skoro da się wykonać coś takiego, to mój projekt chyba też, co?

0

nie wiem, które języki mają komponent idHTTP (na pewno delphi ma i C++ Builder tej samej firmy, ale sporo ważą te programy) i wtedy wystarczy przeciągnąć komponent na formę (czyli na okno programu), przeciągnąć komponent do tekstu np. Memo, przeciągnąć button, kliknąć 2x na button i napisać coś w stylu:
Memo1.Text:= idHttp1.Get('www.jakasstrona.pl/costam/cos');

i chyba gotowe. Włączasz program, klikasz w button i kod strony będzie wklejony w pole tekstowe Memo (później wystarczy użyć funkcji Pos, Copy, ewentualnie Delete, PosEx do szukania danych w tym kodzie np. komendą POS szukasz fragmentu <embed src=" i wtedy funkcją Delete wywalasz wszystko od pozycji 1 do tego fragmentu <embed src=" i wtedy masz link od pozycji 1 (czy tam zero) do pozycji poszukanej za pomocą Pos na słówko .mp3. Pewnie w c++ i w innych językach też są takie funkcje, ale raczej mają zupełnie inne nazwy)

Ogólnie to sporo języków ma komponenty różne, w javie np. eclipse i netbeans (i pewnie jeszcze kilka innych programów do pisania w javie), buttony i pola tekstowe mają na 90%, ale komponentu jak idHTTP raczej nie mają. Nie wiem, czy inny komponent mają związany z gniazdkami, musiałbyś w google sprawdzić (a może i da radę dodawać komponenty, to może ludzie stworzyli jakieś?), musiałbyś w google wpisać eclipse sockets component (lub bez słowa component), albo netbeans sockets, albo java sockets, java, java http communication, java http i wiele różnych innyc kombinacji zapytań. Szukaj zarówno na PL stronach jak i zagranicznych.
A co do delphi, to na linuxa jest jakiś Azureus, ale jak planujesz w przyszłości pracować jako programista, to wybierz lepiej javę, c++, czy coś innego z literką "c", czy czymś

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