2011-03-02 43 views
1

我有一個巨大的文本文件,我想解析到其他文件 - 我想我在這個盒子(公司計算機)上使用的唯一的東西是VBS,所以這裏是我的問題:如何根據包含的數據解析一個文本文件到多個文件

我的文本文件與一羣網絡配置,看起來像這樣:

「活動」,「主機名」,「ip地址」

.......

此重演整個文件中,但顯然每個配置不同的數據都會在「...」它總是說每個配置爲‘主動’出現好。

我想爲每個配置創建類型爲HostName.cfg的保存文件,並保存所有包含!和「結束」。包含三個引用屬性的行不需要被複制。

我還在學習VBS,所以我很感謝在這件事上的任何幫助。謝謝!

回答

0

下面是一些有用的文件閱讀功能,並聲明:

Freefile 

返回,你應該分配給一個變量,然後在打開的語句中使用一個整數。

Open <string> For Input As <integer> 

使用指定的文件句柄打開指定的文件。不要在兩者之間關閉相同的文件句柄兩次。

Line Input #<integer>, <variable> 

將文件的一行讀入字符串。

Input #<integer>, <variable>, <variable>, <variable> 

將由逗號分隔的文件的一行讀入多個變量。

+0

這些是VB函數,而不是VBScript。對於VBScript,您需要使用FileSystemObject。 – Tmdean 2011-03-02 20:53:52

+0

@Tmdean我很抱歉,我知道我最近在VB和VBScript中都做了這個,但是我顯然堅持使用VB版本。 – Neil 2011-03-02 21:28:50

0

我曾經讀過一個文本文件,同時省略了開始和結束行。儘管我不需要在任何地方編寫它,但FSO非常簡單,您可以將其弄清楚。以下是讀取文件和鏈接以通過FSO寫入文件的一些代碼:link

'Create a FSO object and open the file by providing the file path 
Dim fso, f, filePath, line 
filePath = "test.txt" 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set f = fso.OpenTextFile(filePath) 

'Skip through the first two lines 
f.readline 
f.readline 

'Read till the end of file, if the line is not "end", split it based on "," 
while not f.AtEndOfStream 
    line = f.readline() 
    if line <> "end" then 
     arr = split(line, ",") 
     'Write the arr to file 
    end if 
wend 

f.Close 
相關問題