CodeTags dosen't work



  • Hi,

    das mit den Code Tags funktioniert überhaupt nicht, insbesondere bei wechselnden Abschnitten über eine Bildseite. Die alten xml Tags html like machten keinerlei Probleme für C.

    Insbesondere wenn viel mit //Kommentiert wird..


  • Global Moderator |  Mod

    Nein, du benutzt sie falsch. Hier dein Beitrag aus CImage::Load läd jpg-Datei anders als BMP-Datei in vernünftig formatiert:

     // Read file in memory
       fp = fopen(fileName,"rb");
       if(!fp) 
    	return;
      
       BYTE *pMem  = new BYTE[fs];
       if(!pMem)
        return ;
    
       fread(pMem,1,fs,fp);
       fclose(fp);
    
       if(!StreamToPic(pMem,fs))
       {
        delete pMem;
        return ;
       }
    
       delete pMem;
       
       
    
    bool CDib::StreamToPic(BYTE *pMem, int Size, bool Flip/*=false*/)
    {
       // Use IPicture stuff to use JPG / GIF files
       IPicture* pPicture = 0;
       IStream* pStream   = 0;
       LPBYTE   hG        = 0;
       HRESULT  hRes      = S_FALSE;
      
       DWORD fs = Size;
       hG = (LPBYTE) HeapAlloc( GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS, fs);
       if(!hG)
        return hRes;
     
       memcpy(hG,pMem,fs);
       
       HRESULT hRes = ::CreateStreamOnHGlobal(hG,false,&pStream);// Create an IStream so IPicture can 
       if(hRes != S_OK)
       {
        HeapFree(GetProcessHeap(), 0, hG);
        return hRes;
       }
    
       hRes = ::OleLoadPicture(pStream,fs,TRUE,IID_IPicture,(void**)&pPicture);
      
       if(hRes != S_OK)
       {
          pStream->Release();
          HeapFree(GetProcessHeap(), 0, hG);
          return hRes;
       }
    
       short type;pPicture->get_Type(&type);
       if(type == PICTYPE_BITMAP)
       {
    		HBITMAP hBmp = 0;
    		hRes = pPicture->get_Handle( (OLE_HANDLE* )&hBmp);//Retrive GDI Object 
    
    		if (hRes == S_OK)
    		{
    			CDib::Draw(hBmp, Flip);
    		}
        
    		if(hBmp)::DeleteObject(hBmp);
       }
    	
       if(pStream)
        pStream->Release();
    
       if(hG)
    	  HeapFree(GetProcessHeap(), 0, hG);
    
       if(pPicture)
        pPicture->Release();
    
       return (hRes == S_OK);
    }
    

    Zitier mich, um zu sehen, wie ich das gemacht habe. Beziehungsweise, was ich nicht gemacht habe. Ich habe es nämlich unterlassen, die Codebox sofort wieder zu schließen.



  • Ach hallo Sepp.

    ja wie kann man die denn falsch benutzen, man schreibt den Code rein. in das viel zu kleine schmale editor Fenster. Und dann geht man mit dem Cursor auf den Codeanfang und öffnet den tag, über das toolbaricon, dito unten. Save..

    Danke für Hinweise



  • Ach nun habe ich es begriffen, erst den Tag dann den Code.. Danke für deine Hilfe.
    Lg
    Karsten



  • Oder erst Code schreiben, dann den Code markieren (selektieren) und den Code-Button drücken (so mache ich es [jetzt] meistens).



  • @th69
    Danke genau die Bedienung von Computern wird einfach nicht einfacher 🙂

    Lg
    Karsten



  • Da ich in mehreren Foren unterwegs bin, muß ich mich auch jedesmal wieder umstellen (aber das hält geistig fit ;-).
    Für die meisten Tags habe ich mir jedoch ein AutoHotkey-Script geschrieben und auf die Funktionstasten gelegt.



  • @th69 Hey ja eine Automaus muss man irgendwann selber herleiten ^^
    Da habe ich gerade jetzt was zu gepostet:
    AutoMouseKeyScreenMemory

    Sehr gut wenn Du da so aktiv bist !
    Beste Grüße
    Karsten


  • Administrator

    @kahnsoft Oben links beim Editor auf den Doppelpfeil klicken, damit beim Schreiben der schmale Editor gross wird 😉

    Es hat im Editorfenster auch eine Hilfe für Markdown, welche einem hierhin verlinkt: https://commonmark.org/help/


  • Global Moderator |  Mod

    Es gibt einen Codebutton? Drei Apostrophe sind doch so schnell zu tippen, so eine Funktion habe ich nicht einmal gesucht seit dem Umzug zum neuen Forum.



  • @seppj sagte in CodeTags dosen't work:

    Es gibt einen Codebutton? Drei Apostrophe sind doch so schnell zu tippen, so eine Funktion habe ich nicht einmal gesucht seit dem Umzug zum neuen Forum.

    Ja, und man kann hinter den einleitenden ``` auch noch den Dateityp angeben. c++ scheint default zu sein.

    Test für reinen Text: ```text

    #include <foobar>
    

    Nur drei: ```

    #include <foo>
    
    namespace bar {
    }
    

    dito mit c++: ```c++

    #include <foo>
    
    namespace bar {
    }
    

    HTML: ```html

    <!-- bla -->
    <html>zeugs</html>
    

    Zum testen html in c++ codetags: ```c++

    <!-- bla -->
    <html>zeugs</html>
    

    Edit:
    shell-scripte geht mit ```sh und ```bash. Ob es ein Unterschied gibt weiß ich nicht

    #!/bin/bash
    
    TEST=`ls -l`
    if [ $TEST != "" ] ; then
        mach was mit $TEST
    fi
    

    perl: ```perl

    #!/usr/bin/perl
    
    my $animal = "camel";
    
    print "a nice animal: " . $animal . "\n;
    

    Javascript und ähnliches müsste dann auch gehen...

    Den Button zum vergrößern hab ich auch übersehen, Danke für die info @Dravere

    cu



  • @seppj sagte in CodeTags dosen't work:

    Es gibt einen Codebutton? Drei Apostrophe sind doch so schnell zu tippen, so eine Funktion habe ich nicht einmal gesucht seit dem Umzug zum neuen Forum.

    Also mit deutschem Tastatur-Layout finde ich das ziemlich umständlich:

    • 3x (Shift+Apostroph + Space)

    oder

    • 2x (Shift+Apostroph+Apostroph) + Backspace (um das letzte Apostroph wieder zu löschen - wobei wohl auch 4 Apostrophs als Code-Tags akzeptiert werden)

    Oder hast du einen anderen Weg?


  • Global Moderator |  Mod

    @th69 sagte in CodeTags dosen't work:

    Also mit deutschem Tastatur-Layout finde ich das ziemlich umständlich:

    Oder hast du einen anderen Weg?

    Nein. Ich hab ein brauchbares Tastaturlayout¹. Aber selbst wenn ich deutsches Layout benutzen würde, wäre doch die erste Aktion, die dead keys auszuschalten. Die Zahl der Fälle, wo man mal ein é braucht ist ja doch selten genug.

    ¹: Wenn es jemand genau wissen möchte: US English mit Umlauten (und ein paar anderen nützlichen Zeichen) auf dem Modifier Key. US English ist einfach das beste zum Programmieren und Shell benutzen, weil die ganzen Erfinder von Shells und Programmiersprachen allesamt dieses Layout benutzen und gerade den Zeichen eine Sonderbedeutung gegeben haben, die besonders gut erreichbar sind. Und Modifier Key + Vokal ist fast einfacher als das originale Deutsche Layout für die Umlaute, weil die Umlaute dann nicht komisch am Rand liegen. Das einzige, was ein bisschen komisch ist, ist so etwas wie Modifier + Shift + U für ein großes Ü, weil das ein dreifach Griff ist. Aber allemal besser als deutsches Layout, wo es zig Dreifachgriffe gibt (und das auch noch für beim Programmieren besonders häufige Zeichen).



  • Okay, dann bleibe ich bei dem Code-Button bzw. meinem AutoHotkey-Makro.

    Das Ausschalten der Dead-Keys bei Windows 7 ist wohl nicht so direkt möglich (außer ein eigenes Layout zu installieren): How to make ^ and ` non-dead-keys on Windows 7 with German keyboard layout



  • @dirkski sagte in CodeTags dosen't work:

    Ja, und man kann hinter den einleitenden ``` auch noch den Dateityp angeben. c++ scheint default zu sein.

    Falls sich seit ich die Liste geschrieben habe nichts geändert hat: https://www.c-plusplus.net/forum/topic/348054/vector-im-vector/15