【问题标题】:Push log file into SAP BODS with vbscript使用 vbscript 将日志文件推送到 SAP BODS
【发布时间】:2016-06-10 07:54:51
【问题描述】:

我需要在日志文件中查找一串文本。

找到该字符串后,我想立即获取接下来的 4 行文本,请参见下面的示例:

示例找到的文本字符串 找到字符串后的第一行 找到字符串后的第二行 找到字符串后的第三行 找到字符串后的第四行

我的代码是:

'strFileName = "D:\write123.xls" 
'Set objExcel = CreateObject("Excel.Application") 
'objExcel.Visible = True 
'Set objWorkbook = objExcel.Workbooks.Add() 
'objWorkbook.SaveAs(strFileName) 
'objExcel.Quit 
Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\mic.txt",1) 
strFileText = objFileToRead.ReadAll() 
objFileToRead.Close 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFileToWrite = objFSO.OpenTextFile("D:\write123.xlsx", 2) 
objFileToWrite.Write strFileText 
objFileToWrite.Close

任何帮助或任何替代方案或任何 脚本 将不胜感激,我只想将日志文件的内容提取到我的目标表中。

谢谢 奇拉格

【问题讨论】:

  • 嗨,你已经尝试了什么? Stack Overflow 不是代码编写服务,但我们很乐意帮助您解决您已经编写的代码中的问题。请阅读How to Ask 并提供minimal reproducible example
  • 您好,我的代码是:'strFileName = "D:\write123.xls" 'Set objExcel = CreateObject("Excel.Application") 'objExcel.Visible = True 'Set objWorkbook = objExcel.Workbooks. Add() 'objWorkbook.SaveAs(strFileName) 'objExcel.Quit Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\mic.txt",1) strFileText = objFileToRead.ReadAll() objFileToRead.Close Set objFSO = CreateObject("Scripting.FileSystemObject") 设置 objFileToWrite = objFSO.OpenTextFile("D:\write123.xlsx", 2) objFileToWrite.Write strFileText objFileToWrite.Close
  • 它说“找不到文件”,我尝试将文件放在每个路径中。但仍然没有得到。请您帮忙,以便我可以将日志文件的内容写入 excel 文件。
  • 如果要将输出写入 Excel 文件,最好使用 Excel.Application 对象并以这种方式引用它。您可能会收到file not found,因为D:\write123.xlsx 不存在,您没有创建它,而且您可能不想使用.xlsx 编写文本文件。无论如何,文件类型,因为 Excel 只会将其称为损坏。

标签: vbscript sap sap-data-services


【解决方案1】:
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
dim objFileToRead : Set objFileToRead = objFSO.OpenTextFile("D:\mic.txt",1) 
dim myArray(0)
While Not objFileToRead.AtEndOfStream
    strLine = objFileToRead.ReadLine
    myArray(UBound(myArray)) = strLine
    reDim Preserve myArray(UBound(myArray)+1)
Wend
objFileToRead.Close 
Dim objExcelApp : Set objExcelApp = CreateObject("Excel.Application")
dim myExcel : Set myExcel = objExcel.Workbooks.Add()
With myExcel.Worksheets(1)
    For myLoop = 0 to UBound(myArray)
        .Range("A" & myLoop).Value = myArray(myLoop)
    Next
End With
myExcel.SaveAs Filename:="D:\write123.xlsx"
myExcel.Close
objExcel.Quit
Set objExcel = Nothing
Set objFileToRead = Nothing
Set objFSO = Nothing

这段代码所做的是将日志文件的全部内容读入一个数组;创建一个 Excel 实例和一个工作簿;对于日志条目数组中的每一行,将其输入“A”列;在退出 Excel 之前保存并关闭工作簿。如果您需要更多关于这里发生的事情的解释,请告诉我?

【讨论】:

    猜你喜欢
    • 2021-08-04
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2018-08-24
    • 1970-01-01
    相关资源
    最近更新 更多