翻译器解决了从sql到C#常常加入许多的 双引号, 简单的词法分析可以对sql代码进行格式化调整,每行长度70左右



format#region format
  private string formatString =string.Empty;
  private int index = 0;
  private StringBuilder sbword = new StringBuilder();
  char[] splitc = new char[]{' ','\t','\r','\n'};//',','=',
  char[] splituse = new char[]{',','='};
  private bool Insplitc(char[] splitc,char c)
  {
   for(int i=0;i<splitc.Length;i++)
   {
    if(c==splitc[i])
     return true;
   }
   return false;
  }
  private char Peek()
  {
   return Peek(1);
  }
  private char Peek(int i)
  {
   if(index+i>=formatString.Length)
    return '\0';
   return formatString[index+1];
  }
  /**//// <summary>
  /// 返回一个字符组,关键字或是 变量 或是字符串
  /// </summary>
  /// <returns></returns>
  private string GetAWord()
  {
   sbword.Remove(0,sbword.Length);
   int oldindex = index;
   char c;
   char pc;
  
   //跳过空白
   for(;index<formatString.Length;index++)
   {
    if(!Insplitc(splitc,formatString[index]))
     break;

   }


   oldindex =index;
   for(;index<formatString.Length;index++)
   {
    pc = Peek();

    c= formatString[index];
    if(Insplitc(splitc,c))
     break;
    if(Insplitc(splituse,c))
    {
     break;
    }
   }
   
   if(oldindex<index)
    return formatString.Substring(oldindex,index-oldindex);
   else// if(oldindex==index)
   {
    if(index<formatString.Length)
     return formatString[index++].ToString();
    else
     return "\n";
   }
    

  }
  #endregion

下载源代码

转载于:https://www.cnblogs.com/lxf120/archive/2008/01/04/1025767.html

[源码]C# to SQL 的翻译器.net 1.1版相关推荐

  1. SharingSphere 源码解析 -- 真实SQL生成探索

    SharingSphere 源码解析 – 真实SQL生成探索 简介 在上一篇文章中,我们探索了ShardingSphere JDBC Mybatis示例执行的一个大致的过程,找到了SQL处理的关键节点 ...

  2. 多多进鱼带VUE源码-任务悬赏网站源码-活动营销三级分销返佣积分商城版

    多多进鱼带VUE源码-任务悬赏源码-活动营销三级分销返佣积分商城版 (经检查代码不加密,开源) 源码大小:336MB 源码类型:PHP源码 显示语言: 简体中文 运行环境:PHP+MySQL+TP 这 ...

  3. PHP影视源码 米酷CMS影视系统6.27修复版

    介绍: PHP影视源码 米酷CMS影视系统6.27修复版 带安装教程 更新说明: 1.修复首页显示异常 2.修复娱乐播放页显示异常 3.修复电影页面显示异常 4.移动端增加美拍链接 5.修复YY采集失 ...

  4. h5app多功能商城源码可二开微信小程序商城开源版分享

    基于ThinkPhp6.0+uniapp 开发的一套新零售商城系统.集客户关系管理+营销电商系统,能够真正帮助企业基于微信公众号.小程序.wap.pc等,实现会员管理.数据分析,精准营销的电子商务管理 ...

  5. 小程序源码:社群微群人脉系统小程序版本源码下载带流量主功能实现广告效益

    现在因为小编在实现新版本的功能添加与更新 所以小编就把这一款开源分享给大家吧! 分享出来考虑到大家服务器等等效益所以小编就把后台给砍掉了 所以大家就直接前端上传到微信开发者工具即可使用 本款小程序群二 ...

  6. 微群人脉升级版系统源码社群运营人脉无需授权独立开发版

    微群人脉升级版系统源码社群运营人脉无需授权独立开发版 微群人脉升级版系统源码无需授权独立开发版 微群人脉升级版系统源码无需授权独立开发版 自己独立开发,前台H5公众号,后台 FastAdmin超和谐后 ...

  7. 人生重开模拟器微信小程序源码下载开启不一样的人生体验+网站版本源码双版本

    这是一款人生重开模拟器微信小程序源码 让你的人生开启不一样的变化 不知道各位玩家有没有被最近超火的一款名为<人生重开模拟器>小游戏刷屏呢?想必不少玩家玩过了各种各样的模拟器,有的可以模拟医 ...

  8. sharding-jdbc源码解析之sql解析

    2019独角兽企业重金招聘Python工程师标准>>> 说在前面 本文转自"天河聊技术"微信公众号 本次介绍的是sharding-jdbc的源码解析部分的sql解 ...

  9. 淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树

    http://blog.csdn.net/qq910894904/article/details/28658421 OceanBase是阿里巴巴集团自主研发的可扩展的关系型数据库,实现了跨行跨表的事务 ...

最新文章

  1. 一文带你了解卷积神经网络基础,建议收藏
  2. 十个最值得阅读学习的C开源项目代码
  3. android ViewPager滑动事件讲解
  4. MCMC笔记:MCMC的不足
  5. 抽象工厂和工厂方法示例_工厂方法设计模式示例
  6. linux定时任务每两天执行,Linux定时任务 crontab每秒执行 实现2种方法
  7. ssm校园帮代服务系统的设计与实现答辩PPT模板
  8. Python文件之----CSV
  9. ubuntu字体丑_科学网—关于ubuntu系统的一点经验——字体崩溃 - 苗玉虎的博文
  10. 飞鸽传书linux运行,Linux下飞鸽传书实现
  11. 计算机专业的学生也太太太太太惨了吧?
  12. Iphone版同步推闪退问题
  13. ubuntu16.04火狐浏览器B站提示下载flash插件
  14. 方差公式初三_九年级同步数学公式:方差公式(3)
  15. Python爬虫(4)-Selenium模拟鼠标操作
  16. 第三章 隐藏通信隧道技术
  17. 计算机配置更新太慢,电脑更新速度慢怎么办
  18. 视觉工程师笔试知识汇总
  19. 电脑安装软件时,如何避免捆绑安装?
  20. NOWCODER wyh的天鹅(vector暴力)

热门文章

  1. luogu P1462 通往奥格瑞玛的道路
  2. 如何激活windows的远程终端
  3. 产生滚动条时JPanel的大小发生变化
  4. [asp.net mvc]自定义filter
  5. high performance web sites 阅读小记
  6. Eclpise 和 MyEclipse 的区别
  7. 109. 有序链表转换二叉搜索树
  8. java开闭原则代码实现_如何提高你的代码设计能力?
  9. java插入法排序_java算法之插入排序法
  10. java m查询_信息查询系统,基于SSM框架的JAVA系统