自动生成c语言代码,python 自动生成代码

  自动生成c语言代码,python 自动生成代码

  这篇文章介绍了大蟒实现C代码生成器的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  

遇到的问题

  工作中遇到这么一个事,需要写很多C的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错;而借用大蟒的代码自动生成,可以轻松搞定;

  (类比爪哇岛中的冬眠自动生成的数据库底层操作代码)

  下面介绍使用大蟒字符串替换的方法;

  

Python字符串替换的几种方法

  

1. 字符串替换

  将需要替换的内容使用格式化符替代,后续补上替换内容;

  模板=您好%s,您的网站是% s“%(”大抄送, http://blog.me115.com )

  打印(模板)

  也可使用格式函数完成:

  template=hello {0},您的网站是{1}。格式(大抄送, http://blog.me115.com )

  打印(模板)

  注:该方法适用于变量少的单行字符串替换;

  

2. 字符串命名格式化符替换

  使用命名格式化符,这样,对于多个相同变量的引用,在后续替换只用申明一次即可;

  模板=你好%(名称)s,你的名字是%(姓名),你的网站是%(消息)s“% {”名称“:”大抄送,消息 : http://博客。我115。com }

  打印(模板)

  使用格式函数的语法方式:

  模板=你好{name},你的名字是{name},你的网站是{邮件} .格式(名称=大抄送,message=http://blog.me115.com )

  打印(模板)

  注:适用相同变量较多的单行字符串替换;

  

3.模版方法替换

  使用线中的模板方法;

  从字符串导入模板

  tempTemplate=string .模板("你好$name,你的网站是$message”)

  打印(临时模板。替换(名称=大CC ,message=http://blog.me115.com ))

  有了模版方法后,就可以将模版保存到文件单独编辑,在生成的地方替换为需要的变量;

  

示例:代码生成

  这个示例使用以上讲到的第三种方法;

  建立一个模版文件,里面需要替换的内容使用${}变量替换;

  道_cpp .模板

  ///

  ///@class ${CLASSNAME}

  ///@brief Redis底层接口类操作${TABLE_NAME}表

  ///TABLE ${TABLE_NAME_UPPER}

  ///@作者道_cpp_generator.py

  ///@生成日期: ${GENE_DATE}

  ///[注:本文件为自动生成,不需要人为编辑,若有修改,请通过配置巴拉圭脚本来重新生成。]

  # include“$ { class name } .” h

  # include include/$ { TABLE _ NAME } _ t . h

  #include RedisManager.h

  #include common/LogMacros.h

  # include common/string utility/otherstringfunc。 h

  #include common/DateTime.h

  命名空间redisdao

  #定义主键${PRIMER_KEY}

  const string $ { class NAME } : TABLE _ NAME=" $ { TABLE _ NAME } ";

  const string $ { class name } : TABLE _ ID=" $ { TABLE _ ID } ";//在数据库中的表的唯一性标识符

  const string $ { class name } : KEY _ sepa reter= $ { KEY _ sepa reter } ;

  $ { class name } : $ { class name }(无效)

  {

  if (0==m_reHandler .EnsureConnect())

  m _ bRedisConnected=true

  其他

  m _ bRedisConnected=false

  }

  $ { class name } : ~ $ { class name }(void)

  {

  }

  int $ { class name } :插入记录(常量字符串strVal)

  .

  大蟒代码生成程序:

  cpp_generator.py

  #!/usr/bin/env python

  #编码=utf-8

  #Redis底层操作类卡片打印处理机(卡片打印处理器的缩写)文件生成程序(*RedisDao.cpp)

  #作者me115@126.com 2014年7月22日

  导入操作系统、系统、资源、回溯

  从日期时间导入日期时间

  从字符串导入模板

  类别DaoCppGenerator:

  定义生成(自身):

  tableName=学生

  类名= % sRedisDao % tablename。资本()

  文件路径=r include/% s . CPP %类名

  class_file=open(文件路径, w )

  lines=[]

  #模版文件

  template _ file=open(r Dao _ CPP。模板, r )

  tmpl=模板(template_file.read()

  #模版替换

  lines.append(tmpl.substitute(

  CLASSNAME=className,

  TABLE_NAME=tableName,

  TABLE _ NAME _ UPPER=tablename。UPPER(),

  GENE_DATE=datetime.now()。strftime(“% Y-% m-% d % h :% m :% S”),

  TABLE_ID=115 ,

  EXPIRE_DATE=06JUN14 ))

  # 0.将生成的代码写入文件

  class_file.writelines(行)

  class_file.close()

  “打印”生成%s结束。~ ~ % filePath

  有了这个程序和一堆XML配置文件,就可以轻松生成各种C程序代码。

  这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: