JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=8f301c04e8985e30ac9c1eb3d8e4a0f1Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

C++ Syntax Highlighting
Gehe zu Seite Zurück  1, 2, 3, 4  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 04.02.2005, 18:55    Titel: Antworten mit Zitat

GreveN hat Folgendes geschrieben:
Ist doch afaik nix weiter als eine abstrakte Klasse...
Es ist keine Klasse, sondern eine Struktur mit Funktionsdeklarationen!
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 04.02.2005, 19:05    Titel: Antworten mit Zitat

zwischen interface und class gibt es auch unterschiede Wink Das Schlüsselwort interface ist ausschließlich für COM, class ist was anderes Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 05.02.2005, 22:43    Titel: Antworten mit Zitat

CPP:
/////////////////////
//
// TEST
//
/////////////////////

/* keywords */
__abstract __alignof __asm __assume
__based __box __cdecl __declspec
__delegate __event __except __fastcall
__finally __forceinline __gc __hook
__identifier __if_exists __if_not_exists __inline
__int8 __int16 __int32 __int64
__interface __leave __m64 __m128
__m128d __m128i __multiple_inheritance __nogc
__noop __pin __property __raise
__sealed __single_inheritance __stdcall __super
__try_cast __try __except __finally __unhook __uuidof
__value __virtual_inheritance bool
break case catch char
class const const_cast continue
default delete do double dynamic_cast
else enum explicit extern
false float for friend
goto if inline int
long mutable namespace
new operator private
protected public register reinterpret_cast
return short signed
sizeof static static_cast struct
switch template this
throw true try typedef
typeid typename union unsigned
using __uuidof virtual void
volatile __wchar_t wchar_t while
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 06.02.2005, 12:52    Titel: Antworten mit Zitat

CPP:
std::cout<<"Juhuuu...";

Glückwunsch, dass es jetzt endlich funzt Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 14.02.2005, 14:28    Titel: Antworten mit Zitat

Der Code sieht jetzt so aus:
PHP:
an style="color: #000000"><?php // START CPP Syntax Highlighter MOD
/** 
 * CPP MOD 
 * Original code/function by phpBB Group 
 * Modified by JW Frazier / Fubonis < php_fubonis@yahoo.com > for PHP highlighting 
 * Modified again by KI / Martin Mädler < martin@shadoware.de > for nice C++ highlighting
 */ 
function bbencode_second_pass_cpp($text$uid$bbcode_tpl

    
// split the post up and grab the code blocks 
    
$code_start_html $bbcode_tpl['cpp_open']; 
    
$code_end_html =  $bbcode_tpl['cpp_close'];
    
    
// build the md5-hash of an escaped backslash \\
    // we need this for string highlighting later
    
$escaped_backslash_md5 md5("\\\\\\\\");
    
    
$matches = array(); 
    
$match_count preg_match_all("#\[cpp:1:$uid\](.*?)\[/cpp:1:$uid\]#si"$text$matches); 

    
// this array holds all the C++ keywords, which will be highlighted in blue 
    
$cppcodearray = array 
    (
    
"#define""defined""#else""#elseif""#endif""#if""#ifdef",
    
"#ifndef""#include""#pragma""#undef",

    
"const_cast""dynamic_cast""reinterpret_cast""static_cast"

    
"_asm""__asm""__attribute""__catch""__declspec""__fastcall"
    
"__finally""__forceinline""_inline""__inline""__interface",
    
"__int8""__int16""__int32""__int64""__property""__published"
    
"__stdcall""__try"

    
"asm""bool""break""case""catch""char""class""const"
    
"continue""default""defined""delete""dllexport""dllimport"
    
"do""double""else""enum""extern""false""float""for""friend",
    
"if""inline""int""interface""long""mutable""namespace""new"
    
"operator",    "private""protected""public""register""return"
    
"short""signed""static""switch""template""this""true"
    
"typedef",     "typename""try""union",  "unsigned",  "using",  "void"
    
"volatile""wchar_t""while"
    
);
    
    
    for (
$i 0$i $match_count$i++) 
    { 
        
$before_replace $matches[1][$i]; 
        
$after_replace $matches[1][$i]; 
        
$str_to_match "[cpp:1:$uid]" $before_replace "[/cpp:1:$uid]";  
        
        
// First of all we need to replace all multiline comments with its approriate md5-hash
        // This prevents highlighting keywords inside of a comment
        // Later the hashes are again replaced by its corresponing multiline comment
        
$comment_multi_count 0;
        
        do
        {
            
// preg_match, with a specific multiline comment regex
            
$result preg_match("/(\/\*.*?\*\/)/s"$after_replace$comment_multi);
            if(
$result == 0)
                break;
// if no more comments are found, leave the loop
            
            
$comment_multi_arr[$comment_multi_count] = $comment_multi[1];// this array holds the comments
            
$comment_multi_md5[$comment_multi_count] = md5($comment_multi[1]);// this one holds the corresponding md5-hash
            
$after_replace substr_replace($after_replace$comment_multi_md5[$comment_multi_count], strpos($after_replace$comment_multi_arr[$comment_multi_count]), strlen($comment_multi_arr[$comment_multi_count]));
            
$comment_multi_count += 1;
        }
        while(
true);
        
        
// Here we need to replace all singleline comments with its approriate md5-hash
        // by using the same method as seen before
        
$comment_single_count 0;
        
        do
        {
            
// preg_match, this time with a specific singleline comment regex
            
$result preg_match("/(\/\/.*)/"$after_replace$comment_single);
            if(
$result == 0)
                break;
// if no more accordances are found, leave the loop
            
            
$comment_single_arr[$comment_single_count] = $comment_single[0];
            
$comment_single_md5[$comment_single_count] = md5($comment_single[0]);
            
$after_replace substr_replace($after_replace$comment_single_md5[$comment_single_count], strpos($after_replace$comment_single_arr[$comment_single_count]), strlen($comment_single_arr[$comment_single_count]));
            
$comment_single_count += 1;
        }
        while(
true);
        
        
// In the next part we are going to find strings within the code
        // strings are characterized by one double quotes (") on each end
        
        // replace all escaped backslashes with its appropriate md5-hash
        // otherwise an escaped backslash at the end of a string would 
        // be interpreted as an escaped double quote
        // That would result in an oversized string
        // Example 1:(we want to prevent such bugs)
        // <span style='color: #00B0B0'>"We don't want this \\" here is some code"</span>beginning of a new string...
        // Example 2:(that's the way it has to be)
        // <span style='color: #00B0B0'>"We want this\\"</span><span style='color: #00B0B0'>"beginning of a new string...
        
$after_replace preg_replace("/(\\\\\\\\)/",$escaped_backslash_md5,$after_replace);
        
        
// now we find all strings
        // the look behind feature (?<!\\\\)\") in our regex enables us to find strings with
        // escaped double quotes \"
        // otherwise the string would close at the second double quote from the beginning
        
$string_cnt  preg_match_all("/(\".*?(?<!\\\\)\")/s",  $after_replace$strings,  PREG_SET_ORDER); 
        if (
$string_cnt 0)
        { 
            foreach (
$strings as $string
            { 
                
$after_replace str_replace($string[0], md5($string[0]), $after_replace); 
            } 
        } 

        
// lets come to the highlighting
        // this highlights everything red which is between square brackets
        
$after_replace preg_replace("/(\[)([^\]]*)(\])/""\\1<span style='color: #FF0000'>\\2</span>\\3"$after_replace); 
        
        
// merge the keyword-array to a big regex
        
$keyword_regex "/(?<![A-Za-z0-9_])(" implode("|"$cppcodearray) . ")(?![A-Za-z0-9_])/"
        
        
// highlight the keywords
        
$after_replace preg_replace($keyword_regex"<span style='color: #0000FF'>\\0</span>"$after_replace); 

        
// its time to replace all hashes with its corresponing character strings
        // perform multiline comment highlighting
        
for($count 0$count $comment_multi_count$count++)
        {
            
$after_replace str_replace($comment_multi_md5[$count], "<span style='color: #008000'>" $comment_multi_arr[$count] . "</span>"$after_replace); 
        } 
        
        
// perform singleline comment highlighting    
        
for($count 0$count $comment_single_count$count++)
        {
            
$after_replace str_replace($comment_single_md5[$count], "<span style='color: #008000'>" $comment_single_arr[$count] . "</span>"$after_replace); 
        } 
        
        
// perform string highlighting
        
if ($string_cnt 0)
        { 
            foreach (
$strings as $string)
            { 
                
$after_replace str_replace(md5($string[0]), "<span style='color: #00B0B0'>" $string[0] . "</span>"$after_replace); 
            } 
        }
        
        
// replace all escaped backslash hashes with escaped backslashes
        
$after_replace preg_replace("/(" $escaped_backslash_md5 ")/","\\\\\\\\",$after_replace);

        
// replace 2 spaces with "&nbsp; " so non-tabbed code indents without making huge long lines. 
        
$after_replace str_replace("  ""&nbsp; "$after_replace); 
        
// now replace 2 spaces with " &nbsp;" to catch odd #s of spaces. 
        
$after_replace str_replace("  "" &nbsp;"$after_replace); 

        
// replace tabs with "&nbsp; &nbsp;" so tabbed code indents sorta right without making huge long lines. 
        
$after_replace str_replace("\t""&nbsp; &nbsp;"$after_replace); 

        
// now replace space occurring at the beginning of a line 
        
$after_replace preg_replace("/^ {1}/m""&nbsp;"$after_replace); 

        
// make first \r\n to vanish if it exists
        
$after_replace preg_replace("/^(\r\n)*/"""$after_replace);
        
        
// piece the post back together
        
$replacement  $code_start_html;
        
$replacement .= $after_replace
        
$replacement .= $code_end_html

        
$text str_replace($str_to_match$replacement$text); 
    } 

    
$text str_replace("[cpp:$uid]"$code_start_html$text); 
    
$text str_replace("[/cpp:$uid]"$code_end_html$text); 

    return 
$text
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Kronos
Senior JLI'ler



Anmeldedatum: 19.03.2004
Beiträge: 290

Medaillen: Keine

BeitragVerfasst am: 14.02.2005, 14:39    Titel: Antworten mit Zitat

Du hast die Präprozessoranweisung #error vergessen! Smile

Edit: und naked?
_________________
David hat Folgendes geschrieben:
Solang meine Beiträge konstruktiver sind als deiner bin ich zufrieden...

Kein Kommentar notwendig. :rolleyes:
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 20.02.2005, 01:06    Titel: Antworten mit Zitat

FH hat Folgendes geschrieben:
FH
<edit>
Was ist dann das komisches? Unterstrichen in cpp ergibt das:
CPP:
[u:31663a4e05] [/u:31663a4e05] [b:31663a4e05] [/b:31663a4e05] [i:31663a4e05] [/i:31663a4e05][php]
Kann mir mal jemand erklären, was das soll?

</edit>

Das was du da siehst ist der unique identifier, der bei jedem Beitrag neu nach dem Zufallsprinzip generiert wird. Bei den PHP-Tags tritt der gleiche Fehler auf.
Man müsste mal genauer unter die Lupe nehmen, warum der UID bei den Code-Tags nicht zum Vorschein kommt. thinking
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 21.03.2005, 18:14    Titel: Antworten mit Zitat

Hier nen Bug:

CPP:
if(foo==8)
{
  //...
}

_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 21.03.2005, 18:31    Titel: Antworten mit Zitat

cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 21.06.2005, 01:33    Titel: Antworten mit Zitat

FallenAngel84 hat Folgendes geschrieben:
Hier nen Bug:

CPP:
if(foo==8)
{
  //...
}


Dieser Bug wurde nach langer Zeit nun auch gefixt. Smile [nachtrag: ne doch nicht wirklich.. siehe p.s.]
Es sollten nun keine Smileys innerhalb von CPP-Tags möglich sein.

Außerdem habe ich ein neues Feature eingebaut. Der Code zwischen >>> und <<< wird ab jetzt mit einem hellen Gelb untermalt. So kann man besondere Codeabschnitte besser hervorheben.

CPP:
void CPlayground::SnakeTeleport(CSnake &rSnake)
{
   // Alle Teleporter durchlaufen
   for(UINT c = 0; c < m_uNumElements[elementTeleporter]; c++)
   {
      CSnakeVector *pHead = rSnake.GetSnakeParts();

      if(m_pElements[elementTeleporter][c] == *pHead)
      {
         // Wenn es mehr als einen Teleporter gibt, dann einen anderen auswählen
         if(m_uNumElements[elementTeleporter] > 1)
         {
            // Teleporter wählen
            UINT uNew;

            do
            {
               uNew = static_cast<UINT>(rand()) % m_uNumElements[elementTeleporter];
            }
            while(uNew == c);

            // Teleportieren
            *pHead = m_pElements[elementTeleporter][uNew];

            // Verlassen
            return;
         }
      }
   }
}


Viel Spaß damit. O.o. hoffentlich gibt es keine neuen Bugs. Wink

p.s. so wie es jetzt ist, ist es teilweise noch etwas buggy... (was die smiley-unterdrückung angeht) awerd ich mir noch was besseres zu überlegen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 21.06.2005, 07:39    Titel: Antworten mit Zitat

das ist eine wirklich gute idee KI! klappt gut Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 21.06.2005, 07:42    Titel: Antworten mit Zitat

jo, gut gemacht Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
KI
JLI Master


Alter: 39
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 21.06.2005, 10:52    Titel: Antworten mit Zitat

Jetzt funktioniert es einigermaßen. Aber es gibt noch Probleme mit dem hier: Wink

CPP:
 :D  :)  :(  :o  :shock:  :?  8)  :lol:  :x  :P  :oops:  :cry:  :evil:  :twisted:  :roll:  ;)  ;-)  :wink:  :!:  :?:  :idea:  :arrow:  :|  :mrgreen:  :rambo:  :thumb:  :hand:  :doh:  :pray:  :think:  :clap:


Code:

 :D  :)  :(  :o  :shock:  :?  8)  :lol:  :x  :P  :oops:  :cry:  :evil:  :twisted:  :roll:  ;)  ;-)  :wink:  :!:  :?:  :idea:  :arrow:  :|  :mrgreen:  :rambo:  :thumb:  :hand:  :doh:  :pray:  :think:  :clap:
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 21.06.2005, 13:51    Titel: Antworten mit Zitat

CPP:
#include <iostream>

int main(void)
{
    std::cout<<"kewl feature!!\n...and nice idea ;)";
    return 0;
}


<edit>
...aber was ist das für ein Smiley innerhalb der CPP-Tags? Wink
</edit>
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 21.06.2005, 13:59    Titel: Antworten mit Zitat

KI schrieb doch das es Probleme mit dem hier gibt: Wink
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2, 3, 4  Weiter
Seite 3 von 4

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum