【问题标题】:Reading and writing value from a textfile by using vbscript code使用 vbscript 代码从文本文件中读取和写入值
【发布时间】:2011-03-08 05:22:05
【问题描述】:

我有一个名为“数据”的变量,我需要写入一个名为“listfile.txt”的文本文件。你能告诉我 vbscript 代码来做到这一点..而且我还需要 vbscript 代码来从文本文件“listfile.txt”中读取值

【问题讨论】:

标签: vbscript


【解决方案1】:
Dim obj : Set obj = CreateObject("Scripting.FileSystemObject")
Dim outFile : Set outFile = obj.CreateTextFile("listfile.txt")
Dim inFile: Set inFile = obj.OpenTextFile("listfile.txt")

' read file
data = inFile.ReadAll
inFile.Close

' write file
outFile.write (data)
outFile.Close

【讨论】:

    【解决方案2】:

    此脚本将从大文件中读取行并写入新的小文件。会将第一行的表头(Header)复制到所有子文件中

    Dim strLine
    lCounter = 1
    fCounter = 1
    cPosition = 1
    MaxLine = 1000
    splitAt = MaxLine
    Dim fHeader
    sFile = "inputFile.txt"
    dFile = LEFT(sFile, (LEN(sFile)-4))& "_0" & fCounter & ".txt"
    Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile(sFile,1)
    Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile(dFile,2,true)
    do while not objFileToRead.AtEndOfStream
            strLine = objFileToRead.ReadLine()
            objFileToWrite.WriteLine(strLine)
            If cPosition = 1 Then
                fHeader = strLine
            End If
            If cPosition = splitAt Then
                fCounter = fCounter + 1
                splitAt = splitAt + MaxLine
                objFileToWrite.Close
                Set objFileToWrite = Nothing
                If fCounter < 10 Then
                    dFile=LEFT(dFile, (LEN(dFile)-5))& fCounter & ".txt"
                    Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile(dFile,2,true)
                    objFileToWrite.WriteLine(fHeader)
                ElseIf fCounter <100 Or fCounter = 100 Then
                    dFile=LEFT(dFile, (LEN(dFile)-6))& fCounter & ".txt"
                    Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile(dFile,2,true)
                    objFileToWrite.WriteLine(fHeader)
                Else
                    dFile=LEFT(dFile, (LEN(dFile)-7)) & fCounter & ".txt"
                    Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile(dFile,2,true)
                    objFileToWrite.WriteLine(fHeader)
                End If
            End If
            lCounter=lCounter + 1
            cPosition=cPosition + 1
    Loop
    objFileToWrite.Close
    Set objFileToWrite = Nothing
    objFileToRead.Close
    Set objFileToRead = Nothing
    

    【讨论】:

    • 没有解决问题。
    【解决方案3】:

    Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\listfile.txt",2,true)
    objFileToWrite.WriteLine(data)
    objFileToWrite.Close
    Set objFileToWrite = Nothing
    

    OpenTextFile 参数:

    <filename>, IOMode (1=Read,2=write,8=Append), Create (true,false), Format (-2=System Default,-1=Unicode,0=ASCII)
    

    读取整个文件

    Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\listfile.txt",1)
    strFileText = objFileToRead.ReadAll()
    objFileToRead.Close
    Set objFileToRead = Nothing
    

    逐行阅读

    Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\listfile.txt",1)
    Dim strLine
    do while not objFileToRead.AtEndOfStream
         strLine = objFileToRead.ReadLine()
         'Do something with the line
    loop
    objFileToRead.Close
    Set objFileToRead = Nothing
    

    【讨论】:

      【解决方案4】:
      猜你喜欢
      • 2010-11-11
      • 1970-01-01
      • 2023-03-22
      • 2010-10-25
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多