当前位置:  编程技术>c/c++/嵌入式

美化你的代码 vb(VBS)代码格式化的实现代码

    来源: 互联网  发布时间:2014-10-11

    本文导语:  不过VB.NET确实有许多VB6没有的新功能,代码的自动排版就是一项,这也正是我们今天要实现的功能——VB代码格式化。 先看下实现的效果: 格式化前: 代码如下: For i = 0 To WebBrowser1.Document.All.length - 1 If WebBrowser1.Document.All(i).tag...

不过VB.NET确实有许多VB6没有的新功能,代码的自动排版就是一项,这也正是我们今天要实现的功能——VB代码格式化。
先看下实现的效果:

格式化前:

代码如下:

For i = 0 To WebBrowser1.Document.All.length - 1
If WebBrowser1.Document.All(i).tagName = "HTML" Then
strContent = strContent & WebBrowser1.Document.All(i).innerHTML
Exit For
End If
Next

格式化后:
代码如下:

For i = 0 To WebBrowser1.Document.All.length - 1
If WebBrowser1.Document.All(i).tagName = "HTML" Then
strContent = strContent & WebBrowser1.Document.All(i).innerHTML
Exit For
End If
Next

C++水平一直很烂,所以选择了C++作为练手语言写了这个简陋的VB代码格式化工具。代码不长,才200多行,标准C++实现。另外,为了彻底打消某些人继续使用VC6的念头,使用了auto关键字嘿嘿。好吧,废话少说,直接上代码:
代码如下:

#include
#include
#include
#include
#include
using namespace std;

//判断是否为空格
bool isSpace(const char chr)
{
return chr == ' ';
}

//去除左侧空白
void leftTrim(string &str)
{
string::iterator p=find_if(str.begin(),str.end(),not1(ptr_fun(isSpace)));
str.erase(str.begin(),p);
}

//去除右侧空白
void rightTrim(string& str)
{
string::reverse_iterator p=find_if(str.rbegin(),str.rend(),not1(ptr_fun(isSpace)));
str.erase(p.base(),str.end());
}

//去除两侧空白
string trim(const string& str)
{
string strRet(str);
leftTrim(strRet);
rightTrim(strRet);
return strRet;
}

//转换成小写
string toLower(const string& str)
{
string strRet(str);
transform(strRet.begin(),strRet.end(),strRet.begin(),(int (*)(int))tolower);
return strRet;
}

//判断是否以给定关键字开头
bool startWith(const vector& vecCodeKeywords,const string& strCodeLine)
{
string line(toLower(strCodeLine));
for(auto keyword=vecCodeKeywords.begin(); keyword!=vecCodeKeywords.end(); keyword++)
if(line.find(*keyword + " ")==0 || line== *keyword)
return true;
return false;
}

//IF...Then...特殊检查
bool checkForIfThen(const string& strCodeLine)
{
vector vecIf;
vecIf.push_back("if");
if(!startWith(vecIf,strCodeLine))
return false;
if(toLower(strCodeLine).find("then")==string::npos)
return false;
string line(trim(toLower(strCodeLine)));
if(line.length()

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jQuery下拉框美化插件 Select-or-Die
  • 美化Google Reader界面 Simplify Google Reader
  • 表单美化插件 Formee
  • jQuery表单美化和验证插件 Formly
  • 表单美化 Recurly.js
  • 下拉框美化插件 Select2
  • 迷你表单美化框架 Ideal Forms
  • 桌面美化和系统监视软件 Conky
  • jQuery 日期美化插件 jQuery prettydate
  • 快捷键美化 KeyBoarder
  • jQuery表单美化插件 Niceforms
  • jQuery表单美化插件 Uniform
  • Foobar2000美化增强版 Foobar2000 Css
  • RedHat9.0字体美化后,系统的程序的英文都很淡怎样解决?
  • HTML表单美化 formReForm
  • 字体美化问题
  • css不用图片美化按钮
  • 3个效果超酷的FORM表单美化效果 打包下载
  • C#中使用IrisSkin2.dll美化WinForm程序界面的方法
  • 我装了中文版的redhat7.3,并且经过了美化,为什么中文目录或者文件名都是乱码呢?小弟刚接触linux,望各位大侠多多指教,谢谢!!!




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3