Parsen



  • vom prinzip müsste das doch irgentwie so gehen:

    std::string   HTML_File::to_string(){ 
        std::string out = 
          "<!DOCTYPE html>\n<html><body>" 
          + data 
          + "</body></html>\n"; 
        return out;
    

    so müsste ich doch auch ein div in die html als string rein schreiben können oder?



  • seppj ich hab das buch nicht mehr angefast seit dem ihr das sagtet


  • Mod

    Enno schrieb:

    so müsste ich doch auch ein div in die html als string rein schreiben können oder?

    Ja.



  • problem is nur wenn ich das hier schreibe

    <div align="center">
    

    dann kommt c++ da ein wenig durcheinander kann man das irgentwie lösen?



  • Enno schrieb:

    problem is nur wenn ich das hier schreibe

    <div align="center">
    

    dann kommt c++ da ein wenig durcheinander kann man das irgentwie lösen?

    Ja du kannst das Anführungszeichen "escapen"

    "<div align=\"center\">"
    

    Greets
    Tobi



  • Schöner geht es mit Raw-String literals (C++11):

    R"( <div align="center"> ..... )"
    

    Evt. mit Delimitter, falls da noch (schließende) Klammern hinzukommen.

    Edit: Das einzig doofe dabei ist das völlig verwirrte Syntax-Hilighting 😃



  • Meinst du, dass du "-Zeichen nicht in ein String-Literal reibringst. Bzw. ist das

    std::string foo = "<div align="center">";
    

    dein "durcheinander geratenes C++"?

    Falls ja: Lies mal Escape-Sequenzen.

    Dein String sollte also so aussehen:

    std::string foo = "<div align=\"center\">";
    


  • [url=http://de.wikipedia.org/wiki/Escape-Sequenz]Escape-Sequenzen[/cpp]

    😃



  • habs nun so gemacht und das klappt:

    "<!DOCTYPE html>\n<html><body><div align=""center""><h1>Ergebnis: 1745324 = (total)3947984 - (free)2202660</h1></div>"                                 + data 
          + "</body></html>\n";
    

    bleibt für mich die frage kann ich das div auch an die original stelle setzen ?
    ich hoffe ihr versteht was ich meine :((( ich bin ja son kleines dummerchen



  • align=""center""
    

    Das klappt?! Das ist im Endeffekt nichts anderes als

    align=center
    

    (Edit: CPP-Tags addiert)

    da kannste die Anführungszeichen gleich weglassen...

    Ist doch tausend mal schöner mit meiner Lösung!

    R"(
    <!DOCTYPE html>
    <html>
            <body>
                    <div align="center">
                            <h1>Ergebnis: 1745324 = (total)3947984 - (free)2202660</h1>
                    </div>)"
                    + data +
                    R"(
            </body>
    </html>
    )";
    

    (Edit) Da kannste gleich die HTML-File direkt reinkopieren, aus deinem Editor oder was auch immer!



  • Sone schrieb:

    [cpp]R"(
    <!DOCTYPE html>
    <html>
    <body>
    <div align="center">
    <h1>Ergebnis: 1745324 = (total)3947984 - (free)2202660</h1>
    </div>)"
    + data +
    R"(
    </body>
    </html>
    )";[/cpp]

    (Edit) Da kannste gleich die HTML-File direkt reinkopieren, aus deinem Editor oder was auch immer!

    da hast du recht ist wirklich schöner!!! 🙂

    nur warum 2 mal R"(??

    und ich muss das ja im prinzip in meinem data mitten drin einbauen das geht wohl nicht oder?



  • Ennounreg schrieb:

    nur warum 2 mal R"(??

    Ich verknüpfe doch zwei Strings....

    Sone schrieb:

    R"(
    <!DOCTYPE html>
    <html>
            <body>
                    <div align="center">
                            <h1>Ergebnis: 1745324 = (total)3947984 - (free)2202660</h1>
                    </div>)" //Ende des ersten Strings, ist etwas kryptisch :D
                    + data + //"Einfügen" des data-strings (IST DOCH EIN STRING, ODER?)
                    R"(//Anfang des zweiten Strings
            </body>
    </html>
    )";
    

    Edit: Falls data kein String ist, einfach in einen std::string umwandeln.



  • selbstverständlich ist data ein string 🙂

    frage ist nun ob ich den string aufteilen kann und div string dazwischen packen kann?



  • also dir R"( schreibweise klappt bwei mir nicht dafür dann aber "" ""



  • Ennounreg schrieb:

    also dir R"( schreibweise klappt bwei mir nicht dafür dann aber "" ""

    Dann update deinen Compiler. Wird doch irgendwann Zeit...



  • ach das past schon 😃


Anmelden zum Antworten