【问题标题】:Msgbox input in vbscript saved/apended to text filevbscript 中的 Msgbox 输入保存/附加到文本文件
【发布时间】:2015-03-06 01:14:39
【问题描述】:

我已经进行了一些基本的编程,但从未将任何输入保存到文本文件中。如果有人可以请帮助我,我将不胜感激。

我已经让脚本在网页中运行并且它可以工作,但现在我需要将信息保存到文本文件中。我希望它显示在 cmets 代码末尾的格式。

谢谢

<script type="text/vbscript">
<!--
Option Explicit

DIM newbook, title, author, startpage, stoppage, timeread, dateread
DIM pagesread, pagesperminute

'input
newbook = inputbox("Is this the first time reading this book? y -or- n")

'decision
if newbook = "y" then
        title = inputbox("What is the book title?")
        author = inputbox("Who wrote the book?")
        startpage = 1 
else
        title = "******"
        author = "******"
        startpage = inputbox("What page did you start reading on")
end if

'input
stoppage = inputbox("What page did you stop reading on?")
timeread = inputbox("How long did you read?")
dateread = inputbox("What was the date you read on? MM/DD")

'calculation
pagesread = stoppage - startpage
pagesperminute = pagesread / timeread

'output
document.write "Date Read: " &(dateread)
document.write "<br>Book Title: " &(title)
document.write "<br>Author: " &(author)
document.write "<br>Pages Read: " &(startpage)
document.write " - " &(stoppage)
document.write "<br>Time Read: " &(timeread)
document.write "<br>Pages Read Per Minute: " &(pagesperminute)



'output to text log

进一步研究我想出了这个,它几乎像我想要的那样创建文件或将其他数据附加到文件中。我唯一要更改的是以下内容: filetxt.WriteLine ("读取的页数:") &startpage filetxt.WriteLine(" - ") &stoppage 这些我宁愿格式化为同一行,类似于: filetxt.WriteLine ("读取的页数:") &startpage (" - ") &stoppage 导致: 阅读页数:1 – 22 目前我无法弄清楚如何在不出错的情况下完成此操作。

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set filetxt = filesys.OpenTextFile("readlog.txt", ForAppending, True)
path = filesys.GetAbsolutePathName("C:\readlog\readlog.txt")
getname = filesys.GetFileName(path)

filetxt.WriteLine ("")
filetxt.WriteLine ("Date Read: ") &dateread
filetxt.WriteLine ("Book Title: ") &title
filetxt.WriteLine ("Author: ") &author
filetxt.WriteLine ("Pages Read: ") &startpage 
filetxt.WriteLine (" - ") &stoppage
filetxt.WriteLine ("Time Read: ") &timeread
filetxt.WriteLine ("Pages Read Per Minute: ") &pagesperminute



' -->
</script>

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    这是我编写的用于记录到文本文件的函数,您可能会发现它很有用:

    http://www.naterice.com/blog/template_permalink.asp?id=43

    '---------LogToFile Configuration---------
    'NOTE: Copy the configuration section To
    'the beginning of an existing script. The
    'values specified here must be set before
    'calling the LogToFile sub.
    
    'You can disable logging globally by
    'setting the bEnableLogging option to false.
    bEnableLogging = True
    
    'Setting this to true will time stamp Each
    'message that is logged to the log file
    'with the current date and time.
    bIncludeDateStamp = True
    
    'This will set the log file name to the
    'current date and time. You can use this
    'option to create incremental log files.
    bPrependDateStampInLogFileName = False
    
    'Specify the log file location here. Path
    'must contain a trailing backslash. If you
    'would like to log to the same location as
    'the currently running script, set this
    'value to "relative" or uncomment out the
    'line below.
    'sLogFileLocation = "C:\LogFiles\"
    sLogFileLocation = "relative"
    
    'Specify the log file name here.
    sLogFileName = "logtofiletest.txt"
    
    'You can set whether or not you would like
    'the script to append to an existing file,
    'or if you would like it to overwrite
    'existing copies. To overwrite set the
    'sOverWriteORAppend variable to "overwrite"
    sOverWriteORAppend = "append"
    
    'Here you can set the maximum number of
    'lines you like to record. If the maximum
    'is reached the beginning of the log file
    'will be pruned. Setting this to a value
    'of 0 will disable this function.
    vLogMaximumLines = 0
    
    'This is just like limiting the log file
    'to a number of lines but limits by the
    'total size of the log file. This value
    'is in bytes. Setting this to 0 will
    'disable this function.
    vLogMaximumSize = 0
    '-------END LogToFile Configuration-------
    
    Sub LogToFile(Message)
        'LogToFile.vbs 10-18-07
        'This script is provided under the Creative Commons license located
        'at http://creativecommons.org/licenses/by-nc/2.5/ . It may not
        'be used for commercial purposes with out the expressed written consent
        'of NateRice.com
    
        If bEnableLogging = False Then Exit Sub
    
        Const ForReading = 1
        Const ForWriting = 2
        Const ForAppending = 8
    
        Set oLogFSO = CreateObject("Scripting.FileSystemObject")
    
        If sLogFileLocation = "relative" Then
            Set oLogShell = CreateObject("Wscript.Shell")
            sLogFileLocation = oLogShell.CurrentDirectory & "\"
            Set oLogShell = Nothing
        End If
    
        If bPrependDateStampInLogFileName Then
            sNow = Replace(Replace(Now(),"/","-"),":",".")
            sLogFileName = sNow & " - " & sLogFileName
            bPrependDateStampInLogFileName = False       
        End If
    
        sLogFile = sLogFileLocation & sLogFileName
    
        If sOverWriteORAppend = "overwrite" Then
            Set oLogFile = oLogFSO.OpenTextFile(sLogFile, ForWriting, True)
            sOverWriteORAppend = "append"
        Else
            Set oLogFile = oLogFSO.OpenTextFile(sLogFile, ForAppending, True)
        End If
    
        If bIncludeDateStamp Then
            Message = Now & "   " & Message
        End If
    
        oLogFile.WriteLine(Message)
        oLogFile.Close
    
        If vLogMaximumLines > 0 Then
          Set oReadLogFile = oLogFSO.OpenTextFile(sLogFile, ForReading, True)   
          sFileContents = oReadLogFile.ReadAll
          aFileContents = Split(sFileContents, vbCRLF)
          If Ubound(aFileContents) > vLogMaximumLines Then
            sFileContents = Replace(sFileContents, aFileContents(0) & _
            vbCRLF, "", 1, Len(aFileContents(0) & vbCRLF))
            Set oLogFile = oLogFSO.OpenTextFile(sLogFile, ForWriting, True)
            oLogFile.Write(sFileContents)
            oLogFile.Close
          End If
          oReadLogFile.Close
        End If
    
        If vLogMaximumSize > 0 Then
          Set oReadLogFile = oLogFSO.OpenTextFile(sLogFile, ForReading, True)  
          sFileContents = oReadLogFile.ReadAll
          oReadLogFile.Close
          sFileContents = RightB(sFileContents, (vLogMaximumSize*2))
          Set oLogFile = oLogFSO.OpenTextFile(sLogFile, ForWriting, True)
          oLogFile.Write(sFileContents)
          oLogFIle.Close
        End If
    
        oLogFSO = Null
    End Sub
    

    在设置所有配置选项后,您将如何准确记录所需内容:

    LogToFile vbCRLF &_
    "Date Read: " & dateread & vbCRLF &_
    "Book Title: " & title & vbCRLF &_
    "Author: " & author & vbCRLF &_
    "Pages Read: " & startpage  & vbCRLF &_
    " - " & stoppage & vbCRLF &_
    "Time Read: " & timeread & vbCRLF &_
    "Pages Read Per Minute: " & pagesperminute
    

    【讨论】:

    • 谢谢 Nathan,我想知道除了我之外是否有人在看这个。您是否碰巧知道如何进行格式化,以便将其保存到我想要的日志文件中?
    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 2013-12-28
    • 2013-12-24
    • 2011-02-01
    相关资源
    最近更新 更多