2013-10-29 103 views
1

餵我的名字是丹尼斯和我有以下目錄IMAGES\如何用圖像目錄的名稱創建文本文件?

EX0010040324303-001.tif 
EX0010040324303-002.tif 
EX0010040324303-003.tif 
EX0020943843934-001.tif 
EX0020943843934-002.tif 
EX0030673452099-001.tif 
EX0030673452099-002.tif 

我想要什麼?

通過目錄和 環路編譯一個文本文件如下:

EX0010040324303,,IMAGES\EX0010040324303-001.tif,Y,,,3 
EX0010040324303,,IMAGES\EX0010040324303-002.tif,,,, 
EX0010040324303,,IMAGES\EX0010040324303-003.tif,,,, 
EX0020943843934,,IMAGES\EX0020943843934-001.tif,Y,,,2 
EX0020943843934,,IMAGES\EX0020943843934-001.tif,,,, 
EX0030673452099,,IMAGES\EX0030673452099-001.tif,Y,,,2 
EX0030673452099,,IMAGES\EX0030673452099-002.tif,,,, 

所以: DocId2,DOCID,Y ,,, NumberOfPages的doc和 DocId2的第一TIF頁,, DOCID ,,,,爲DOC

的其他TIF,年齡在那一刻,我已經產生了下面的腳本:

Function readCompleteText(inputReadLocation, OutputwriteLocation) 
Const ForReading = 1 
Dim lenInputReadLocation 
Dim docId 
    Dim docId2 
Dim oStream 
Dim translationFileContents 
Dim inputText 
lenInputReadLocation = LEN(inputReadLocation) 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set FileList = objWMIService.ExecQuery _ 
     ("ASSOCIATORS OF {Win32_Directory.Name='"& inputReadLocation &"'} Where " _ 
       & "ResultClass = CIM_DataFile") 

For Each objFile In FileList 
    Dim i 
    i = 0 
    docId = RIGHT(objFile.Name,(LEN(objFile.Name)-lenInputReadLocation-1)) 
    docId2 = LEFT(docId, LEN(docId)-4) 
    MyArray = Split(docId2, "-") 

    EXnumber = MyArray(0) 
    PageNumber = MyArray(1) 

    'inputText = EXnumber &",,"& docId &",,,," 
Next 

oStream.WriteText inputText,0 
oStream.SaveToFile OutputwriteLocation  
oStream.close 
oStream = Nothing 
End Function 

我的問題是:

  • 如何計算每個文檔的頁數?
  • 如何使用上面顯示的圖像的文件名來編寫文本文件。

任何幫助是極大的讚賞:-)

+1

執行TIF文件包含多個頁面或每個文件的單個頁面?根據命名方案來看,它們可以是每頁一頁,其中「_001」作爲第一頁,「_002」作爲第二頁等等。另外,具體是什麼你想輸出到文本文件的字段?我看到了什麼看起來像一個文件名段的一個空白字段甚至沒有使用,部分文件路徑,一個神祕的「Y」......你能提供更多的細節,所以這個問題可以得到回答? – Blackhawk

+1

你好Steve P,謝謝你的反應。是的,它是單頁tif文件,其中001作爲文檔的第一頁,002作爲第二頁等等。我也編輯了上面的問題。 所以,我需要輸出一段文件名,然後是兩個逗號,然後是文件夾路徑,一個逗號,如果它是第一頁,則爲「Y」,三個逗號,如果是第一頁,則爲頁數。 希望現在更清楚!如果能解決這個問題真的很棒!謝謝 – user2931778

回答

1

當您提取文件的信息,把這些信息(TifFile)的一個集合中的對象,你在用自己的身份證字典存儲:

(不幸的是我無法測試的代碼,但你的想法)

class TifFile 
    Public FileName 
    Public DocId 
    Public DocId2 
    Public ExNumber 
    Public PageNumber 
End Class 

'[..snip..] 

Set TifFileCollection = CreateObject("Scripting.Dictionary") 

For Each objFile In FileList 
    ' Do some parsing here 
    docId = RIGHT(objFile.Name,(LEN(objFile.Name)-lenInputReadLocation-1)) 
    docId2 = LEFT(docId, LEN(docId)-4) 
    exNumber = Split(docId2, "-")(0) 
    pageNumber = Split(docId2, "-")(1) 

    ' Put it in an object 
    Set oTifFile = new TifFile 
    oTifFile.FileName = objFile.Name 
    oTifFile.DocId = docId 
    oTifFile.DocId2 = docId2 
    oTifFile.ExNumber = exNumber 
    oTifFile.PageNumber = pageNumber 

    ' Add the file to a collection 
    if not TifFileCollection(DocId).Exists then 
     Set TifFileCollection.Item(DocId) = CreateObject("System.Collections.ArrayList") 
    end if 
    TifFileCollection.Item(DocId).Add oTifFile 
Next 

' Iterate through all files 
prefix = "IMAGES\" 
distinctNumberOfFiles = TifFileCollection.Count 
For each id in TifFileCollection.Keys 
    Set collectionOfTifFilesWithSameId = TifFileCollection(id) 
    numberOfFilesWithSameId = collectionOfTifFilesWithSameId.Count 

    for each oTifFile in collectionOfTifFilesWithSameId.ToArray() 
     If (numberOfFilesWithSameId > 1) and (oTifFile.PageNumber = "001") then 
      multipage = "Y" 
      pageCount = numberOfFilesWithSameId 
     else 
      multipage = "N" 
      pageCount = "" 
     End if 
     ' Output: 
     MsgBox join(array(_ 
      oTifFile.DocId, _ 
      "", _ 
      prefix & oTifFile.FileName, _ 
      multipage, _ 
      "", "", _ 
      pageCount), ",") 
    Next 
Next 
+0

我正面臨類似的問題。爲了保持清楚,我打開了一個新線程,試圖簡化代碼。 Yyours給出了一個錯誤,所以儘管儘可能地減少會是一個很好的調試方法,但是我並不是成功的。你能看看這裏嗎?我正在使用一個類似的例子來保持它的清晰(一旦完成,我認爲我應該有能力將它翻譯成我自己的具體情況)。請看這裏:http://stackoverflow.com/questions/19689660/howto-create-a-multi-dimensional-array-from-images-in-a-directory – Pr0no

相關問題