应该为False的len(字符串)的评估被评估为True

时间:2015-10-22 09:26:07

标签: vb6

我读取一个文件并将字段拆分为变量,如果我进入一个最大长度应为32的变量,我会这样做:

ragionesociale = Trim(Mid$(lineal, 159, 61))    
TRF_RASO = ragionesociale
If len(TRF_RASO < 32) Then
    TRF_RASO = TRF_RASO & Space(32 - Len(TRF_RASO))
Else
    TRF_RASO = Left$(TRF_RASO, 32)
End If

当评估第一个条件len(TRF_RASO&lt; 32)时,它评估为True,而如果在即时窗口中我放了     ? LEN(ragionesociale)

它给了我38,所以只有其他人应该被评估。为什么vb会将第一个评估为真? 我希望在解释时能够清楚

1 个答案:

答案 0 :(得分:2)

你有:

len(TRF_RASO < 32)

(TRF_RASO < 32)是一个False表达式,当强制转换为字符串&amp;时,它的长度为5个字符。传递给Len(),因此结果不正确。

纠正于:

if len(TRF_RASO) < 32