2011-09-14 14 views
1

如果我有一個固定的寬度文件(.txt)用規格(其字符形成場),諸如:文件中的VBScript(QTP) - 固定寬度的文件 - 檢查內容

1-10 id_no 
11-25 seq 
26-30 cur_code 
31-40 first 
41-90 cur_desc 
91-120 misa 

實施例3線:

7284585 98354u38654  347 USD  jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjnfhUnited States Dollar 
728458598354u38654  347 USD jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjn  Euro 
7284585 98354u38654347  GBP  jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjn Pound 

我會得到什麼VBScript代碼編寫:

  • 讀取所有文件中的行
  • 輸出任何行號和cur_desc值到另一個文件(即。 'test_currency_DDMMYYYY.txt')符合此條件:(cur_code = 'USD' and cur_desc != 'United States Dollar')
+0

請參閱http://stackoverflow.com/questions/276666/the-best-way-to-process-lists-of-email-addresses/276723#276723 – Fionnuala

回答

2

逐行讀取文本文件中的行,解析和寫入另一個文本文件:

Const ForReading = 1 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set outPut = objFSO.CreateTextFile("c:\\output.txt", true); 
Set objTextFile = objFSO.OpenTextFile _ 
    ("c:\mytextfile.txt", ForReading) 
Do Until objTextFile.AtEndOfStream 
    strLine = objTextFile.Readline 
' parse strLine 
    id_no = Mid(strLine, 1, 9) 
    seq = Mid(strLine, 11, 14) ' and so on 
    outPut.WriteLine(id_no & "_" & seq); 
Loop 
outPut.Close(); 
Set objFSO = Nothing 
Set outPut = Nothing 

解析字符串可以與perfomed VB string functoins,如裂,中,萊恩等 如

id_no = Mid(strLine, 1, 9) 
seq = Mid(strLine, 11, 14) ' and so on 
+0

id_no字段由每行的前10個字符組成。 – toop

+0

我明白了。那麼Mid函數是最好的 – heximal

+0

我該如何將它寫入另一個文件? – toop