shawind 发表于 2009-4-22 19:54:46

省点事

dmd 1.034 + tango 0.99.8

import tango.util.log.Trace;
import tango.sys.Process;
import tango.io.stream.lines;

void main(char[][] args)
{
    if(args.length <= 1)
    {
      Trace.formatln("没有输入参数!");
      return;
    }
   
    if(args == "gui")
    {
      args = "-L/exet:nt/su:windows:4.0";
      Trace.formatln("GUI模式 :");
      run(args);
    }
    else
    {
      run(args);
    }
   
    Trace.formatln("编译完成!");

}

void run(char[][] p)
{
    char[] t;

    foreach(char[] c; p)
    {
      t ~= (c ~ " ");
    }

    Process dmd = newProcess(("dmd " ~ t));

    dmd.execute;

    foreach(line; new Lines!(char)(dmd.stdout))
    {
      Trace.formatln("{}", line);
    }
   
}

rednaxela 发表于 2009-4-23 14:41:03

小改
import tango.io.stream.lines;
import tango.sys.Process;
import Util = tango.text.Util;
import tango.util.log.Trace;

void main(char[][] args)
{
    if(args.length <= 1)
    {
      Trace.formatln("没有输入参数!");
      return;
    }
   
    if(args == "gui")
    {
      args = "-L/exet:nt/su:windows:4.0";
      Trace.formatln("GUI模式 :");
    }
    run(args);
   
    Trace.formatln("编译完成!");

}

void run(char[][] p)
{
    char[] t = Util.join(p, " ");

    Process dmd = new Process(("dmd " ~ t));

    dmd.execute;

    foreach(line; new Lines!(char)(dmd.stdout))
    {
      Trace.formatln("{}", line);
    }
}

shawind 发表于 2009-4-23 15:01:38

原来库里有现成的函数,学习了.

rednaxela 发表于 2009-4-23 16:49:36

我是猜它有然后去查了一下……果然有,呵呵
join这函数在好一点的库里都应该有。然则Java的标准库里很可耻的没有……

shawind 发表于 2009-4-23 17:53:06

看来,要掌握好一门语言,还需要掌握好一个库的方方面面。
但是tango这个库每次都有莫名其妙的变动。唉,抱怨一下...
4月份,d的排名终于下降了一位,哈哈~,不是没有原因的啊。

rednaxela 发表于 2009-4-23 21:11:38

嗯……学习语言的几个层次:
1、语法
2、语义
3、语用
对常用库掌握不足的话,第三个层次就很难说达到了。
不过用的东西多了之后,再接触新的库时很多时候只要去找你觉得肯定会有的功能对应的具体API就行,毕竟解决同一个领域的问题的库,抽象概念肯定是相似的,提供的功能肯定是接近的;差别主要是API的设计,例如是叫begin还是start之类的细微地方可能不同。

shawind 发表于 2009-4-24 18:03:27

怪不得,目前我就对c99的库还能有点印象,其他的库,一概不熟悉。
页: [1]
查看完整版本: 省点事