2013-06-13 5 views
5

में अमान्य प्रक्रिया कॉल या तर्क प्राप्त करना मेरे पास निम्न कोड है .. मुझे इस कथन पर एक अवैध कॉल या प्रक्रिया मिल रही है txsOutput.Writeline txsInput1.ReadAll .. संयोजन फ़ाइल एक टेक्स्ट फ़ाइल है जिसमें कुछ प्रविष्टियां हैं यह प्रारूपvbscript

नाम test.css।

क्या कोई मुझे बता सकता है कि स्क्रिप्ट के साथ क्या गलत है।

Dim strInputPath1 
Dim txsInput1,txsOutput 
Dim FSO 

Dim Filename 


Set FSO = CreateObject("Scripting.FileSystemObject") 
strOutputPath = "C:\txt3.txt" 
Set txsOutput = FSO.CreateTextFile(strOutputPath) 

Set re = New RegExp 
re.Pattern = "\s+" 
re.Global = True 

Set f = FSO.OpenTextFile("C:\combination.txt") 
Do Until f.AtEndOfStream 
    tokens = Split(Trim(re.Replace(f.ReadLine, " "))) 
    extension = Split(tokens(0),".") 
    strInputPath1 = "C:\inetpub\wwwroot\data\p\" & tokens(1) & "\" & extension(1) & "\" & tokens(0) 

Loop 
f.Close 

WScript.Echo strInputPath1 

Set txsInput1 = FSO.OpenTextFile(strInputPath1, 1) 
txsOutput.Writeline txsInput1.ReadAll 

txsInput1.Close 
txsOutput.Close 

उत्तर

8

त्रुटि 5 जब कॉल TextStream.WriteLine आम तौर पर डेटा लिखने के लिए TextStream सांकेतिक शब्दों में बदलना नहीं कर सकते हैं की कोशिश कर के कारण होता है:

"लिखने के लिए U + 1F00 ἀ पत्र अल्फा के साथ ई 1 बीसी 80 ग्रीक छोटे कोशिश कर रहा है Psili "एक धारा के लिए 'ASCII' एन्कोडिंग के लिए/के साथ खुला:

>> Set f = goFS.CreateTextFile(".\tmp.txt") 
>> f.WriteLine "AÄ" 
>> --- no news here means: written --- 
>> f.WriteLine ChrW(&H1F00) 
>> 
Error Number:  5 
Error Description: Invalid procedure call or argument 

यह साबित करने के लिए:

>> f.close 
>> Set f = goFS.CreateTextFile(".\tmp.txt", True, True) ' overwrite, unicode 
>> f.WriteLine ChrW(&H1F00) 
>> 
>> --- no news are good news -- 

डेटा स्रोत के रूप में (ReadAll()) डब्ल्यूडब्ल्यूडब्ल्यू से आ रहा है, यह संभव है कि इसमें गैर ASCII/ANSI टेक्स्ट शामिल है। हालांकि चेतावनी दी जानी चाहिए, यूनिकोड (= यूटीएफ -16) के लिए आउटपुट फ़ाइल खोलने में मदद नहीं होगी अगर इनपुट यूटीएफ -8 द्वारा एएससीआईआई टेक्स्टस्ट्रीम पर .eadAll() द्वारा slurped है।

+0

मुझे लगता है कि आप सही हैं .. मेरे पास एक विशिष्ट सीएसएस फ़ाइल है जो त्रुटि फेंक रही है लेकिन जेएस और अन्य सीएसएस जैसी अन्य सही तरीके से काम कर रही हैं .. सुनिश्चित नहीं है कि उस फ़ाइल के साथ क्या चल रहा है। – user505210

+0

मैंने पहले प्रस्तावों का उपयोग केवल 2 पैरामीटर के साथ किया था, और यह कभी-कभी काम करता था (मुझे एक एमएसएसक्ल सर्वर डेटाबेस से मेरा डेटा मिलता है)। ऐसा लगता है जैसे यह आपके द्वारा दिए गए समाधान के साथ हर बार काम करता है। क्या इसका मतलब यह है कि ओवरराइट को सही एन्कोडिंग का उपयोग करता है? (वैसे धन्यवाद) – matthieusb

+0

नहीं, ** दूसरा ** सही (यूनिकोड) सही समाधान है। –

0

वास्तव में उस विशेष इनपुट फ़ाइल को देखे बिना हम आपको और भी नहीं बता सकते हैं। हालांकि, अगर आप की जगह त्रुटि का कारण दूर करने में सक्षम हो सकता है:

txsOutput.Writeline txsInput1.ReadAll 
कुछ के साथ इस तरह

:

On Error Resume Next 
Do Until txsInput1.AtEndOfStream 
    line = txsInput1.ReadLine 
    If Err Then 
    WScript.Echo "Operation: Read" & vbNewLine _ 
     "Error:  " & Err.Number & vbNewLine _ 
     "Description: " & Err.Description & vbNewLine _ 
     "Line:  " & txsInput1.Line 
    WScript.Echo "Text:  " & line 
    End If 
    Err.Clear 

    txsOutput.WriteLine line 
    If Err Then 
    WScript.Echo "Operation: Write" & vbNewLine _ 
     "Error:  " & Err.Number & vbNewLine _ 
     "Description: " & Err.Description & vbNewLine _ 
     "Line:  " & txsInput1.Line 
    WScript.Echo "Text:  " & line 
    End If 
    Err.Clear 
Loop 
On Error Goto 0 

एक हेक्स संपादक के साथ इनपुट फ़ाइल का निरीक्षण भी एक विकल्प हो सकता है।

संबंधित मुद्दे