问题标签 [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.
regex - grep 正则表达式忽略行尾的注释
我试图通过许多旧的 PowerBASIC 源文件搜索变量,但我无法grep
避免在行尾注释中匹配对变量的引用。
例如:
最初我使用的是:
但是——除了忽略没有注释的行——它还会打印出根本不使用的代码行ANGLE
(例如DELTA
行)。这是因为这些行的注释(即 )中恰好也有一个撇号()。'
AREN'T
我想通过管道输出来删除我不想要的行:
但不幸的是,它也删除了我希望恰好ANGLE
在他们的评论中有“”的代码行。
如何让 grep 匹配涉及的实际代码ANGLE
行并忽略那些仅在注释中匹配的行?
prefix - 尾随字符 % 的解释
在一个古老的 PowerBasic 文件中,我在代码中找到了这个:
我的问题涉及=之后的数字符号后的数字。我认为尾随的%具有含义,但我无法弄清楚该含义是什么。
我知道在 QB 中,%表示整数类型,但通常会导致变量,如代码行开头所示。尾随的%让我感到困惑。
syntax - 如何将列表传递给 BASIC-256 中的子例程
我很难将列表传递给子程序(尴尬);我得到一个编译器错误。我遵循了关于数组的 BASIC-256 文档(http://doc.basic256.org/doku.php?id=en:arrays),并[]
根据需要在子例程参数中包含了括号:
编译器抱怨我在子例程调用参数部分有错误。
我已尝试通过以下方式解决此问题;(i) 检查我对列表的初始化;(ii) 检查子程序定义和参数(编译器也不喜欢方括号);(iii) 从论点中排除[]
括号和 (iv) 尝试联系 BASIC-256 Facebook 页面。
感谢您的时间....
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)。