PowerBuilder 中的字符串大于 (>) 运算符

String greater than (>) operator in PowerBuilder

我想知道是否有人可以告诉我下面这行代码实际上会做什么。我不是 PowerBuilder 开发人员,但我正在尝试用现代语言重新创建一个软件,并且只想知道这一行到底做了什么。

var_1 = ' ';
var_2 = ' ';
var_3 = ' ';

....
//some logic that might change var_1, var_2, or var_3
....

var_all = var_1 + var_2 + var_3
if trim(var_all) > "    " and trim(var_all) > "" then //that's 4 spaces
    //some logic
end if

我感觉这是在检查长度,但无法确定 > 运算符在 PowerBuilder 中对字符串做了什么。

我认为应该发生的情况是,如果 var_all 字符串的总长度大于 4,则执行 //some logic,但我不确定。

您可以使用以下代码检查 var_all 购买的长度: var_1var_2var_3 声明为 1 space 并且函数 trim() 将删除所有 space。

if len(trim(var_all)) > 0 then 
    //some logic
end if

你要改成现代语言...哈哈哈...我解释一下:Trim()去掉字符串两边的空格,任何不满足条件的空字符串输入 if,但如果 var_all 例如: Var_all = "1" 满足并输入 if。您实际上是在验证 var_all 的值不是目标。

简而言之:字符串运算符 <、> 和 = 根据您当前的 区域设置.

对两个字符串进行区分大小写的字母顺序比较

EX: 区域设置 = 丹麦语排序 => 'AA' 排序 after 'Z' ('AA' 相当于 'Å')


  • Trim(var_all) 删除 所有 前导和尾随 spaces(但仅 ASCII space = ASCII 值 0x20)
  • ... > "" 实现“任何非空字符串
  • ... > " " 实现“任何字符串排序 space 字符 之后”
    • 排序 before space 字符的前导字符示例:Escape、Form-Feed、Carriage-Return、Line-Feed 和 Tab

在您的上下文中,可以在 PowerScript 中获得如下等效行为:

IF Trim(var_all) > " " THEN
   ...
END IF

在字符串中使用小于和大于是不正常的。它总是 return 错误。要比较字符串长度,您必须使用 Len 函数。