解析文字字符串的问题。。

林夕合鸟 2015-09-07 04:09:42
C#中自己写了一个矩形类

public rect
{
public string Name{get;set;}
public string Text{get;set;}
public bool Visible{get;set;}

public Draw()
{绘制矩形边框 + 矩形中间显示Text内容}
}

在文本文件中:

<Rect Name="rect1">
<Programe>
<!--
if (rect1.Visible == true)
rect1.Text="显示啦!";
else
rect1.Text="隐藏啦";
-->
</Programe>
</Rect>

如何解析上面的文本,
创建一个类型为Rect的对象,同时实现
根据它的Visible属性来确定Text的内容。

希望大神可以给个思路。谢谢啦。
...全文
117 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
林夕合鸟 2015-09-07
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
有创意是好事,但是创意一定是基于学习现有的知识,排除掉异想天开之后的,才有意义 否则就只是异想天开罢了
这个肯定是可以实现的。
林夕合鸟 2015-09-07
  • 打赏
  • 举报
回复
实际上的程序肯定不是这样的,这个是写一个很简单的例子。 也不必追求每一个属性的含义。自己顺便拿来用一下而已。 大体的意思就是上面的描述。 我个人觉得关键是:解析这段字符串: 譬如 "." 的左面 我判断他是元件名。 然后我在List<Rect> RectLst(存放所有Rect的对象) 中查找对应名称的rect对象。 找到后 根据 "." 后面的内容 比较确定 哪一个属性 譬如内容为Text 则 对上面查找到的rect对象设置其Text属性值。 有点乱,不知道能否看懂。 这个可能有点类似于c# 本身的语法规则。 不知道有没有思路。谢谢啦。
林夕合鸟 2015-09-07
  • 打赏
  • 举报
回复
给大家一段代码:
public string _strCode;
        Rect tr;

        public Form1()
        {
            InitializeComponent();

            tr = new Rect(10, 10, 100, 40, this.Font)
            {
                Name = "rect1",
                Visible = true,
            };            

            //要处理的文本内容
            _strCode = "if(rect1.Visible==true) Text='显示了'; else Text='隐藏了'";

            //暂时将tr.Text="还没有处理"
            tr.Text = "还没有处理";

            this.Paint += delegate(object sender, PaintEventArgs e)
            {
                tr.Draw(e.Graphics);
            };

            using(Graphics g = this.CreateGraphics())
            {
                tr.Draw(g);
            };            
        }
长空X 2015-09-07
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
有创意是好事,但是创意一定是基于学习现有的知识,排除掉异想天开之后的,才有意义 否则就只是异想天开罢了
说的好。。
长空X 2015-09-07
  • 打赏
  • 举报
回复
看你上面的格式有点像XML的配置文件,你百度下C#解析XML文件,应该会对你有帮助
於黾 2015-09-07
  • 打赏
  • 举报
回复
有创意是好事,但是创意一定是基于学习现有的知识,排除掉异想天开之后的,才有意义 否则就只是异想天开罢了
  • 打赏
  • 举报
回复
<Rect Name="rect1" ShowText="显示啦!" HiddenText="隐藏啦"> </Rect> 你这样不就行了吗?为什么要有编译部分在里面?xml配置不是你那样用法的
於黾 2015-09-07
  • 打赏
  • 举报
回复
你这个矩形类居然没有坐标和宽高 那你所有画出来的矩形就都堆叠在一起了 还有,你的Visible属性难道不是控制绘图的吗,如果Visible==false,就应该不绘制了,隐藏了才对,为什么是改变文本?? 还有,你的文件里只应该存属性值,代码写到程序里来. 不要把代码写进文件里去.解读代码并执行,是很容易bug的
  • 打赏
  • 举报
回复
你的文本还真牛逼,你还要调用C#编译功能了……
  • 打赏
  • 举报
回复
你这个是控件还是什么? 绘图得有载体啊,要么你这个方法返回个Image对象

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧