【问题标题】:Converting substrings of music from BASIC to C++将音乐子串从 BASIC 转换为 C++
【发布时间】:2018-04-27 07:31:47
【问题描述】:

在 Basic 的许多版本中,可以使用语句 PLAY 播放音乐。它接受作为其参数、音符、八度音阶等,但也接受子字符串。 例如,A$="BCD": B$="FDE": PLAY "XA$;O3XB$;" 等价于PLAY "BCDO3FDE"

我想在 C++ 中做同样的事情。我知道这很困难,因为 BASIC 是解释和 C++ 编译的,但是有没有办法?

更准确地说,我已经有一个函数PlayString(AnsiString ss),它可以播放由音符(例如“BCD”)、八度音阶(前缀O加一个数字,例如“O2”)、音符长度组成的字符串(前缀 L 加一个数字,例如“L4”),所以要播放的字符串可以是“BCDO3FDE”(同上)。

我想添加播放子字符串所需的代码,比如前缀 X,这样下面一行中的代码就可以工作了:

AnsiString aa="BCD", bb="FDE";PlayString("Xaa;O3Xbb;");

和等价于

PlayString("BCDO3FDE");

想法,有人吗?

【问题讨论】:

    标签: c++ playback basic indirection


    【解决方案1】:

    正如所写,这是行不通的。原因正是您所怀疑的:C++ 已编译。变量名在运行时不存在。但是PlayString 仅在运行时解释其参数。你需要

    PlayString(aa+"O3"+bb);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 2022-10-30
      • 2016-03-07
      相关资源
      最近更新 更多