搜索
bottom↓
回复: 78

// 悄悄地单击, 打枪地不要! 给帖子里的 C++ 源代码上色!

[复制链接]

出0入0汤圆

发表于 2011-3-27 15:35:00 | 显示全部楼层 |阅读模式
发一个工具, 在发帖的时候处理一下源代码, 实现语法高亮的功能!
C++2HTML
字体,粗体,斜体 修改不能...

低调...不能让老大发现了...

示例1:
原始代码
--------------------
#include <stdio.h>

main()
{
    unsigned char i;

    for(i=0;i<10;i++)
    {
        printf ("Hello World!\n");
    }
}
-------------------
修饰后
-------------------
#include <stdio.h>

main
()
{

    unsigned char
i;

    for
(i=0;i<10;i++)
    {

        printf ("Hello World!\n");
    }
}

-------------------

出0入0汤圆

 楼主| 发表于 2011-3-27 15:40:12 | 显示全部楼层
占地, 出租

出0入0汤圆

 楼主| 发表于 2011-3-27 15:46:14 | 显示全部楼层
示例2:


//-----------------------------------------------------------------------
// Read an object from the directory      
//-----------------------------------------------------------------------
#if _FS_MINIMIZE &lt;= 1
static FRESULT dir_read(DIR *dj)
{

    FRESULT res;
    BYTE c, *dir;
#if _USE_LFN
    BYTE a, ord = 0xFF, sum = 0xFF;
#endif

    res = FR_NO_FILE;
    while
(dj-&gt;sect) {
        res = move_window(dj-&gt;fs, dj-&gt;sect);
        if
(res != FR_OK) break;
        dir = dj-&gt;dir;                    /* Ptr to the directory entry of current index */
        c = dir[DIR_Name];
        if
(c == 0) { res = FR_NO_FILE; break; }    /* Reached to end of table */
#if _USE_LFN    /* LFN configuration */
        a = dir[DIR_Attr] &amp; AM_MASK;
        if
(c == 0xE5 || (!_FS_RPATH &amp;&amp; c == '.') || ((a &amp; AM_VOL) &amp;&amp; a != AM_LFN)) {    /* An entry without valid data */
            ord = 0xFF;
        }
else {
            if
(a == AM_LFN) {            /* An LFN entry is found */
                if
(c &amp; 0x40) {            /* Is it start of LFN sequence? */
                    sum = dir[LDIR_Chksum];
                    c &amp;= 0xBF; ord = c;
                    dj-&gt;lfn_idx = dj-&gt;index;
                }

                /* Check LFN validity and capture it */

                ord = (c == ord &amp;&amp; sum == dir[LDIR_Chksum] &amp;&amp; pick_lfn(dj-&gt;lfn, dir)) ? ord - 1 : 0xFF;
            }
else {                    /* An SFN entry is found */
                if
(ord || sum != sum_sfn(dir))    /* Is there a valid LFN? */
                    dj-&gt;lfn_idx = 0xFFFF;        /* It has no LFN. */
                break
;
            }
        }

#else        /* Non LFN configuration */
        if (c != 0xE5 &amp;&amp; (_FS_RPATH || c != '.') &amp;&amp; !(dir[DIR_Attr] &amp; AM_VOL))    /* Is it a valid entry? */
            break
;
#endif
        res = dir_next(dj, FALSE);                /* Next entry */
        if
(res != FR_OK) break;
    }


    if
(res != FR_OK) dj-&gt;sect = 0;

    return
res;
}
<font color="#0000FF">
#endif

出0入0汤圆

发表于 2011-3-27 15:54:30 | 显示全部楼层
收下,不错。

出0入0汤圆

发表于 2011-3-27 16:33:33 | 显示全部楼层
  for(i=0;i&lt;5;i++)pic_buf[i*2 + 30]  = ~font5x8[min/10][i];
  for
(i=0;i&lt;5;i++)pic_buf[i*2 + 40]  = ~font5x8[min%10][i];     
  for
(i=0;i&lt;5;i++)pic_buf[i*2 + 20]  = ~font5x8[16][i];
  for
(i=0;i&lt;5;i++)pic_buf[i*2 + 0 ]  = ~font5x8[hour/10][i];
  for
(i=0;i&lt;5;i++)pic_buf[i*2 + 10]  = ~font5x8[hour%10][i];   
  for
(i=0;i&lt;5;i++)pic_buf[i*2 + 31]  = ~font5x8[second/10][i];
  for
(i=0;i&lt;5;i++)pic_buf[i*2 + 41]  = ~font5x8[second%10][i];

出0入18汤圆

发表于 2011-3-27 18:00:11 | 显示全部楼层
不错  看起来世界变得多姿多彩了!
头像被屏蔽

出0入0汤圆

发表于 2011-3-27 19:38:41 | 显示全部楼层
cool !

出50入4汤圆

发表于 2011-3-27 19:44:25 | 显示全部楼层
试一下

#include &lt;stdio.h&gt;

main
()
{

    unsigned char
i;

    for
(i=0;i&lt;10;i++)
    {
  
        printf ("Hello World!\n"<font color="#000000">);
    }
}

出0入0汤圆

发表于 2011-3-27 19:51:04 | 显示全部楼层
用VIM能很简单实现的说~不过我试过一次,在论坛上效果不太好。

出0入0汤圆

发表于 2011-3-27 20:09:14 | 显示全部楼层
烧!

出0入0汤圆

发表于 2011-3-27 20:10:48 | 显示全部楼层
if(i&gt;10<font color="#000000">)

出0入0汤圆

发表于 2011-3-27 20:29:18 | 显示全部楼层
测试一下哈


/**
  * @brief  Fills each GPIO_InitStruct member with its default value.
  * @param  GPIO_InitStruct : pointer to a GPIO_InitTypeDef structure which will
  *   be initialized.
  * @retval None
  */

void
GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)
{

  /* Reset GPIO init structure parameters values */

  GPIO_InitStruct-&gt;GPIO_Pin  = GPIO_Pin_All;
  GPIO_InitStruct-&gt;GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_InitStruct-&gt;GPIO_Mode = GPIO_Mode_IN_FLOATING;
}

出0入0汤圆

发表于 2011-3-27 20:53:00 | 显示全部楼层
太棒了

出0入0汤圆

发表于 2011-3-27 20:57:18 | 显示全部楼层
jh

出0入0汤圆

发表于 2011-3-27 21:16:32 | 显示全部楼层
好是好,手机党有点麻烦……
xhml规范里好像有个专为代码而设的关键字也能产生彩色代码的……忘记了……

出0入0汤圆

发表于 2011-3-27 21:54:48 | 显示全部楼层
漂亮

出0入0汤圆

发表于 2011-3-27 22:03:11 | 显示全部楼层
爽爽的~~

出0入0汤圆

发表于 2011-3-28 09:25:25 | 显示全部楼层
void main(void)
{

    /* put your own code here */
      
   
    DDR_PORT      =   0x0F;                    //定义B口矢量:低位为输出
    PORT          =   0xFF;         

    for
(;;)
    {
   
         PORT = 0xFE;
         delay(1000);
         PORT = 0xFD;
         delay(1000);
         PORT = 0xFB;
         delay(1000);
         PORT = 0xF7;
         delay(1000);                          //实现B口低四位控制LED实现流水
        
    }
/* loop forever */
  /* please make sure that you never leave main */

}

试一下效果

出0入0汤圆

发表于 2011-3-28 09:25:53 | 显示全部楼层
实在太爽了@!

出0入0汤圆

发表于 2011-3-28 09:40:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-28 10:26:24 | 显示全部楼层
这个...........坛主说 COOL...........楼主说低调哈..................哈哈哈

出0入0汤圆

发表于 2011-3-28 10:46:34 | 显示全部楼层
八错....

出0入0汤圆

发表于 2011-3-28 10:52:08 | 显示全部楼层
楼主这个热门包,太冷了。cool!!

出0入0汤圆

发表于 2011-3-28 11:28:53 | 显示全部楼层
呵呵,楼主涉猎范围很广哦,不错!!

出0入0汤圆

发表于 2011-3-28 12:17:40 | 显示全部楼层
测试下

#include &lt;avr/io.h&gt;
#include &lt;util/delay.h&gt;
#include &lt;avr/interrupt.h&gt;
#include "LED.h"
void init();
//unsigned char ADC_data();

unsigned char
k=0;

void
init()
{

DDRA=0x7f;
PORTA=0x00;
DDRB=0xff;
PORTB=0x00;
DDRC=0xff;
PORTC=0x00;
DDRD=0x00;
PORTD=0x00;
}


void
int_init()
{

    cli();
    MCUCR|=(1&lt;&lt;ISC11)|(1&lt;&lt;ISC10);
    GICR|=(1&lt;&lt;INT1);
    sei();
}


SIGNAL(INT1_vect)
{

    cli();
    k++;
    _delay_us(20);
    sei();
}


/*unsigned char ADC_data()
{   
    unsigned char adc;
    ADMUX=0b01100111;
    ADCSRA=0b11000011;
    SFIOR=0b00000000;
    _delay_us(100);
    adc=ADCH;
    return adc;
} */


int
main()
{

//unsigned char l;
//TCCR0=0b01000100;
//    OCR0=0xfa;
init();
int_init();
//show_LED(k);

while
(1)
{

//PORTA|=(1&lt;&lt;4);
//_delay_us(100);
//k=ADC_data();
//_delay_us(400);
//PORTA&amp;=~(1&lt;&lt;4);
//_delay_us(500);
   //for(l=0;l&lt;100;l++)
      show_LED(k);
    }

}

出0入0汤圆

发表于 2011-3-28 12:34:10 | 显示全部楼层
支持一下。

出0入57汤圆

发表于 2011-3-28 12:43:23 | 显示全部楼层
void main(void)
{

unsigned char
a;//定义a
unsinged char b;//我承认我拼写错误
a++/*确实是我忘了写分号*/
b++;/*注释后面加一句纯粹是耍流氓的*/a+=*(unsigned char *)b;//我就是想\
耍流氓
while
(1<font color="#000000">)
{
;
}
}

出0入0汤圆

发表于 2011-3-28 12:51:31 | 显示全部楼层
LS 给力

出0入0汤圆

发表于 2011-3-28 12:55:39 | 显示全部楼层
其实最好的办法是建议论坛加入Google Syntax Highlighter类似的插件功能,就不用每个人这么麻烦的去加色了。

出0入0汤圆

发表于 2011-3-28 14:06:21 | 显示全部楼层
得顶啊~~
下来看看

出0入0汤圆

发表于 2011-3-28 14:31:20 | 显示全部楼层
volatile unsigned char b;<font color="#008000">//测试

出0入0汤圆

发表于 2011-3-28 15:37:07 | 显示全部楼层
测试:

源程序:
/***************************************/
/*  函数功能:  像液晶屏送入自建的字库
    输入参数:  无
    输出参数:  无   
    备    注:                  
    作    者:  BeanBean
    版    本:  2010-09-18   V1.0
*/
/***************************************/
void WriteCGRAMDATA()
{
    //add
    unsigned char CountTemp=0;
    unsigned char CountTemp2=0;
    unsigned char code Data[]=
    {   0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,//"一"
        0x00,0x00,0x0E,0x00,0x00,0x1F,0x00,0x00,//"二"
        0x00,0x0E,0x00,0x0E,0x00,0x1F,0x00,0x00,//"三"
        0x00,0x1F,0x11,0x1B,0x1B,0x11,0x1F,0x00,//"四"
        0x08,0x1F,0x12,0x0F,0x0A,0x1F,0x02,0x02,//"年"
        0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0B,0x11,//"月"
        0x0F,0x09,0x09,0x0F,0x09,0x09,0x0F,0x00,//"日"
        0x00,0x04,0x04,0x04,0x04,0x0A,0x0A,0x11,//"人"
    };
    for(CountTemp=0;CountTemp<8;CountTemp++)
    {
        //add
        LCDWriteCMD(0X40+CountTemp*8);
        for(CountTemp2=0;CountTemp2<8;CountTemp2++)
        {
            //add
            LCDWriteDATA(Data[CountTemp*8+CountTemp2]);
        }
    }
}

转换后的:

/***************************************/
/*  函数功能:  像液晶屏送入自建的字库
    输入参数:  无
    输出参数:  无   
    备    注:                  
    作    者:  BeanBean
    版    本:  2010-09-18   V1.0
*/
/***************************************/

void
WriteCGRAMDATA()
{

    //add
    unsigned char CountTemp=0;
    unsigned char
CountTemp2=0;
    unsigned char
code Data[]=
    {
   0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,//"一"
        0x00,0x00,0x0E,0x00,0x00,0x1F,0x00,0x00,//"二"
        0x00,0x0E,0x00,0x0E,0x00,0x1F,0x00,0x00,//"三"
        0x00,0x1F,0x11,0x1B,0x1B,0x11,0x1F,0x00,//"四"
        0x08,0x1F,0x12,0x0F,0x0A,0x1F,0x02,0x02,//"年"
        0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0B,0x11,//"月"
        0x0F,0x09,0x09,0x0F,0x09,0x09,0x0F,0x00,//"日"
        0x00,0x04,0x04,0x04,0x04,0x0A,0x0A,0x11,//"人"
    };
    for
(CountTemp=0;CountTemp&lt;8;CountTemp++)
    {

        //add
        LCDWriteCMD(0X40+CountTemp*8);
        for
(CountTemp2=0;CountTemp2&lt;8;CountTemp2++)
        {

            //add
            LCDWriteDATA(Data[CountTemp*8+CountTemp2<font color="#000000">]);
        }
    }
}

出0入0汤圆

发表于 2011-3-28 16:11:41 | 显示全部楼层
#include <stdio.h>

main()
{
    unsigned char i;

    for(i=0;i<10;i++)
    {
        printf ("Hello World!\n");
    }
}

测试一下用vim的TOhtml命令转的:
<body bgcolor="#000000" text="#a0ffa0">// File: test.cpp<br>
#include <stdio.h><br>
<br>
main()<br>
{<br>
&#160;&#160;&#160;&#160;unsigned&#160;char&#160;i;<br>
<br>
&#160;&#160;&#160;&#160;for(i=0;i<10;i++)<br>
&#160;&#160;&#160;&#160;{ <br>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;printf ("Hello World!\n");<br>
&#160;&#160;&#160;&#160;}<br>
}<br>
<br>
</font></body>


==========================
看起来不是很合适 :p

出0入0汤圆

 楼主| 发表于 2011-3-29 11:30:03 | 显示全部楼层
回复【32楼】bigfatfish
-----------------------------------------------------------------------

其实是一样的, 你在VIM里找找有没有设置颜色的, 我这个也是参考了 Visual Studio 2010 的颜色改的
另外 <body bgcolor="#000000" text="#a0ffa0"><font face="monospace"> 两句是过滤掉的

出0入0汤圆

 楼主| 发表于 2011-3-29 11:30:49 | 显示全部楼层
多谢阿莫给酷~~低调地顶一下~~

出0入0汤圆

发表于 2011-3-29 11:32:56 | 显示全部楼层
MARK

出15入190汤圆

发表于 2011-3-29 12:41:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-29 12:51:31 | 显示全部楼层
good

出0入0汤圆

发表于 2011-3-29 16:55:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-29 17:34:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-29 17:45:31 | 显示全部楼层
稀饭

出0入0汤圆

发表于 2011-3-29 18:21:22 | 显示全部楼层
mark
这样看代码方便多了

出0入59汤圆

发表于 2011-3-29 18:34:03 | 显示全部楼层
晔~留用,谢谢!

出0入0汤圆

发表于 2011-3-29 18:47:24 | 显示全部楼层
很多IDE都有转换成HTML的功能吧。

出0入0汤圆

 楼主| 发表于 2011-3-29 19:04:12 | 显示全部楼层
回复【43楼】ufbycd
-----------------------------------------------------------------------

转换出来不一定能用

出0入0汤圆

 楼主| 发表于 2011-3-29 19:04:46 | 显示全部楼层
比如上面这个, 大写的关键字是不被识别的

出0入0汤圆

发表于 2011-4-2 17:06:09 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-4-2 17:43:34 | 显示全部楼层
8错,试试

出0入0汤圆

发表于 2011-4-3 07:50:32 | 显示全部楼层
感觉没有Source Insight 3.5好。大家可以找一下,用了很爽的。

出0入0汤圆

发表于 2011-4-3 09:55:05 | 显示全部楼层
手机不能打开这个网站吧?我android系统一打开就提示论坛出错。

出0入0汤圆

发表于 2011-4-3 11:35:16 | 显示全部楼层
低调

出0入0汤圆

发表于 2011-4-3 11:39:57 | 显示全部楼层
不错啊

出0入0汤圆

发表于 2011-4-3 13:05:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-3 13:07:59 | 显示全部楼层
void __fastcall TDisplayThread::Execute()
{

    while
(!Terminated)
    {

        //标注临界区头
        TQ-&gt;Acquire();
        //访问VCL必须用同步方法
        Synchronize(ListInMemo);
        //标注临界区尾
        TQ-&gt;Release();
    }
}

出0入0汤圆

发表于 2011-4-3 15:25:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-5 05:48:07 | 显示全部楼层
mark 看起来不错

出0入0汤圆

发表于 2011-4-7 21:43:00 | 显示全部楼层
mark 保存一下,刚用到了,差点没找回来

出0入0汤圆

发表于 2011-4-8 09:28:36 | 显示全部楼层
void __fastcall TDisplayThread::Execute()
{
    while(!Terminated)
    {
        //标注临界区头
        TQ->Acquire();
        //访问VCL必须用同步方法
        Synchronize(ListInMemo);
        //标注临界区尾
        TQ->Release();
    }
}

出0入0汤圆

发表于 2011-4-9 08:57:54 | 显示全部楼层
while(1)
{

    楼主我顶你;<font color="#000000">
}

出10入0汤圆

发表于 2011-4-9 09:21:52 | 显示全部楼层
MARK~~~

出0入0汤圆

发表于 2011-4-9 10:48:54 | 显示全部楼层
效果很不错

出0入0汤圆

发表于 2011-5-30 18:44:43 | 显示全部楼层
不错,爽

出0入0汤圆

发表于 2011-5-30 20:51:54 | 显示全部楼层
强悍!收了!

出0入0汤圆

发表于 2011-5-30 21:50:25 | 显示全部楼层
绝对支持,用了。我的站上就是用的你的贴的程序,效果很好 呵呵

出0入0汤圆

发表于 2011-6-3 13:41:53 | 显示全部楼层
试试!
#include &lt;reg52.h&gt;
int main()
{

   return
0<font color="#000000">;
}

出0入0汤圆

发表于 2011-6-4 13:13:05 | 显示全部楼层
  int i;
  i = 0;
  while
(i &lt; 10)
  {

    //hello
    i ++;
  }

出0入0汤圆

发表于 2011-6-4 13:47:46 | 显示全部楼层
void main
{

`int i,j,k;
switch
()
{

case
:
default
<font color="#000000">:
}
}

出0入0汤圆

发表于 2011-7-27 07:54:33 | 显示全部楼层
shi ma  you na me shen qi ma<font color="#060000"> ?

出0入0汤圆

发表于 2011-7-27 08:15:11 | 显示全部楼层
我一般用cfree这个软件编辑 效果更好

出0入0汤圆

发表于 2011-7-27 13:52:11 | 显示全部楼层
顶一下,看看

出50入0汤圆

发表于 2011-7-27 13:56:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-13 17:03:49 | 显示全部楼层
回复【26楼】leafstamen
-----------------------------------------------------------------------

怎样,这个怎样弄的。

出0入0汤圆

发表于 2012-4-13 01:24:06 | 显示全部楼层
谢谢楼主无私奉献

出0入0汤圆

发表于 2012-4-13 01:42:09 | 显示全部楼层
////////////////////////////////////////////////////////////////////////////////////////////////
Aes::KeyExpansion()
{


    memset(w,0,16*15);
    for
(int row=0;row<Nk;row++)     //拷贝seed 密钥
    {
        w[4*row+0] = key[4*row];
        w[4*row+1] = key[4*row+1];
        w[4*row+2] = key[4*row+2];
        w[4*row+3] = key[4*row+3];
    }

    byte* temp = new byte[4];
    for
(row=Nk;row<4*(Nr+1);row++)
    {

        temp[0]=w[4*row-4];     //当前列的前一列     
        temp[1]=w[4*row-3];
        temp[2]=w[4*row-2];
        temp[3]=w[4*row-1];
        if
(row%Nk==0)         //逢nk时,对当前列的前一列作特殊处理
        {
            temp=SubWord(RotWord(temp)); //先移位,再代换,最后和轮常量异或
            temp[0] = (byte)( (int)temp[0] ^ (int) AesRcon[4*(row/Nk)+0] );     
            temp[1] = (byte)( (int)temp[1] ^ (int) AesRcon[4*(row/Nk)+1] );
            temp[2] = (byte)( (int)temp[2] ^ (int) AesRcon[4*(row/Nk)+2] );
            temp[3] = (byte)( (int)temp[3] ^ (int) AesRcon[4*(row/Nk)+3] );
        }

        else if
( Nk > 6 && (row % Nk == 4) ) //这个还没有搞清楚
        {
            temp = SubWord(temp);
        }

         
        // w[row] = w[row-Nk] xor temp
        w[4*row+0] = (byte) ( (int) w[4*(row-Nk)+0] ^ (int)temp[0] );
        w[4*row+1] = (byte) ( (int) w[4*(row-Nk)+1] ^ (int)temp[1] );
        w[4*row+2] = (byte) ( (int) w[4*(row-Nk)+2] ^ (int)temp[2] );
        w[4*row+3] = (byte) ( (int) w[4*(row-Nk)+3] ^ (int)temp[3] );
    }
// for loop
     
}

出0入0汤圆

发表于 2012-4-13 01:59:33 | 显示全部楼层
本帖最后由 leiyin 于 2012-4-13 02:03 编辑
  1. <font color="#0000FF">#include "stdio.h"
复制代码

出0入0汤圆

发表于 2012-12-3 00:25:31 | 显示全部楼层
不错的工具

出0入0汤圆

发表于 2013-10-15 15:01:22 | 显示全部楼层
<font color="#2B91AF">int</font><font color="#0000FF"> main</font><font color="#000000"> (</font><font color="#2B91AF">void</font><font color="#000000">)
{</font><font color="#800080">
  while</font><font color="#000000">;
谢谢,果然好使。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 07:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表