比如一txt文件中含有如下的3行字符串:
if a<=4 then x=1
if a>4 and b<5 then x=2
if a>4 and b>5 then x=3现在需要分析这些字符串,将其解析成程序代码,这样当我输入a、b值的时候就可以得出x的值。高手帮忙解答,不甚感激。

解决方案 »

  1.   

    对于这种,用字符串替换解决。
    string str = "if a<=4 then x=1";
    ->
    str = str.Replace("if","if (");
    str = str.Replace(" then",")");
      

  2.   

    if a<=4 then x=1
    if a>4 and b<5 then x=2
    if a>4 and b>5 then x=3
    --------------------------
    如果你能保持输入格式的话,分析空格前的单词便可
      

  3.   

    lovvver(春晖)的方法不错。呵呵string str = "if a<=4 then x=1";str = str.Replace("if","if ((");
    str = str.Replace("then","))");
    再加上
    str = str.Replace("and",")&&(");
    这样应该可以了!
      

  4.   

    楼主,你确信是每一行一条语句吗?没有嵌套和括号等?如果有这么复杂,无异于写一个vbscript编译器了。
    如果确信是一行一条语句,我可以试着写出个解析器来。太复杂的……可以去写编译器啦,呵呵
      

  5.   

    楼上的,规则就是一行一条语句。没有嵌套和括号。不过规则会越来越多,越来越多的条件判断。比如:
    if a<=4 then x=1
    if a>4 and b<=5 then x=2
    if a>4 and b>5 and c<=6 then x=3

    。要用c#呀。
    分数自会送上,不够的话,可以去另一个帖子里http://community.csdn.net/Expert/topic/4238/4238624.xml?temp=.9083673
    顶贴一下。多谢了。
      

  6.   

    上面的朋友给的string.replace的方法,替换之后还是字符串呀,没有得出字符串所包含的逻辑含义来,我还是无法根据a、b等变量的值计算出x值来呀。
      

  7.   

    是不是字符串中含有if和then等字符,容易对大家造成迷惑呀?
    我觉得关键是怎么去根据读到的字符串,然后分析出此字符串中包含的逻辑含义。