问题标签 [powerbasic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
978 浏览

regex - grep 正则表达式忽略行尾的注释

我试图通过许多旧的 PowerBASIC 源文件搜索变量,但我无法grep避免在行尾注释中匹配对变量的引用。

例如:

最初我使用的是:

但是——除了忽略没有注释的行——它还会打印出根本不使用的代码行ANGLE(例如DELTA行)。这是因为这些行的注释(即 )中恰好也有一个号()。'AREN'T

我想通过管道输出来删除我不想要的行:

但不幸的是,它也删除了我希望恰好ANGLE在他们的评论中有“”的代码行。

如何让 grep 匹配涉及的实际代码ANGLE行并忽略那些在注释中匹配的行?

0 投票
2 回答
755 浏览

prefix - 尾随字符 % 的解释

在一个古老的 PowerBasic 文件中,我在代码中找到了这个:

我的问题涉及=之后的数字符号后的数字。我认为尾随的%具有含义,但我无法弄清楚该含义是什么。
我知道在 QB 中,%表示整数类型,但通常会导致变量,如代码行开头所示。尾随的%让我感到困惑。

0 投票
3 回答
261 浏览

syntax - 如何将列表传递给 BASIC-256 中的子例程

我很难将列表传递给子程序(尴尬);我得到一个编译器错误。我遵循了关于数组的 BASIC-256 文档(http://doc.basic256.org/doku.php?id=en:arrays),并[]根据需要在子例程参数中包含了括号:

编译器抱怨我在子例程调用参数部分有错误。

我已尝试通过以下方式解决此问题;(i) 检查我对列表的初始化;(ii) 检查子程序定义和参数(编译器也不喜欢方括号);(iii) 从论点中排除[]括号和 (iv) 尝试联系 BASIC-256 Facebook 页面。

感谢您的时间....

0 投票
1 回答
84 浏览

sqlite - 在 PowerBasic sqlite3 Wrapper 中从 ASCIIZ PTR 创建 BSTR

我正在为一些 sqlite3 函数构建一个小包装器。

sqlite3.dll 有一个函数 sqlite3_column_text16() 返回一个 UTF-16 字符串。这似乎是正确的调用函数,因为 PowerBasic 和 Windows(和 OLE)本机使用 UTF-16(称为 BSTR),但是,当我这样做时:

ColText 仅包含 UTF-16 字符串的第一个字母。

这是有道理的(我认为),因为它是一个 UTF-16 字符串,所以第一个字节是有效的 ASCII,但第二个字节为零(空),所以在分配 ColText = &pzValue 时,ColText 被分配了所有文本直到第一个空字符。在本例中,字符串为“Russ”,因此 UTF-16 中的字节为“R0u0s0s0”(每个 ASCII 字符后跟一个空 (0)。

那么,如何将此 UTF-16 字符串转换为 PowerBasic STRING(即 BSTR)?

我检查了一些 sqlite3 包装器并找到了这段代码(SQLiteningServer.bas):

所以,在这段代码中,他们这样做:

这几乎看起来他们正在内存中构建一个 BSTR,但不完全是。要成为有效的 BSTR,前导数值应该是表示字符串字节长度的 INT16,但在上面的代码中,它们使用前导 BYTE,所以它不是有效的 BSTR,对吧?我不知道。

如何获取 sqlite3_column_text16(ppStmt, 0) 返回的 UTF-16 字符串并将其转换为 PowerBasic STRING(这是标准 OLE BSTR)。