2009-07-08 4 views
5

मैं VBScript का उपयोग करके फ़ाइलें पढ़ सकते हैं और किसी भी टैब सहित सभी प्रमुख रिक्त स्थान को हटाने की जरूरत सहित अग्रणी रिक्त स्थान। मैं अब LTRIM प्रमुख रिक्त स्थान को हटा देगा लेकिन कैसे मैं टैब भी निकालूँ।ट्रिम टैब्स

धन्यवाद।

उत्तर

10

यह समारोह एक स्ट्रिंग से सभी प्रमुख खाली स्थान के (रिक्त स्थानों, टैब आदि) निकालता है:

Function LTrimEx(str) 
    Dim re 
    Set re = New RegExp 
    re.Pattern = "^\s*" 
    re.Multiline = False 
    LTrimEx = re.Replace(str, "") 
End Function 
0

एंड्रयू जवाब सही नहीं है। एलटीआरएम, आरटीआरआईएम और ट्रिम केवल रिक्त स्थान हटाते हैं, टैब नहीं।

मैं अपने कोड पुन: स्वरूपित, और उसके आगे या पीछे पात्रों पट्टी एक समारोह जोड़ा।

filename="test.txt" 

set fso = createobject("scripting.filesystemobject") 
set f = fso.opentextfile(filename) 

do while not f.AtEndOfStream 
    s = TrimChars(f.readline, " " + vbTab) 
    wscript.echo "|" & s & "|" 
loop 

f.close 

set f = nothing 
set fso = nothing 

''--- 

function TrimChars(s, sChars) 
    dim n, nLen, nStart 

    nLen = Len(s) 
    if nLen = 0 then 
    TrimChars = s 
    exit function 
    end if 

    ''- skip leading chars 
    n = 1 
    do while (n <= nLen) And (InStr(sChars, Mid(s, n, 1)) > 0) 
    n = n + 1 
    loop 
    nStart = n 

    ''- skip trailing chars 
    n = nLen 
    do while (n > nStart) And (InStr(sChars, Mid(s, n, 1)) > 0) 
    n = n - 1 
    loop 

    ''- return remaining chars 
    nLen = n - nStart + 1 
    if (nLen > 0) and (nStart <= len(s)) then 
    TrimChars = Mid(s, nStart, nLen) 
    else 
    TrimChars = "" 
    end if 
end function 
0
Function LTrimEx(str) 
    Do Until x 
     If Left(str, 1) = Chr(32) Or Left(str, 1) = Chr(9) then 
      str = Right(str, Len(str) - 1) 
     Else 
      x = true 
     End If 
    Loop 
    LTrimEx = str 
End Function 
9

एक दोनों बाएँ और दाएँ ट्रिम एक बहु स्ट्रिंग इस काम करेंगे में (टैब, गाड़ी वापसी, लाइन फ़ीड, रिक्त स्थानों सहित) के लिए।

Function MultilineTrim (Byval TextData) 
    Dim textRegExp 
    Set textRegExp = new regexp 
    textRegExp.Pattern = "\s{0,}(\S{1}[\s,\S]*\S{1})\s{0,}" 
    textRegExp.Global = False 
    textRegExp.IgnoreCase = True 
    textRegExp.Multiline = True 

    If textRegExp.Test (TextData) Then 
     MultilineTrim = textRegExp.Replace (TextData, "$1") 
    Else 
     MultilineTrim = "" 
    End If 
End Function 
+1

महान समारोह है, धन्यवाद! –