2011年,也就是去年3,4月份写的东西了

当时是帮一个朋友做的,现在这个东西已经没什么用了

在博客这里甩出来吧

其实,这个程序到底拿来干什么用的,

身为作者的我也不是十分清楚,而只是按照朋友口述的需求把程序做了出来。

这个程序的大概功能是:

有一种路由器叫:ROS,它的各种设置可以用脚本来描述

我的程序的功能就是提供一个可视化的界面来更新、解析、编辑、输出ROS路由器的脚本

程序分为2端:客户端,服务器端

客户端功能:载入,解析,编辑,输出本地ROS脚本,并可以连接服务器程序更新最新的脚本文件。

服务端功能:就是供客户端程序同步脚本文件之用。

开发环境:VS2008,C++,MFC

可执行下载:http://download.csdn.net/detail/stevenkylelee/4447126

源代码下载:http://download.csdn.net/detail/stevenkylelee/4447149

那种ROS脚本的“样貌”大概如下:

看起来挺乱的是吧,其实这种脚本的格式是很有规律的。

(至于什么规律,这里就不多说了,下载我的程序自己用记事本开打*.rsc文件仔细观察,不难就会发现)

值得一提的是,这种脚本对于中文有它自己的一套编码方式,

例如:字符串"\BD\A3\CF\C0\B7\A1\CD\E2\B4\AB"实际代表的是"剑侠贰外传"。

关于ROS脚本的中文问题,我在客户端写有相应的类和工具来进行编码和解码。

下图,是把一个ROS脚本文件拖曳到客户端界面后的样子

这个就是ROS脚本的可视化界面了。

ROS的一个脚本文件中,可以包含N个页面。

在菜单栏下,有一个Tab控件,用于动态地显示解析到的ROS脚本的所有页面。

上图查看的是queue tree设置页面。

ROS的大多数页面都是表示线性结构内容的,但queue tree页面表示的是一种树形结构。

因为MFC没有 树形+列表视图 组合起来的控件

我就只有使用ListView的第一列的内容的缩进来表示树形关系了。- -

随便说下,ListView上的”最大“,”最小“列名也是根据脚本内容动态解析出来然后创建的。

下图是显示 ip firewall mangle 页面内容的样子:

其实ListView控件最初是没有列和行的。

上图看到的内容,包括ListView的列头(一堆列名),

都是根据ROS脚本解析出来的结果动态创建的。

呵呵。观察ROS脚本找寻它的规则和格式,写解析算法,耗费了我好多精力和时间。

(当时其实也是想练手下刚学会的FSM思想)

用C#写会比C++简单,因为STL的string类并不很好用,而MFC的CString也好不到哪里去

它俩连最起码的Split都没有,害哥还得自己实现这个非常基础的字符串操作算法,日了。

MFC做界面是很蛋疼的,C#的Winform控件都有个Anchor属性,

这个属性的作用是当窗口大小发生改变时,动态地改变相应控件的位置和大小。

MFC中没有现成的东西实现这个功能,要实现这个功能的话,就只有自己写!

(随便说下,去年国庆节前,面试上海巨人集团,当时面试题就出了类似这样需求的一题,

我直接把这个项目,实现这个功能的那个类发给他们!

呵呵。当然,最后是拿到了offer,而我最终没有过去)

下图是服务器端界面,和客户端程序一样。

它也可以根据改变窗口的大小适当地调整其控件的位置和大小

前面也说了,服务器程序它的作用就是提供更新服务器。

所以,其实它没窗口界面也是可以的。

最后说明一下我的源代码吧

源代码有一个叫“SCL”的目录,SCL是Steven Class Library的缩写,哈哈。

这个目录放的是当时我自己写一个C++类库,以源代码的形式。

我自己的这个类库模仿了C#.net类库的设计

封装了Tcp通信类,文件映射类,字符串操作类(自己扩展了一些诸如Split等操作),

Ini文件读写类,网卡信息获取类,防Winform的Anchor属性的类 等。

当然,所有的类的实现,都是用STL或者Win32 Api的。

如果,你对我做的这个程序不太感兴趣,

也不妨看看我写的那些“自认为有可复用性的基础类”吧

说不定,对你会有一些帮助或启示。:)

转载于:https://www.cnblogs.com/StevenKyleLee/archive/2012/07/23/3170253.html

ROS路由器脚本文件编辑更新器相关推荐

  1. 简要叙述matlab的含义,1,简述MATLAB组成部分? 2,说明使用M文件编辑/调试器的方法和优点? 3,存储在工作空间中的数组能编辑吗...

    匿名用户 1级 2012-05-17 回答 我也考这个....祝你好运 1,简述MATLAB组成部分? (1)开发环境(development Environment); (2)MATLAB数学函数库 ...

  2. [ROS] sh脚本文件,source : not found问题

    新建一个脚本文件,在首行写上 #!/bin/bash 然后换行,写上想要source的bash文件,例如: source /opt/ros/kinetic/setup.bash 然后报错: xxx.s ...

  3. 传奇服务器脚本文件在哪个文件夹,传奇服务端各个文件夹目录结构详细说明表...

    MirServer---传奇服务端主目录 DBServer---数据库网关 Hum.DB---角色数据库 Mir.DB---游戏数据库 MIr.DB.idx---游戏数据库索引文件(可删除每次启动会自 ...

  4. 海康visionMaster4.1二维码识别/检测之脚本文件的调试

    关键词:脚本文件调试:海康visionMaster4.1:二维码识别 介绍脚本文件调试之前,先说一个"二维码识别"模块的有趣的点. Tips:"二维码识别"模块 ...

  5. VScode检测到#include 错误,请更新includepath。已为此翻译单元 禁用波形曲线//gcc : 无法将“gcc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

    VScode检测到#include 错误,请更新includepath. 可能会遇到的问题: 1. VScode检测到#include 错误,请更新includepath. 2.gcc : 无法将&q ...

  6. 案例分享:Qt出版社书籍配套U盘资源播放器软件定制(脚本关联播放器与资源文件,播放器,兼容win7,win10和mac)

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115919546 长期持续带来更多项目与技术分 ...

  7. 链接器ld程序的脚本文件u-boot.lds(二)

    目的:了解链接器用到的脚本文件u-boot.lds. 在开始这篇博文之前,需要先了解一些GNU linker script的基本知识,可以参考博主的另外一篇分享<GNU linker scrip ...

  8. 解决VScode安装Babel转码器报错:无法将“cnpm“项识别为cmdlet\函数、脚本文件或可运行程序的名称的问题

    解决VScode安装Babel转码器报错:无法将"cnpm"项识别为cmdlet\函数.脚本文件或可运行程序的名称的问题 报错结果如下: 解决方案 第一步:安装npm 点我安装np ...

  9. 【Windows包管理器(choco)】choco : 无法将“choco”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。

    问题描述 choco : 无法将"choco"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次. 所在位置 ...

  10. STM32H7链接器脚本文件分析

    一.链接器脚本文件的作用 1. 设置入口函数,ROM.RAM的起始位置及大小. 2. 对一些特殊的文件添加配置链接选项. 二..LD文件详解 以STM32H743XIHx_FLASH.ld 为例,增加 ...

最新文章

  1. LabVIEW保存、读取配置文件
  2. 遭遇Web print
  3. 面试官,别再问高并发了!
  4. php 计算几分钟_几天前 _几月前 几年前,php计算几分钟前、几小时前、几天前的几个函数...
  5. 关闭Outlook时最小化
  6. VTK:PolyData之TransformOrderDemo
  7. 数据库作业[定时执行任务]的创建
  8. C++ 模板的局限性以及解决01
  9. p1292监狱(动态规划)
  10. 有人培训设计模式,吾表示难以理解,因为根本没用
  11. Svn插件提交比较慢的解决方法
  12. 软件测试工程师简历项目经验怎么写
  13. android ios 在线图标生成器
  14. 生动理解java接口
  15. 垂直居中对齐四种样式
  16. IDempiere 富文本编辑器优化
  17. Sql的行列(纵横表)转换
  18. 从MapGIS K9到MapGIS 10到MapGIS 10.3 Server
  19. IE6下iframe里打开页面出现无法打开internet站点错误
  20. TechSmith Camtasia2022屏幕视频录像

热门文章

  1. 简体生僻汉字大全21418个-GBK编码中的汉字
  2. UEFI学习——使用gRT->GetVariable读取Setup选项值
  3. 利用canvas制作乱跑的小球
  4. VS2010 .net4.0 登录QQ 获取QQ空间日志 右键选中直接打开日志 免积分 源码下载
  5. 摄像机标定之四大坐标系之间转换关系详解
  6. 《现代控制系统》第四章——反馈控制系统特性 4.1 介绍
  7. [RQNOJ PID85]三个袋子 {快速幂 or 矩阵乘法}
  8. java小说网站源码_基于java的小说网站代码(全)
  9. python写入excel数据教程_python实现数据写入excel表格
  10. python爬取凤凰新闻_python爬虫凤凰网新闻