Ok... wykombinowałem coś takiego :
<?php
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function WinToISO($NapisDoZmiany)
{
'Ą',
'ą',
'Ś',
'ś',
'Ź',
'ź'
);
'ˇ',
'ą',
'Ś',
'ś',
'Ź',
'Ľ'
);
};
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function WinToCPP($NapisDoZmiany)
{
' ',
' ',
'private',
'public',
'asm',
' try',
' try',
'catch',
'__finally',
'classid',
'for(',
'const ',
' if',
' if',
'else',
' int ',
'(int)',
'bool ',
'char',
'float ',
'sizeof',
'struct',
'true',
'false',
'switch(',
'case',
'break;',
'void ',
'new ',
'this',
'delete',
'__fastcall',
'UWAGA',
'Unit1.cpp',
'Unit1.h',
'Project1.cpp',
'return',
'//<--',
'-line-'
);
' ',
' ',
'<b>private</b>',
'<b>public</b>',
'<b>asm</b>',
'<b> try</b>',
'<b> try</b>',
'<b>catch</b>',
'<b>__finally</b>',
'<b>classid</b>',
'<b>for</b>(',
'<b>const </b>',
'<b> if</b>',
'<b> if</b>',
'<b>else</b>',
'<b> int </b>',
'(<b>int</b>)',
'<b>bool </b>',
'<b>char</b>',
'<b>float </b>',
'<b>sizeof</b>',
'<b>struct</b>',
'<b>true</b>',
'<b>false</b>',
'<b>switch</b>(',
'<b>case </b>',
'<b>break</b>;',
'<b>void </b>',
'<b>new </b>',
'<b>this</b>',
'<b>delete</b>',
'<b>__fastcall</b>',
'<font color=red><b>UWAGA</b></font>',
'<font color=green><b>Unit1.cpp</b></font>',
'<font color=red><b>Unit1.h</b></font>',
'<font color=blue><b>Project1.cpp</b></font>',
'<b>return</b>',
'<font color="#000080">//<--</font>',
'<font color="#000080">//---------------------------------------------------------------------------</font>'
);
}
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function IncludeME($NapisDoZmiany, $Znak)
{
if($Znak == 1)
{
return '<font color="#008000">#include "'.$NapisDoZmiany.'"</font>';
}else{
return '<font color="#FF0000">#include <'.$NapisDoZmiany.'></font>';
};
}
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function bbcode($s)
{
$match_one = array('##include <(.*?)>#se'); $replace_one = array("IncludeME(stripslashes('$1'), 0)");
$match_two = array('##include "(.*?)"#se'); $replace_two = array("IncludeME(stripslashes('$1'), 1)");
$match_three = array('#(.*?)
#se'); $replace_three = array("WinToCPP(stripslashes('$1'))"); }
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
$tekst = 'Aby po kliknięciu prawym przyciskiem myszy na element w TListBox zaznaczał się o
n tak samo jak przy kliknięciu lewym przyciskiem myszy należy napisać funkcje obs
ługi zdarzeń OnMouseDown i OnMouseUp dla tego TListBox:
Unit1.cpp</span></div></li><li class="li2"><div class="de2"><span class="st0">#include "tapi.h"</span></div></li><li class="li1"><div class="de1"><span class="st0">#include "mapi.hpp"</span></div></li><li class="li2"><div class="de2"><span class="st0">#include "zapi.h"</span></div></li><li class="li1"><div class="de1"><span class="st0">#include "kapi.hpp"</span></div></li><li class="li2"><div class="de2"> </div></li><li class="li1"><div class="de1"><span class="st0">#include <tapi.h></span></div></li><li class="li2"><div class="de2"><span class="st0">#include <mapi.hpp></span></div></li><li class="li1"><div class="de1"><span class="st0">#include <zapi.h></span></div></li><li class="li2"><div class="de2"><span class="st0">#include <kapi.hpp></span></div></li><li class="li1"><div class="de1"><span class="st0">-line-</span></div></li><li class="li2"><div class="de2"><span class="st0">void __fastcall TForm1::ListBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)</span></div></li><li class="li1"><div class="de1"><span class="st0">{</span></div></li><li class="li2"><div class="de2"><span class="st0"> Label1->Caption = "Down";</span></div></li><li class="li1"><div class="de1"><span class="st0"> if (Button == mbRight)</span></div></li><li class="li2"><div class="de2"><span class="st0"> {</span></div></li><li class="li1"><div class="de1"><span class="st0"> X = (X + ListBox1->Left + Left << 16) / Screen->Width;</span></div></li><li class="li2"><div class="de2"><span class="st0"> Y = (Y + ListBox1->Top + Top << 16) / Screen->Height;</span></div></li><li class="li1"><div class="de1"><span class="st0"> ::mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);</span></div></li><li class="li2"><div class="de2"><span class="st0"> }</span></div></li><li class="li1"><div class="de1"><span class="st0">}</span></div></li><li class="li2"><div class="de2"><span class="st0">-line-
Unit1.cpp A teraz sprawdzamy jak to wyjdzie ;-) if bool
Unit1.cpp</span></div></li><li class="li1"><div class="de1"><span class="st0">-line-</span></div></li><li class="li2"><div class="de2"><span class="st0">void __fastcall TForm1::ListBox1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)</span></div></li><li class="li1"><div class="de1"><span class="st0">{</span></div></li><li class="li2"><div class="de2"><span class="st0"> Label1->Caption = "UP";</span></div></li><li class="li1"><div class="de1"><span class="st0"> if (Button == mbRight)</span></div></li><li class="li2"><div class="de2"><span class="st0"> {</span></div></li><li class="li1"><div class="de1"><span class="st0"> X = (X + ListBox1->Left + Left << 16) / Screen->Width;</span></div></li><li class="li2"><div class="de2"><span class="st0"> Y = (Y + ListBox1->Top + Top << 16) / Screen->Height;</span></div></li><li class="li1"><div class="de1"><span class="st0"> ::mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);</span></div></li><li class="li2"><div class="de2"><span class="st0"> }</span></div></li><li class="li1"><div class="de1"><span class="st0">}</span></div></li><li class="li2"><div class="de2"><span class="st0">-line-
';
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
$tekst = nl2br(WinToISO
($tekst));
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
?>
I... wszystko fajnie ale... chciałem jeszcze dodać do tego aby wsystkie stringi mi kolorował na niebiesko i... wszytko fajnie bo można zrobić to tak :
<?php
$str = '
#include "bibl.h"<br> // TO MIALO BYC NIE RUSZONE :(
#include "bibl.hpp"<br> // TO TEŻ :(
#include <bibl.h><br>
#include <bibl.hpp><br><br><br>
Label1->Caption = "Button 1";'; // TO MIALO ZMIENIC TYLKO MIĘDZY ZNAKAMI (") :(
// $str = preg_replace( '/"(|(.*?[^]))"/', '<font color="green">"$1"</font>', $str );
$str = preg_replace( '/"(|(.*?[^]))"/', '<font color="blue">"$1"</font>', $str ); ?>
ale... wtedy mi zrobi z #include sieczkę

Jak to zrobić aby nie ruszało mi tekstu z #include nawet kiedy jest między (") ?