HTML nach Wert Durchsuchen
-
interesantes Beispiel
-
Ascharan schrieb:
interesantes Beispiel
jo, musst es nur erweitern, indem du die html-datei in den speicher holst und eine 0 dranhängst (string-ende). strstr braucht ja zugriff auf alles, mit einzel-bytes-einlesen geht strstr leider nicht, aber dafür ist es sicher schneller als dieses ganze c++ gefrickel von weiter oben.

edit: und nicht die datei zeilenweise einlesen. das geht schief. in HTML hat ein zeilenende keine bedeutung...
-
Jo das versuch ich grad es is auf jeden fall einfacher
-
hmm bababa doch kein C ...
#include <iostream> #include <string> #include <fstream> #include <vector> bool read_html_content(const std::string&, const std::string&, const std::string&, std::vector<std::string>&); int main(int argc, char* argv[]) { unsigned int value = 0; std::cout << "Tag-Open: " << std::flush; std::string string_tag_beg; std::getline(std::cin, string_tag_beg); std::cout << "Tag-Close: " << std::flush; std::string string_tag_end; std::getline(std::cin, string_tag_end); std::vector<std::string> found_content; read_html_content(string_tag_beg, string_tag_end, "test.html", found_content); for (size_t data = 0; data < found_content.size(); ++data) std::cout << found_content[data] << std::endl; std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); return 0; } bool read_html_content(const std::string& string_tag_beg, const std::string& string_tag_end, const std::string& filename, std::vector<std::string>& vec_data) { std::ifstream file_stream(filename.c_str(), std::ios::in); if (file_stream.is_open() == false || file_stream.good() == false) return false; std::string string_line; std::string string_content; while (file_stream.eof() == false) { std::getline(file_stream, string_line); string_content += string_line; } file_stream.close(); std::string::size_type pos_begin = 0; string_content.find(string_tag_beg, 0); std::string::size_type pos_end = 0; while (((pos_begin = string_content.find(string_tag_beg, pos_begin + string_tag_beg.length())) != std::string::npos) && ((pos_end = string_content.find(string_tag_end, pos_begin)) != std::string::npos)) vec_data.push_back(string_content.substr(pos_begin + (string_tag_beg.length()), pos_end - pos_begin - (string_tag_beg.length()))); return true; }... noch Fragen?
Ist nur ein Fehler drin ... das wäre aber ein wenig komplexer den zu beseitigen ... (dürft mal versuchen drauf zu kommen)aja
test.html<html> <head> <title>Test 01</title> </head> <body> <h1>Test 02</h1><h1>Test 03</h1><h1>Test 04 </h1> </body> </html>aja zum finden des Fehlers mal nen verschachteltes <h1> Element angeben und dann mal als such Element das h1 angeben ...
-
(D)Evil schrieb:
...du lieber himmel

schon mal jester's signatur gesehen?
-
(D)Evil schrieb:
hmm bababa doch kein C ...
sorry and very nice

-
ten:
die scheint ja auf dich zu zutreffen ... und wenn du mich in irgendeiner weise beleidigen willst ... dann nicht hier, sondern in einem Chat oder auf der Straße ...
-
(D)Evil schrieb:
ten:
die scheint ja auf dich zu zutreffen ... und wenn du mich in irgendeiner weise beleidigen willst ... dann nicht hier, sondern in einem Chat oder auf der Straße ...ich bin nun mal ein notorischer lästerer.
nimm's nicht persönlich
-
dein code funktioniert Klasse deinen fehler hab ich gemerkt was du meinst
-
Und wie heißt der Fehler?

-
erwischt keine ahnung aber es funktioniert beispiel nich ein bestimmtes wort zu suchen sondern nur tags bsp: <id> und müssen genau angegeben werden sonst funcs net