易语言通过文本解析的方式把C代码转换成易代码

常量数据表

.版本 2
.常量 c, "<文本长度: 759>", , '常量值是一段C代码

C代码转易代码

.版本 2
.支持库 commobj
.支持库 iext2
.程序集 窗口程序集_启动窗口
.程序集变量 k, 快速文本对象
.程序集变量 k2, 快速文本对象
.子程序 __启动窗口_创建完毕
.局部变量 z, 字符格式
z.字体大小 = 8
z.字体名称 = “微软雅黑”
d1.置默认字符格式 (z)
d2.置默认字符格式 (z)
d1.内容 = #c
.子程序 替换_程序命名, 文本型
.参数 str, 文本型
.局部变量 替换到
.局部变量 位置1
.局部变量 位置2
.局部变量 s, 文本型, , "0"
.局部变量 s2, 文本型, , "0"
.局部变量 替换, 文本型, , "0"
.局部变量 替换为, 文本型, , "0"
.局部变量 参考数组, 文本型
.局部变量 i
k.置文本 (str)
位置1 = k.寻找文本 (“void”, , 假)
.如果真 (位置1 = -1)
  返回 (str)
.如果真结束
位置2 = k.寻找文本 (“{”, 位置1, 假)
k2.置文本 (k.取文本 (位置1, 位置2 - 位置1))
k2.替换子文本 (#换行符, “”, , , 假)
k2.替换子文本 (“void”, “.子程序”, , , 假)
k2.替换子文本 (“,”, #换行符, , , 假)
k2.替换子文本 (“(”, #换行符, , 1, 假)
位置1 = k2.倒找文本 (“)”, , 真)
.如果真 (位置1 ≠ -1)
  k2.替换文本 (位置1, 1, “”)
.如果真结束
str = “”
s = k2.分割文本 (#换行符, )
.计次循环首 (取数组成员数 (s), i)
  s2 = 分割文本 (删首尾空 (s [i]), “ ”, )
  .如果 (取文本右边 (s2 [2], 1) = “]”)
    s2 [2] = 文本_最右标识取左 (s2 [2], “[”)
    参考数组 = “, 数组”
  .否则
    参考数组 = “”
  .如果结束
  .如果真 (取文本左边 (s2 [2], 1) = “(”)
    s2 [2] = 文本_按前两标识取中 (s2 [2], “(&”, “)”)
    参考数组 = “, 参考 数组”
  .如果真结束
  .如果真 (取文本左边 (s2 [2], 1) = “&”)
    s2 [2] = 取文本右边 (s2 [2], 取文本长度 (s2 [2]) - 1)
    参考数组 = “, 参考”
  .如果真结束
  .判断开始 (s2 [1] = “float”)
    str = str + “.参数 ” + s2 [2] + “, 小数型” + 参考数组 + #换行符
  .判断 (s2 [1] = “int” 或 s2 [1] = “long”)
    str = str + “.参数 ” + s2 [2] + “, 整数型” + 参考数组 + #换行符
  .判断 (s2 [1] = “string”)
    str = str + “.参数 ” + s2 [2] + “, 文本型” + 参考数组 + #换行符
  .判断 (s2 [1] = “short”)
    str = str + “.参数 ” + s2 [2] + “, 短整数型” + 参考数组 + #换行符
  .默认
    str = str + s [i] + #换行符
  .判断结束
.计次循环尾 ()
返回 (str)
.子程序 替换_索引数字累加, 文本型
.参数 文本, 文本型
.局部变量 i1
.局部变量 i2
.局部变量 k0, 快速文本对象
k0.置文本 (文本)
.循环判断首 ()
  i1 = k0.寻找文本 (“[”, i2, 真)
  .如果真 (i1 = -1)
    跳出循环 ()
  .如果真结束
  i1 = i1 + 1
  i2 = k0.寻找文本 (“]”, i1, 真)
  .如果真 (i2 = -1)
    跳出循环 ()
  .如果真结束
  .判断开始 (到整数 (k0.取文本 (i1, i2 - i1)) > 0)
    k0.替换文本 (i1, i2 - i1, 到文本 (到整数 (k0.取文本 (i1, i2 - i1)) + 1))
  .判断 (到字节集 (k0.取文本 (i1, i2 - i1)) = { 48 })
    k0.替换文本 (i1, 1, “1”)
  .默认
  .判断结束
.循环判断尾 (真)
返回 (k0.取文本 (, ))
.子程序 替换_注释, 文本型
.参数 文本, 文本型
.局部变量 i1
.局部变量 i2
k2.置文本 (文本)
.循环判断首 ()
  i1 = k2.寻找文本 (“//”, i2, 真)
  .如果真 (i1 = -1)
    跳出循环 ()
  .如果真结束
  i2 = k2.寻找文本 (#换行符, i1, 真)
  .如果真 (i2 = -1)
    跳出循环 ()
  .如果真结束
  k2.替换文本 (i1, i2 - i1, “'” + k2.取文本 (i1 + 2, i2 - i1 - 2) + “;”)
.循环判断尾 (真)
返回 (k2.取文本 (, ))
.子程序 替换_按行, 文本型
.参数 文本, 文本型
.局部变量 s, 文本型, , "0"
.局部变量 f, 文本型, , "0"
.局部变量 i
s = 分割文本 (文本, #换行符, )
文本 = “”
.计次循环首 (取数组成员数 (s), i)
  s [i] = 删首尾空 (s [i])
  .判断开始 (取文本左边 (s [i], 6) = “float ”)
    f = 分割文本 (s [i], “float ”, )
    文本 = “.局部变量 ” + 文本_按前两标识取中 (s [i], “float ”, “=”) + “,小数型” + #换行符 + 文本 + f [2] + #换行符
  .判断 (寻找文本 (s [i], “*=”, , 假) ≠ -1)
    f = 分割文本 (s [i], “*=”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “*” + f [2] + #换行符
  .判断 (寻找文本 (s [i], “/=”, , 假) ≠ -1)
    f = 分割文本 (s [i], “/=”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “/” + f [2] + #换行符
  .判断 (寻找文本 (s [i], “+=”, , 假) ≠ -1)
    f = 分割文本 (s [i], “+=”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “+” + f [2] + #换行符
  .判断 (寻找文本 (s [i], “-=”, , 假) ≠ -1)
    f = 分割文本 (s [i], “-=”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “-” + f [2] + #换行符
  .判断 (取文本右边 (s [i], 2) = “++”)
    f = 分割文本 (s [i], “++”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “+1” + #换行符
  .判断 (取文本右边 (s [i], 2) = “--”)
    f = 分割文本 (s [i], “--”, )
    文本 = 文本 + f [1] + “= ” + f [1] + “-1” + #换行符
  .默认
    文本 = 文本 + s [i] + #换行符
  .判断结束
.计次循环尾 ()
返回 (文本)
.子程序 替换_函数, 文本型
.参数 代码, 文本型
.局部变量 i
.局部变量 原, 文本型, , "0"
.局部变量 到, 文本型, , "0"
k2.置文本 (代码)
原 = { “/”, “*”, “sqrtf”, “cosf”, “sinf” }
到 = { “÷”, “×”, “求平方根”, “求余弦”, “求正弦 ” }
.计次循环首 (取数组成员数 (原), i)
  k2.替换子文本 (原 [i], 到 [i], , , 假)
.计次循环尾 ()
返回 (k2.取文本 (, ))
.子程序 _转换钮_被单击
.局部变量 s, 文本型
d2.内容 = 替换_程序命名 (文本_按标识取左 (d1.内容, “{”))
s = 文本_按两边标识取中 (d1.内容, “{”, “}”)
s = 替换_注释 (s)
s = 替换_索引数字累加 (s)
s = 子文本替换 (s, #换行符, “”, , , 真)
s = 子文本替换 (s, “;”, #换行符, , , 真)
s = 替换_按行 (s)
s = 替换_函数 (s)
d2.内容 = d2.内容 + s
.子程序 文本_最右标识取左, 文本型, 公开
.参数 文本, 文本型
.参数 最右标识, 文本型
返回 (取文本左边 (文本, 倒找文本 (文本, 最右标识, , 假) - 1))
.子程序 文本_按标识取左, 文本型, 公开
.参数 文本, 文本型
.参数 标识, 文本型
返回 (取文本左边 (文本, 寻找文本 (文本, 标识, , 假)))
.子程序 文本_按前两标识取中, 文本型, 公开
.参数 文本, 文本型
.参数 标识_左, 文本型
.参数 标识_右, 文本型
.局部变量 i
.局部变量 r, 快速文本对象
r.置文本 (文本)
i = r.寻找文本 (标识_左, , 假)
.如果真 (i = -1)
  返回 (文本)
.如果真结束
i = i + 取文本长度 (标识_左)
返回 (r.取文本 (i, r.寻找文本 (标识_右, i, 假) - i))
.子程序 文本_按两边标识取中, 文本型, 公开
.参数 文本, 文本型
.参数 标识_左, 文本型
.参数 标识_右, 文本型
.局部变量 i
.局部变量 r, 快速文本对象
r.置文本 (文本)
i = r.寻找文本 (标识_左, , 假)
.如果真 (i = -1)
  返回 (文本)
.如果真结束
i = i + 取文本长度 (标识_左)
返回 (r.取文本 (i, r.倒找文本 (标识_右, , 假) - i))

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 实例讲解易语言取文本中间自定义子程序

    我们先看下代码: 版本 2 .子程序 取文本中间内容, 文本型 .参数 完整内容, 文本型 .参数 左边文本, 文本型 .参数 右边文本, 文本型 .局部变量 临时位置, 整数型 .局部变量 总长度, 整数型 .局部变量 返回结果, 文本型 总长度 = 取文本长度 (完整内容) 临时位置 = 寻找文本 (完整内容, 左边文本, , 假) + 取文本长度 (左边文本) 返回结果 = 取文本中间 (完整内容, 临时位置, 总长度) 总长度 = 取文本长度 (返回结果) 临时位置 = 寻找文本 (返回

  • 易语言批量取文本中间代码总结

    我们在用易语言编写软件和插件的时候,经常需要从文本的中间取值和内容,以下就是相关的操作代码: 用到精益模块 方法如下: .版本 2 ' 取58的网址 文本_取中间_批量 (编辑框1.内容, "左边内容", "右边内容", 网页数组, ) 大家参考下,可以去测试,感谢大家对我们的支持.

  • 易语言超文本浏览框取真实句柄方法

    很多朋友想做网页 鼠标键盘后台消息的软件,但是苦于找不到超文本浏览狂的真实句柄. 如果你用 超文本浏览框.取窗口句柄() 那么你取到的是图1的句柄,这个句柄是无法操作的 图中2的句柄才是真正可以发送消息和模拟操作的句柄,也是用窗口助手真正查到的句柄 具体操作看下图. 用的是精易模块的窗口枚举所有子窗口命令 然后匹配出类名为"Internet Explorer_Server"的那个句柄就是真实句柄了. 感谢大家对我们的支持,如果大家在学习中有任何问题可以联系小编.

  • 易语言使用超文本显示新浪天气预报的代码

    常量数据表 .版本 2 .常量 v1, "<文本长度: 24>", , <p class="inx_w_city_c"> .常量 K, "<文本长度: 8>", , url=http .常量 J, "<文本长度: 47>", , <a href="http://share.sina.cn/callback?content= .常量 v2, "<文本

  • 详解易语言文本的创建和追加实现方法

    文本的创建和追加 就是往一个文本写内容 文件格式常用为:*.txt,*.csv 在易语言中创建文本的命令,就是:写到文件(),要追加文本,思路上就是先把文件中的数据读入变量,再把要追加的文本加在变量中,一起写到文件就是了. 具体的代码如下: 大家可以参考下上面的代码写法,感谢大家对我们的支持.

  • 易语言实现批量文本替换操作的代码

    批量文本替换机的代码 .版本 2 .支持库 iext .支持库 shell .支持库 xplib .程序集 窗口程序集1 .程序集变量 搜寻位置, 整数型 .程序集变量 当前被搜寻文本, 文本型 .程序集变量 起始 .程序集变量 sj1 .程序集变量 sj2 .子程序 _驱动器框_驱动器被改变 连续赋值 (驱动器框.驱动器 + ":\", 目录框1.目录, 文件框1.目录) .子程序 _目录框1_目录被改变 文件框1.目录 = 目录框1.目录 .子程序 _文件框1_双击选择 待替换文件

  • 易语言通过文本解析的方式把C代码转换成易代码

    常量数据表 .版本 2 .常量 c, "<文本长度: 759>", , '常量值是一段C代码 C代码转易代码 .版本 2 .支持库 commobj .支持库 iext2 .程序集 窗口程序集_启动窗口 .程序集变量 k, 快速文本对象 .程序集变量 k2, 快速文本对象 .子程序 __启动窗口_创建完毕 .局部变量 z, 字符格式 z.字体大小 = 8 z.字体名称 = "微软雅黑" d1.置默认字符格式 (z) d2.置默认字符格式 (z) d1.内容

  • 易语言的命名及启动方式

    易语言的命名约定 在易语言应用程序的编写过程中,用户涉及到定义各类名称,如:子程序名.变量名.数据类型名等等,这些名称的命名规则为:名称的首字母必须为全半角字母或汉字,其它字符必须为全半角字母.全半角数字或者汉字.虽然名称中允许半角字符"_"存在,但它被保留为系统专用,因此不要使用.与其它的编程语言相比,易语言的命名规则有以下特点: 无长度限制,用户可以尽情地使用长名称来进行名称描述: 永远不会与易语言的关键字产生冲突.譬如:现已存在"如果"命令,但用户仍然可以定义

  • 易语言通过按键模拟的方式实现QQ后台加人加群的代码

    DLL命令表 .版本 2 .DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA" .参数 lpModuleName, 文本型 .DLL命令 GetDesktopWindow, 整数型, "user32.dll", "GetDesktopWindow" .DLL命令 CreateToolhelp32Snapshot, 整数型, "kernel32"

  • 易语言对文本操作的步骤教学

    在易语言编程中,我们往往需要对一些文字进行截取或分割出来,如何准确.快速的实现这一目标呢?下面笔者来为大家演示 1.首先,我们打开易语言编程软件,点击左上角,新建一个文件,如图所示 2.我们点击新建后,会弹出一个对话框,我们选择要创建的类型,在此选择Windows窗口程序,如图所示 3.我们在新创建好的界面上放置编辑框.静态文本.按钮.列表框等组件,界面布局如图所示 4.首先,我们来实现获取功能,也就是用第二个编辑框所输入的文本来分割前一个编辑框中输入的内容,代码如图所示 5.我们将提取到的文本

  • 易语言查找文本的方法

    日常工作中,要查找指定文本段中的某个字词,我们有很多方法,比如:使用记事本.Word等软件的查找功能,都是可以实现的 1.首先,运行易语言主程序,在弹出"新建工程"文件对话框中,选择"Windows窗口程序"并点击"确定"按钮.进入,"Windows窗口程序"设计界面. 2.然后,在已创建好的"Windows窗口"上,绘制编辑框组件两个.按钮组件一个,调整好各组件的相对位置,以适应窗口.如图: 3.修改各组

  • 易语言查找文本的制作教学

    易语言寻找文本,这个命令,对于制作搜索软件很有用,我教大家操作. 1.易语言新建一个windows窗口 点击进入代码编辑区 具体看如何用易语言编写自己第一个程序? 2.我们输入这个命令 寻找文件 (, ) 3.展开这个命令 发现这个命令有2个参数 4.第一个参数就是寻找的文件名或者目录,我们输入"C:\Users\Administrator.000\Desktop\*.*" 第二个参数就是文件属性,我们可以省略 5.我们运用调试输出这个函数 具体看易语言调试输出函数实例详解 输入调试输

  • 易语言源码被腾讯TP破坏后修复的代码

    DLL命令表 .版本 2 .DLL命令 CopyTo_系统信息段, , , "RtlMoveMemory" .参数 Dest, 系统信息段 .参数 Src, 字节集 .参数 Length .DLL命令 CopyTo_SectionInfo, , , "RtlMoveMemory" .参数 Dest, _SectionInfo .参数 Src, 字节集 .参数 Length .DLL命令 CopyFrom_SectionInfo, , , "RtlMoveM

  • 易语言到文本命令将其它数据类型转换为文本型

    到文本命令 英文命令:str 操作系统支持:Windows.Linux    所属类别:文本操作 返回一个文本,代表指定数值.逻辑值或日期时间被转换后的结果.如果为文本数据,将被直接返回. 语法:  文本型  到文本 (待转换的数据) 例程 说明 通过"到文本"命令将其他数据类型的数据转换为文本型. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言删除文本中的全部空格功能

    删全部空命令 英文命令:TrimAll 操作系统支持:Windows.Linux    所属类别:文本操作 返回一个文本,其中包含被删除了所有全角或半角空格的指定文本. 语法:  文本型  删全部空 (欲删除空格的文本) 例程 说明 通过"删全部空"命令将一段文本中的空格全部删除. 例如:" 这里 既有全角 空格,     也有半角 空格.    "删除全部空格后的结果是:"这里既有全角空格,也有半角空格.". 运行结果: 总结 以上就是这篇文章

  • 易语言将文本按照指定字符分割的代码

    分割文本代码 .版本 2 .程序集 窗口程序集1 .程序集变量 是否修改, 逻辑型 .程序集变量 文本数组, 文本型, , "0" .程序集变量 数组成员数, 整数型 .子程序 _编辑框1_内容被改变 是否修改 = 假 .子程序 _分割按钮_被单击 .局部变量 点击次数, 整数型, 静态 .局部变量 文本, 文本型 .局部变量 显示文本, 文本型, , "0" .如果真 (是否修改 = 假) 文本数组 = 分割文本 (编辑框1.内容, #换行符, ) 数组成员数 =

随机推荐