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
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,"代码格式化完毕"
有兴趣的朋友可以测试一下。呵呵。