2016-07-20 9 views
5

मैं एक पाठ फ़ाइल में 180 लाइनों है और हर 20 लाइनों में पढ़ना चाहते हैं (1-20, 21-40 ...)vbscript का उपयोग कर टेक्स्ट फ़ाइल से प्रत्येक 20 लाइनों को कैसे पढ़ा जाए?

यहाँ मेरे वर्तमान कोड है:

Const ForReading = 1 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

Set objTextFile = objFSO.OpenTextFile("C:\Bess_Automation\EditFiles\TSTVLD1.txt", ForReading) 

'Reading the count of lines 
objTextFile.ReadAll 
strLinecount=objTextFile.Line 
msgbox strLinecount 

strnumoftimes=Round((strLinecount/20),0) 
msgbox strnumoftimes 
+2

आप आवश्यक फाइलों को स्ट्रीम करने से बेहतर होगा, फिर पूरी फ़ाइल को स्मृति में लोड करना बेहतर होगा। – Lankymart

+0

ठीक है ... मैं पाठ फ़ाइल की पहली 20 पंक्तियों को पढ़ने में सक्षम हूं। मुझे अगले 20 लाइनों के लिए कैसे जाना चाहिए और इसलिए फ़ाइल समाप्त होने तक ..... मुझे इसे 'Mod' +1 के उपयोग के लिए –

उत्तर

3

यहाँ मैं कैसे 'है डी समस्या से संपर्क करें। यह कोड प्रारंभ में एक समय में पढ़ने के लिए लाइनों की संख्या सेट करता है, फिर फ़ाइल को पढ़ने और एक सरणी सेट करने के लिए खोलता है। जबकि हम फ़ाइल को पढ़ना समाप्त नहीं कर रहे हैं, हम इसे myArray पर एक लाइन जोड़ते हैं।

जब हमने 20 लाइनों में से कई को पढ़ा, तो हम इसकी रिपोर्ट करते हैं और जो कुछ भी हमें 20 लाइनों के साथ करना है (मेरे मामले में, मैंने उन्हें स्क्रीन पर प्रतिबिंबित किया है, अर्धविराम से अलग किया है)।

फिर हम फिर से रिक्त होने के लिए सरणी को रीसेट करते हैं और सभी फ़ाइल पढ़े जाने तक दोहराते हैं, फिर लाइनों के अंतिम बैच को आउटपुट करते हैं (अन्यथा उन्हें अनदेखा कर दिया जाएगा क्योंकि हम उदाहरण में 20 के बैचों के साथ कुछ भी करते हैं)।

Option Explicit 

Const LINES_TO_READ = 20 
Dim iLines, iTotalLines 
Dim oFso : Set oFso = CreateObject("Scripting.FileSystemObject") 
Dim oFile : Set oFile = oFso.OpenTextFile("C:\temp\mytextfile.txt", 1) 
Dim myArray() 
ReDim myArray(0) 
iLines = 0 
iTotalLines = 0 
While Not oFile.AtEndOfStream 
    myArray(UBound(myArray)) = oFile.ReadLine 
    iLines = iLines + 1 
    ReDim Preserve myArray(UBound(myArray)+1) 
    If iLines Mod LINES_TO_READ = 0 Then 
     WScript.Echo iLines & " read now." 
     ' do anything you like with the elements of myArray here before we reset it to empty 
     WScript.Echo Join(myArray, ";") 
     ' reset array to be totally empty again 
     ReDim myArray(0) 
    End If 
Wend 
WScript.Echo "Final Lines: " & Join(myArray, ";") 
WScript.Echo "Total lines in file: " & iLines 
+0

कैसे लूप करना चाहिए – Lankymart

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