0

動作するスクリプトを作成しました。現在実行していることは、ディレクトリを介して特定のファイルを検索し、2 番目の行の 4 番目のタブ (RXC193) にあるものを返し、ファイルの名前を次のようにファイルから見つけた名前に変更することです。

@Program @RxBIN @RXPCN @RxGroup @MemberID @WebsiteE @WebsiteS @VerticalLogo @TextLogo RXCUT 013824 RXCUT RXC193
RXC5FHXF9 www.rxcut.com/HBG www.rxcut.com/HBG/es P:\RxCut\In Design Implementation\RXC193

このスクリプトで実行できるようにする必要があるのは、ディレクトリをループして、この RXC##### ですべてのファイルの名前を変更することです。スクリプトは次のとおりです。

Call TwoDimensionArrayTest

Sub TwoDimensionArrayTest
' Version 1.0
' Writtem by Krystian Kara
' Dated 25-Jan-2009


    Dim fso
    Dim oFile
    Dim arrline
    Dim arrItem
    Dim objFolder
    Dim i
    Dim arrMain()
    Dim sFileLocation, strResults

    Const forReading = 1

' The file contains on each line:
    ' Text1 (tab) Text2 (tab) Text3 (tab) Text4
    ' Text5 (tab) Text6 (tab) Text7 (tab) Text8
'etc etc


    Set fso = CreateObject("Scripting.FileSystemObject")
        sFileLocation = "file 2.txt"

        Set oFile = fso.OpenTextFile(sFileLocation, forReading, False)

    Do While oFile.AtEndOfStream <> True
        strResults = oFile.ReadAll
    Loop

' Close the file
    oFile.Close

' Release the object from memory
    Set oFile = Nothing

' Return the contents of the file if not Empty
    If Trim(strResults) <> "" Then

        ' Create an Array of the Text File
        arrline = Split(strResults, vbNewLine)
    End If

    For i = 0 To UBound(arrline)
        If arrline(i) = "" Then
            ' checks for a blank line at the end of stream
            Exit For
        End If 

        ReDim Preserve arrMain(i)

            arrMain(i) = Split(arrline(i), vbTab)

    Next

    fso.MoveFile "file 2.txt", arrMain(1)(3) & ".txt"

End Sub ' TwoDimensionArrayTest

前もって感謝します、ジョー

4

2 に答える 2

0

これが最終エラーのないコードです!最後に、Tab-delimited.txtファイルのディレクトリを検索し、2行目から3番目のタブ(グループ番号)を取得して、ファイルの名前を対応するグループ番号に変更します。わーい!

ここに最終的なエラーのないコードがあります!:

Call TwoDimensionArrayTest

サブTwoDimensionArrayTest

Dim fso Dim oFile Dim arrline Dim arrItem Dim i Dim arrMain()Dim sFileLocation、strResults

Const forReading = 1

strFolder = "C:\ Documents and Settings \ jmituzas.NMCLLC \ Desktop \ desktop2 \ New Folder(2)\ datafiles" Set objFSO = CreateObject( "Scripting.FileSystemObject")For Each objFile In objFSO.GetFolder(strFolder).Files If Right(LCase(objFile.Name)、4)= LCase( "。txt")次に

    ' The file contains on each line:
' Text1 (tab) Text2 (tab) Text3 (tab) Text4
' Text5 (tab) Text6 (tab) Text7 (tab) Text8

'など

Set fso = CreateObject( "Scripting.FileSystemObject")sFileLocation = objFile.Name

    Set oFile = fso.OpenTextFile(objFile.Name, forReading, False)

Do While oFile.AtEndOfStream <> True
    strResults = oFile.ReadAll
Loop

' Close the file
oFile.Close

'オブジェクトをメモリから解放しますSetoFile= Nothing

'空でない場合はファイルの内容を返しますIfTrim(strResults)<> "" Then

    ' Create an Array of the Text File
    arrline = Split(strResults, vbNewLine)
End If

For i = 0 To UBound(arrline)
    If arrline(i) = "" Then
        ' checks for a blank line at the end of stream
        Exit For
    End If 

    ReDim Preserve arrMain(i)

        arrMain(i) = Split(arrline(i), vbTab)

Next

  fso.MoveFile sFileLocation, arrMain(1)(3) & ".txt"

End If Next End Sub'TwoDimensionArrayTest

于 2010-09-03T16:56:15.300 に答える
0

1 つの方法は、次のように、サブプロシージャーでファイル名をパラメーター化して、異なるファイルに対して複数回呼び出すことができるようにすることです。

Sub TwoDimensionArrayTest(fileName) 'you may want a more descriptive name

    ' ...
    sFileLocation = fileName
    ' ...

End Sub

次に、ディレクトリを通過するループを作成し、毎回サブルーチンを呼び出します。

Dim fso, folder

Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("Your Folder Name")
For Each file In folder.Files
    TwoDimensionArrayTest file.Path
Next
于 2010-09-01T18:04:22.187 に答える