【问题标题】:Smalltalk, take command line argument as filenameSmalltalk,将命令行参数作为文件名
【发布时间】:2020-06-19 15:41:37
【问题描述】:

我是 Smalltalk 的新手,正在尝试弄清楚如何将命令行参数作为文件名。我在网上看到了以下sn-p:

f := FileStream open: 'fileName' mode: FileStream read

但我想知道如何根据用户对文件名的命令行输入来修改它。以下是该项目的编译和运行方式:

gst file1.st file2.st file3.st file4.st -f mainFile.st readThisFile.dat addiotnalArg

那么如何在 Smalltalk 中拉取用户指定文件的名称?

【问题讨论】:

    标签: smalltalk gnu-smalltalk


    【解决方案1】:

    根据https://www.gnu.org/software/smalltalk/manual/gst.html#Invocation 您可以使用Smalltalk arguments 访问 GNU Smalltalk 本身无法解释的命令行参数。它将是一个包含这些参数的数组。

    -a
    --smalltalk-args

    之后将所有选项视为要提供给可使用Smalltalk arguments 检索的 Smalltalk 代码的参数,忽略它们作为 GNU Smalltalk 本身的参数。 [...]

    -f
    --文件

    以下两条命令行是等价的:

    gst -f file args...
    gst -q file -a args...
    

    由于您的 readThisFile.dat 是第一个参数,您可以使用 Smalltalk arguments at: 1 访问它并将其放入您的 FileStream 构造函数消息中:

    f := FileStream open: (Smalltalk arguments at: 1) mode: FileStream read
    

    你也可以使用first

    f := FileStream open: Smalltalk arguments first mode: FileStream read.
    

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 2018-02-09
      • 2010-09-16
      相关资源
      最近更新 更多