Kann das mal jemand checken?



  • Zum Zweck damit ich meine Quellcodedateien dokumentieren kann
    erstellt diese kleine Application, aus meinen Quelltextdateien
    Dateien im gaengigen Internetformat: was soweit auch
    funktioniert zu 99%

    Hier kommt der Code:

    /*
        Autor: sclearscreen
    
        Ziel: macht aus C/C++ Quelltrexten HTML - Files
    
        ToDo: es gibt bei der entstandenen HTML - File irgendwelche
                Probleme mit dem Zeichensatz!
                Der Internetexplorer zeigt im ein Zeichen an was im
                Layout eigentlich nicht vorhanden ist!
    
        Idee: Ich arbeite mit einer Borland Entwicklungsumgebung C++ 4.52
              Der integrierte Editor haut am Ende vermutlich irgendwelche
                  Zeichen rein die kein UNICODE sind ?
    */
    
    #include <fstream.h>
    
    int main(void)
    {
        char c;
    
        // dies wird spaeter ueber "argc" und "argv" modifiziert
        ifstream  file("test.cpp");
        ofstream  filehtml("test.htm");
    
        filehtml << "<head><title></title></head><body>";
    
        if(!file.fail())
        {
            while(!file.eof())
            {
                file.get(c);
                switch(c)
                {
                    case ' ': // ein erzwungenes Leerzeichen META - Tag Leerzeichen
                    {
                        filehtml << "" "; // Achtung mein Code wird im Forum
                        break;            // nicht richtig dargestellt 
                    }                     
    
                    case '\n':
                    {
                        filehtml << "<br>";
                        break;
                    }
    
                    case '\t': // 5 erzwungenes Leerzeichen  
                    {
    
                        filehtml  << "     "; 
                        break;
                    }
    
                    case '<':
                    {
                        filehtml << "<";
                        break;
                    }
    
                    case '>':
                    {
                        filehtml << ">";
                        break;
                    }
    
                    case '\"':
                    {
                        filehtml << """;
                        break;
                    }
    
                    case '&':
                    {
                        filehtml << "&";
                        break;
                    }
    
                    default: filehtml.put(c);
                }
            }
        }
    
        filehtml << "</body>";
        file.close();
        filehtml.close();
    
        return 0;
    }
    

    Die Datei wird erstellt doch bei mir im Internetexplorer
    wird zum Schluss ein Zeichen mit angezeigt was da nisch hingehört

    irgend son Ypsilon mit zwei Punkten drüber

    😕

    Immer der Ärger mit den Zeichensätzen, vermute ich.
    Was meinen die Fachleute dazu?

    Probierts vieleicht bitte mal bei Euch aus und lasst Euch die HTML - File
    mal mit nen Browser anzeigen. 🙄

    Ich hab da keine Idee ich hab schon Zeichensatztabellen liegen und gucke
    und hab da noch keinen Loesungsansatz!

    Man könnte ja damit leben dem Browser tust ja nichts, aber der eigene
    Perfektionismus 🙂 !

    Dank fuer Kritik und Ratschläge

    mfg sclearscreen

    [ Dieser Beitrag wurde am 12.03.2003 um 20:31 Uhr von sclearscreen editiert. ]

    [ Dieser Beitrag wurde am 12.03.2003 um 20:38 Uhr von sclearscreen editiert. ]

    [ Dieser Beitrag wurde am 12.03.2003 um 20:40 Uhr von sclearscreen editiert. ]



  • Das liegt daran, dass du EOF ein Zeichen zu spät abfängst. Du mußt direkt nach file.get(c) checken, nicht erst beim nächsten Schleifendurchlauf.

    BTW ... mal wieder einer dieser lustigen Foren-Bugs. Ich bin mir ziemlich sicher, in deinem Programm änderst du < nicht in <, sondern in & l t ; 😉 Hoffentlich kommt bald die neue Software ...



  • Oh dank für die schnelle Antwort

    Ich dachte schon mein Problem wäre an diesen blöden META - Tags gescheitert
    Ich hab meinen Quelltext den nur mit PASTE hier eingesetzt und
    haett mir bald die Haare ausgrauft!

    BTW ... mal wieder einer dieser lustigen Foren-Bugs. Ich bin mir ziemlich sicher, in deinem Programm änderst du < nicht in <, sondern in & l t ; Hoffentlich kommt bald die neue Software ...

    In der Tat das könnte nen Bug sein! Natürlich sieht der Code im Orginal so aus
    wie Du es schon vermutest!!! 🙂

    Ich werde dann mal schon vorher in der Schleife auf EOF prüfen und
    dann austeigen ich denke so meintest Du das.

    Danke nochmals @BASHAR!



  • jau so meinte ich das. Bei EOF liefert get oft -1 zurück (eigentlich irgendein char_traits<char>::eof oder so, keine Ahnung, aber das ist halt meistens -1), das ergibt auf unsigned umgemodelt 255, und an der Stelle steht in dem von dir benutzten Zeichensatz wohl das y mit 2 Punkten.



  • jetz tuts wunderbar, als naechstes werde ich in dieses kleine Tool
    noch SYNTAX - Highliting für die Schlüsselwörter einbauen

    Noch ne Frage am Rande, ich hoffe ich bekomme keine Shellte wegen eines
    neue Thread!

    Apropos Bug dieser Fehler mit diesen META - Tags ist aber schon ein
    Grenzfall oder.

    In welche Richtung müsste man da Eigentlich gehen wenn man solchen Code
    darstellen will?
    Im Webzeugs - Fachbreich dieses Forum müsste es da das eine
    oder andere mal blöd sein! Wenn dort Einer ne Frage zu HTML - Skript hat
    muss der bei konkreten Skriptcode ja mit Händen und Füssen erklären!
    Und zugegebener Maßen, um sich im Forum zu artikulieren hatt man bloss
    eingeschränkte Moeglichkeiten!

    mfg 🙄


Anmelden zum Antworten