Vbscript 用于自动创建文件的VB脚本(按需机会!)
我是一名财务人员,不是VB脚本大师,但我想知道是否有人可以根据我的要求创建一个示例VB脚本 无论谁先提供解决方案,并且解决方案在我这边有效,都将有机会(当然是付费的)在我工作的地方创建更多这些定制解决方案。这不是一个全职职位,而是一个随需应变的机会 要求: 能够读取由逗号分隔且具有各种条目的文本文件 例如,在文本文件中。。。 SEC_E_All_Entities,HSII,SL_维度,读写,@IDESCENDANTS,N Secu E__ENT_Americas,Americas,SL_维度,读取,成员,N 并执行以下操作Vbscript 用于自动创建文件的VB脚本(按需机会!),vbscript,automation,Vbscript,Automation,我是一名财务人员,不是VB脚本大师,但我想知道是否有人可以根据我的要求创建一个示例VB脚本 无论谁先提供解决方案,并且解决方案在我这边有效,都将有机会(当然是付费的)在我工作的地方创建更多这些定制解决方案。这不是一个全职职位,而是一个随需应变的机会 要求: 能够读取由逗号分隔且具有各种条目的文本文件 例如,在文本文件中。。。 SEC_E_All_Entities,HSII,SL_维度,读写,@IDESCENDANTS,N Secu E__ENT_Americas,Americas,SL_维度,读
创建SEC_E_All_Entities.XML和SEC_E_ENT_Americas.XML
<?xml version="1.0" encoding="UTF-8" ?>
<acls>
<acl>
<name>SEC_E_All_Entities</name>
<objectName>HSII</objectName>
<objectType>SL_DIMENSION</objectType>
<accessMode>READWRITE</accessMode>
<flag>@IDESCENDANTS</flag>
<isUser>N</isUser>
</acl>
</acls>
<?xml version="1.0" encoding="UTF-8" ?>
<acls>
<acl>
<name>SEC_E_ENT_Americas</name>
<objectName>Americas</objectName>
<objectType>SL_DIMENSION</objectType>
<accessMode>READ</accessMode>
<flag>MEMBER</flag>
<isUser>N</isUser>
</acl>
</acls>
SEC_E_所有实体
谢
SL_维数
读写
@理想主义者
N
在SEC_E_All_Americas.XML文件中,写入
<?xml version="1.0" encoding="UTF-8" ?>
<acls>
<acl>
<name>SEC_E_All_Entities</name>
<objectName>HSII</objectName>
<objectType>SL_DIMENSION</objectType>
<accessMode>READWRITE</accessMode>
<flag>@IDESCENDANTS</flag>
<isUser>N</isUser>
</acl>
</acls>
<?xml version="1.0" encoding="UTF-8" ?>
<acls>
<acl>
<name>SEC_E_ENT_Americas</name>
<objectName>Americas</objectName>
<objectType>SL_DIMENSION</objectType>
<accessMode>READ</accessMode>
<flag>MEMBER</flag>
<isUser>N</isUser>
</acl>
</acls>
美国证券交易所
美洲
SL_维数
阅读
成员
N
问候,,
Judy示例脚本
'Step 1 - Read the file and store the content in memory (an array)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Users\pankaj.jaju\Desktop\StackOverflow\acls.txt", 1)
arrFile = Split(objFile.ReadAll, vbCrLf) 'will store one line in each array index
objFile.Close
'Step 2 - Load the XML template in memory
Set xmlTemplate = CreateObject("MSXML2.DOMDocument.6.0")
With xmlTemplate
.ValidateOnParse = True
.Async = False
.LoadXML "<?xml version=""1.0"" encoding=""UTF-8"" ?>" & _
"<acls>" & _
"<acl>" & _
"<name></name>" & _
"<objectName></objectName>" & _
"<objectType></objectType>" & _
"<accessMode></accessMode>" & _
"<flag></flag>" & _
"<isUser></isUser>" & _
"</acl>" & _
"</acls>"
End With
'Step 3 - Load the relevant fields for which the data is to be set from csv file
Set nodeFields = xmlTemplate.DocumentElement.SelectNodes("/acls/acl/*")
'Step 4 - Read each line of text and create XML
For i = LBound(arrFile) To UBound(arrFile)
arrLine = Split(arrFile(i), ",") 'will split the line into various fields (to be used to create the xml)
For j = LBound(arrLine) To UBound(arrLine) 'set values for each field
nodeFields(j).Text = arrLine(j)
Next
Set xmlNew = xmlTemplate
xmlNew.Save objFSO.BuildPath("C:\Users\pankaj.jaju\Desktop\StackOverflow\", nodeFields(0).Text & ".xml") 'copy modified template as new xml file
Set xmlNew = Nothing
Next
“步骤1-读取文件并将内容存储在内存中(数组)
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
设置objFile=objFSO.OpenTextFile(“C:\Users\pankaj.jaju\Desktop\StackOverflow\acls.txt”,1)
arrFile=Split(objFile.ReadAll,vbCrLf)”将在每个数组索引中存储一行
objFile.Close
'步骤2-在内存中加载XML模板
设置xmlTemplate=CreateObject(“MSXML2.DOMDocument.6.0”)
使用xmlTemplate
.ValidateOnParse=True
.Async=False
.LoadXML“”&_
"" & _
"" & _
"" & _
"" & _
"" & _
"" & _
"" & _
"" & _
"" & _
""
以
'步骤3-加载要从csv文件中为其设置数据的相关字段
设置nodeFields=xmlTemplate.DocumentElement.SelectNodes(“/acls/acl/*”)
'步骤4-阅读每行文本并创建XML
对于i=LBound(arrFile)到UBound(arrFile)
arrLine=Split(arrFile(i),“,”)将行拆分为多个字段(用于创建xml)
对于j=LBound(arrLine)到UBound(arrLine)'设置每个字段的值
节点字段(j)。Text=arrLine(j)
下一个
设置xmlNew=xmlTemplate
xmlNew.Save objFSO.BuildPath(“C:\Users\pankaj.jaju\Desktop\StackOverflow\”,nodeFields(0.Text&“.xml”)”将修改后的模板复制为新的xml文件
设置xmlNew=Nothing
下一个
csv文件的结构是否保持静态?如中所示,每行将有6个值?这是正确的,Pankaj。谢谢你的提问。谢谢你的快速回复,潘卡吉!我将让我们的一位业务分析师为我们设置这个,并在我们的测试中回复您。非常感谢!别担心。请注意,这是一个没有错误处理的基本脚本,而且我只使用了您提供的文件结构!明亮的我们还有更多的工作要做。我们怎样才能和你联系?