2010-07-03 3 views

Répondre

5

si elle est juste rembourré à droite, vous pouvez utiliser quelque chose comme ceci:

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

Merci! J'aimerais penser que j'aurais trouvé ça si je n'étais pas resté si tard à écrire du code ... – BenV

0

inspiré du dernier, peut-être cela pourrait être mieux s'il y a un risque que vous pourriez avoir NULLs dans votre texte une autre raison?

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

Dans mon cas REPLACE() et InStr() ne fonctionnent pas avec Chr (0) (ne peut pas le voir ne pas afficher aucune erreur), mais les valeurs NULL peut être retiré à l'aide de comparaison et Mid(), gauche() et Len() comme ci-dessus ou dans cet exemple:

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) 

Ceci est le retrait nul des extrémités, par exemple de objFile.ExtendedProperty("Dimensions") valeur, comme "600 x 400?". Les valeurs nulles (?) Sont insérées ici dans Windows 10 mais pas dans Windows XP.

Questions connexes