百度发帖代码格式化工具-vbs
vbs吧
全部回复
仅看楼主
level 1
breakan 楼主
有时,在百度贴吧发帖或在知道回答别人问题时,经常会贴一些代码。但是由于这两个地方不支持制表符(TAB发送),当我们发送带有制表符的代码时会被自动替换为一个空格,所以我们发的代码会因为没有层次而显得很乱。就算代码写的再好看上去也像一堆垃圾,像这样:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
      出于这个原因我写了一个脚本,可以把代码格式化一下,这样在代码时就可以有层次了。原理很简单就是把一个制表符换成8个  。代码如下:
'百度发帖代码格式化工具——Script by Breakan
Dim objws,objargs,objfs,objf,objie
Set objws=WScript.CreateObject("wscript.shell")
Set objargs=WScript.Arguments
Set objfs=CreateObject("scripting.filesystemobject")
If objargs.Count=0 Then
         MsgBox "---请把源代码文件拖放到该脚本文件上---",0,"百度发帖代码格式化工具-help"
         WScript.Quit
End If
'获取源代码文件路径
Dim filepath
filepath=objargs.Item(0)
'检测源代码文件是否存在
If Not(objfs.FileExists(filepath)) Then
         MsgBox "文件不存在",0,"请重新拖放"
         WScript.Quit
End If
'检测源代码文件不为空
If objfs.GetFile(filepath).Size=0 Then
         MsgBox "文件为0字节",0,"请重新播放"
         WScript.Quit
End If
'格式化源代码
Set objf=objfs.OpenTextFile(filepath,1,False)
Dim codestr
codestr=Replace(objf.ReadAll,Chr(9),"        ",1,-1)
'把格式化后的代码复制到剪贴板
Set objie=WScript.CreateObject("internetexplorer.application")
objie.Navigate("about:blank")
objie.Document.parentwindow.clipboarddata.setdata "text",codestr
objie.Quit
MsgBox "代码已复制进剪贴板,请粘贴(Ctrl+V)发送",0,"代码格式化完毕"
有兴趣的朋友可以测试一下。呵呵。

2009年01月22日 12点01分 1
level 1
breakan 楼主
代码没显示对大家到我空间看吧。。。
http://hi.baidu.com/breakan/blog/item/6318efaf16a3f8fcfbed50ab.html
2009年01月22日 12点01分 2
level 1
breakan 楼主
因为代码里有& n b s p;这个字符串所以没显示出来。
2009年01月22日 12点01分 3
level 1
breakan 楼主
有人知道咋把& n b s p;这个字符串在贴吧正常显示出来不?
2009年01月22日 13点01分 4
level 13
 
2009年01月22日 13点01分 5
level 1
breakan 楼主
...怎么发的?
2009年01月22日 13点01分 6
level 1
breakan 楼主
&&&n&b&s&d&;
2009年01月22日 13点01分 7
level 1
breakan 楼主
 
2009年01月22日 13点01分 8
level 1
breakan 楼主
嗯,会了。再发一次文章。
2009年01月22日 13点01分 9
level 1
breakan 楼主
有时,在百度贴吧发帖或在知道回答别人问题时,经常会贴一些代码。但是由于这两个地方不支持制表符(TAB发送),当我们发送带有制表符的代码时会被自动替换为一个空格,所以我们发的代码会因为没有层次而显得很乱。就算代码写的再好看上去也像一堆垃圾,像这样:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
 出于这个原因我写了一个脚本,可以把代码格式化一下,这样在代码时就可以有层次了。原理很简单就是把一个制表符换成8个  。代码如下:
'百度发帖代码格式化工具——Script by Breakan
Dim objws,objargs,objfs,objf,objie
Set objws=WScript.CreateObject("wscript.shell")
Set objargs=WScript.Arguments
Set objfs=CreateObject("scripting.filesystemobject")
If objargs.Count=0 Then
        MsgBox "---请把源代码文件拖放到该脚本文件上---",0,"百度发帖代码格式化工具-help"
        WScript.Quit
End If
'获取源代码文件路径
Dim filepath
filepath=objargs.Item(0)
'检测源代码文件是否存在
If Not(objfs.FileExists(filepath)) Then
        MsgBox "文件不存在",0,"请重新拖放"
        WScript.Quit
End If
'检测源代码文件不为空
If objfs.GetFile(filepath).Size=0 Then
        MsgBox "文件为0字节",0,"请重新播放"
        WScript.Quit
End If
'格式化源代码
Set objf=objfs.OpenTextFile(filepath,1,False)
Dim codestr
codestr=Replace(objf.ReadAll,Chr(9),"        ",1,-1)
'把格式化后的代码复制到剪贴板
Set objie=WScript.CreateObject("internetexplorer.application")
objie.Navigate("about:blank")
objie.Document.parentwindow.clipboarddata.setdata "text",codestr
objie.Quit
MsgBox "代码已复制进剪贴板,请粘贴(Ctrl+V)发送",0,"代码格式化完毕"
有兴趣的朋友可以测试一下。呵呵。
2009年01月22日 13点01分 10
level 1
breakan 楼主
改进了一下,刚刚想到,如果是html代码其中有 字符串的话就会变成空格。代码如下:
'百度发帖代码格式化工具——Script by Breakan
Dim objws,objargs,objfs,objf,objie
Set objws=WScript.CreateObject("wscript.shell")
Set objargs=WScript.Arguments
Set objfs=CreateObject("scripting.filesystemobject")
If objargs.Count=0 Then
        MsgBox "---请把源代码
文件拖放到该脚本文件上---",0,"百度发帖代码格式化工具-help"
        WScript.Quit
End If
'获取源代码文件路径
Dim filepath
filepath=objargs.Item(0)
'检测源代码文件是否存在
If Not(objfs.FileExists(filepath)) Then
        MsgBox "文件不存
在",0,"请重新拖放"
        WScript.Quit
End If
'检测源代码文件不为空
If objfs.GetFile(filepath).Size=0 Then
        MsgBox "文件为0字
节",0,"请重新播放"
        WScript.Quit
End If
'格式化源代码
Set objf=objfs.OpenTextFile(filepath,1,False)
Dim codestr
codestr=Replace(objf.ReadAll," ","&nbsp;")
codestr=Replace(objf.ReadAll,Chr
(9),"      &
;nbsp; ",1,-1)
'把格式化后的代码复制到剪贴板
Set objie=WScript.CreateObject("internetexplorer.application")
objie.Navigate("about:blank")
objie.Document.parentwindow.clipboarddata.setdata "text",codestr
objie.Quit
MsgBox "代码已复制进剪贴板,请粘贴(Ctrl+V)发送",0,"代码格式化完毕"
2009年01月22日 13点01分 11
level 1
breakan 楼主
晕,发的乱七八糟的。大家还是进我空间看吧。。。
2009年01月22日 13点01分 12
level 0
 
2009年01月23日 03点01分 13
level 0
&&&n&b&s&p;
2009年01月23日 11点01分 14
level 0
&&&n&b&s&p;
2009年01月23日 11点01分 15
level 0
&&&n&b&s&p&;
2009年01月23日 11点01分 16
level 1
&#n&b&s&p;
2009年01月29日 04点01分 17
level 1
 
2009年01月29日 04点01分 18
level 1
 
2009年01月29日 04点01分 19
level 1
&n&b&s&p;
2009年01月29日 04点01分 20
1 2 3 4 5 尾页