PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ist es möglich............



Sector1379
05-10-2006, 13:01
........... in C++ aus einer hmtl datei die Online ist daten auszulesen ??????
Oder muss ich diese erst downloaden und dann kann man bestimmte Dinge parsen.

Waxolunist
05-10-2006, 13:08
Naja, du musst sie in c++ in den cache laden und dort zwischenspeichern in einer variablen und dann kannst du sie auslesen.

anda_skoa
05-10-2006, 13:09
Du kannst die Daten natürlich schon während der Übertragung parsen, sofern die von dir gewählte Übertragungsimplementation dir die Daten schon während der Übertragung zugänglich macht.

Ciao,
_

Sector1379
05-10-2006, 13:29
Also erst mal vielen dank für die schnellen Antworten. Aber leider habe ich im Programmieren noch nicht so viel Erfahrung und daher weiß ich nicht ganz wie man solchen Probleme angeht.

Also wenn ihr eine Problem stellung bekommt z.b ihr sollte wie ich das vorhabe aus einer Seite eine Information auslesen und dann dem Nutzer ausgeben.
Wie geht man sowas am besten an?????

Also ich habe schon Google befragt zu html parsern usw. aber ich bekomme nicht richtig zusammen wie, auch wenn man so eine bib hat die das zur verfügung stellt, man das angeht und wie man das dann richtig umsetzt.

Kann mir mal jemand so ein bisschen aus seiner Erfahrung sagen wie man Problemstellungen am besten angeht bzw. gibt es sowas wie eine Suchemaschiene zu bestimmten bibs oder funktionen in C oder C++ ????

Ich weiß das sind normal fragen die man so konkret nicht beantworten kann aber vielleicht gebt ihr mir ein bisschen einen einblick wie man vorgeht bei solchen dingen.

Weil genau da scheitert es bei mir immer

locus vivendi
05-10-2006, 14:16
[Ist es möglich]........... in C++ aus einer hmtl datei die Online ist daten auszulesen ??????
Beschreib das doch mal ganz konkret. Sonst kann man so allgemein nur sagen "ja", was dir wahrscheinlich nicht viel weiterhilft.

Sector1379
05-10-2006, 14:31
Ich möchte einfach von der Yahoo Wetter seite die Aktuellen wetter daten auslesen. Dabei möchte ich mit der Sprache C++ arbeiten um übung darin zu bekommen und ich würde gerne mal mit Schnittstellen von fremden Bibliotheken arbeiten um mal für solchen Sachen ein gefühl zubekommen. da z.b bei mir in der Vorlesung das Thema Modulare Programmirerung immer mehr an Gewicht bekommt. Und bei den Modulen dich ich z.b im Praktikum machen soll mache ich ja alles selber. Bloß ich würde halt gerne mal wissen wie man voran kommt wenn man sich z.b tinyxml oder anderen Bibliothken bedient.

Ich würde auch gerne mal ein Modul für Conky schreiben einfach so spaßes halber um zu sehen wie man sich in andere Projekte eingliedert etc. und wie man sich zurecht findet.

Nur mir fehlt halt auf diesem Weg immer die nötige Routine um zu sehen was wichtig bei solchen dinge ist.

Pingu
05-10-2006, 15:02
Ich würde mal ganz anderes heran gehen: Was denkst Du was ein Browser macht wenn er eine HTML-Seite anzeigt?
Anderes gefragt: Was denkst Du wozu es einen Browser-Cache gibt?

Waxolunist
05-10-2006, 15:16
Ich hab jetzt schon länger nicht mehr C++ programmiert (siehe sig), aber als nicht so erfahrener c++-programmierer würde ich dabei folgendermaßen vorgehen:

Mit wget die betreffende Seite downloaden, z.B. für Wien
http://weather.yahoo.com/forecast/AUXX0025.html

Einfach die main aufrufen.

Den source für wget gibts hier:
http://svn.dotsrc.org/repo/wget/trunk/src/

Diese Seite würde ich in einen Stream einlesen, da gibts sicher eine Abkürzung über wget, und dann mit einer regexp scannen, am besten noch während des einlesens.

Eine gute regex-engine gibts hier:
http://freshmeat.net/redir/cpp_regex/54830/url_tgz/download.php

Du mußt natürlich wenn dein programm einmal die Grundfunktionalitäten erfüllt, vielleicht die Daten auslesen aller Städte.

Besser ginge es natürlich über soap bzw. xmloap. Siehe dazu http://www.weather.com/services/xmloap.html

Das sieht mir allerdings mehr nach RMI also Java aus, allerdings sollte es kein Problem sein, das XML auch via C++ zu bekommen und dann auszuwerten.

Sector1379
05-10-2006, 16:16
@Waxolunist

Hey super vielen dank mal für den Einblick. Würdest du wget als System call nutzen oder gibts da auch ne schnittstelle???

peschmae
05-10-2006, 17:10
Ich würde eher zu irgend einer Bibliothek greifen als das Programme aufzurufen oder so.

Libcurl eignet sich ganz gut: http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

MfG Peschmä

anda_skoa
05-10-2006, 17:21
peschmae hat recht, eine Bibliothek mit höherer Abstraktion ist da viel besser geeignet.

Im Falle einer KDE Applikation würde man zum Beispiel mit KIO::get() arbeiten, im Falle von Qt mit QHttp, im Falle von GNOME vermutlich gnome_vfs_open/read/close, usw.

Ciao,
_

Sector1379
05-10-2006, 19:00
peschmae hat recht, eine Bibliothek mit höherer Abstraktion ist da viel besser geeignet.

Im Falle einer KDE Applikation würde man zum Beispiel mit KIO::get() arbeiten, im Falle von Qt mit QHttp, im Falle von GNOME vermutlich gnome_vfs_open/read/close, usw.

Ciao,
_

OK sehr gut zu wissen, danke für den Tip. Also libcurl habe ich dann mir über Google angesehen und ich denke damit bekomme ich das hin.

Aber anda_skoa sag mal woher nimmst du so schnell diese Infos. GIbts da irgend eine Suchmaschie für um solche funktionen oder libs zu finden. Weil mit Google und include datein zu wälzen dauert ja doch schon seine Zeit zumal man ja manchmal nur eine Funktion sucht. Oder gibt es vielleicht eine Referenz seite auf der ich sowas nachschlagen kann??

anda_skoa
05-10-2006, 19:44
Jahrelange Übung :)

Wenn man noch keine Bibliothek gewählt hat, findet man oft auf freshmeat.net am schnellsten geeignete Kandidaten.

Bei den Frameworks (zB Qt, KDE, GTK, GNOME, usw.) gibt es praktisch immer eine Website für Entwickler, die neben den API Dokumentationen meistens auch Tutorials und ähnliche Zusatzdokumentation auflisten.

Ciao,
_