2010-07-03 3 views

ответ

5

если это просто дополняется справа, вы можете использовать что-то вроде этого:

function ntrim(byval theString as string) as string 
    dim iPos as long 
    iPos = instr(theString, chr$(0)) 
    if iPos > 0 then theString = left$(theString, iPos - 1) 
    ntrim = theString 
end function 
+0

Спасибо! Хотелось бы подумать, что я бы придумал это, если бы не задержался так поздно писать код ... – BenV

0

затягивая на основе последнего, может быть, это могло бы быть лучше, если есть риск, вы могли бы иметь значение NULL в тексте для другая причина?

Function nTrim2(theString As String) As String 
    Dim iPos As Long 
    iPos = Len(theString) 
    For i = iPos To 0 Step -1 
     iPos = i 
     If Mid$(theString, i, 1) <> Chr$(0) Then Exit For 
    Next 
    nTrim2 = Left$(theString, iPos) 
End Function 
0

В моем случае Replace() и InStr() не работают с Chr (0) (не может видеть, что это не отображает какую-либо ошибку), но Нули могут быть удалены сравнения и используя Mid(), Левый() и LEN(), как указано выше, или в данном примере:

If Mid$(str, 1, 1) = Chr$(0) Then str = Mid$(str, 2) 
If Mid$(str, Len(str), 1) = Chr$(0) Then str = Left$(str, Len(str) - 1) 

Это нуль удаление из концов, например, от objFile.ExtendedProperty("Dimensions") значения, как "600 х 400?". Nulls (?) Вводятся здесь в Windows 10, но не в Windows XP.

Смежные вопросы