使用vbs修改XML文件的内容???

曲建华 2018-12-04 04:28:07

我想将这个xml文件的第29行内容中的*号实现换行,即每隔20个*加一个回车,假设有10000个*,并保存,求代码啊
...全文
409 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2018-12-08
  • 打赏
  • 举报
回复
引用 10 楼 曲建华 的回复:
[quote=引用 8 楼 舉杯邀明月 的回复:]
…………


我看你这个代码也没有插入回车符号,是怎么实现换行的呢,能不能给我简单讲一下原理[/quote]

文件对象,以“文本”方式进行操作,
 在执行 Obj.WriteLine( )把指定的文本内容写入文件后,会自动在后面添加“回车换行”啊。

对应的,在执行 Obj.ReadLine( )时,会从“当前位置”开始读取字符内容;
 在遇到“回车换行”(或文件结束)时停止读取,把读到的内容“去掉回车换行”后返回。
曲建华 2018-12-06
  • 打赏
  • 举报
回复
引用 8 楼 舉杯邀明月 的回复:
点“结贴”,会打开一个新的网页,填好分数后,再点那个网页中的“结贴给分”。
我看你这个代码也没有插入回车符号,是怎么实现换行的呢,能不能给我简单讲一下原理
舉杯邀明月 2018-12-05
  • 打赏
  • 举报
回复
下面是VBS 代码,试试看: 
Option Explicit

Dim objFSO, objInFile, objOutFile
Dim strTemp, i, k
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInFile = objFSO.OpenTextFile("X:\xxxx\源文件.xml")
Set objOutFile = objFSO.CreateTextFile("X:\xxxx\处理后.xml")
For i = 1 To 28
objOutFile.WriteLine(objInFile.ReadLine())
Next
strTemp = objInFile.ReadLine()
k = InStr(strTemp, "*")
i = 20 + k
objOutFile.WriteLine(Left(strTemp, i - 1))
k = Len(strTemp)
While(i <= k)
objOutFile.WriteLine(Mid(strTemp, i, 20))
i = 20 + i
Wend
Do
If (objInFile.AtEndOfStream) Then Exit Do
objOutFile.WriteLine(objInFile.ReadLine())
Loop
objOutFile.Close
objInFile.Close
MsgBox "处理完成。", 64
舉杯邀明月 2018-12-05
  • 打赏
  • 举报
回复
好吧,刚才注意到你要的是“VBS”代码,无视上面的代码吧。


不过,第17行到第26行的代码,是可以参考的。
(但注意:要把我写的代码中的几个 & 和 $ 去掉)
舉杯邀明月 2018-12-05
  • 打赏
  • 举报
回复
我说的“第3条”你就无视了?



我就假设“全是星号”吧,参考一下:
Private Sub Command1_Click()
Dim arrData() As Byte
Dim arrBuff() As String
Dim strTemp As String
Dim i&, k As Long

Open "X:\xxxx\源文件.xml" For Binary As #1
k = LOF(1)
ReDim arrData(k - 1&)
Get #1, , arrData()
Close
arrBuff = Split(StrConv(arrData(), vbUnicode))
Open "X:\xxxx\处理后.xml" For Output As #1
For i = 0& To 27&
Print #1, arrBuff(i)
Next
strTemp = arrBuff(28&)
k = InStr(strTemp, "*")
i = 20& + k
Print #1, Left$(strTemp, i - 1&);
k = Len(strTemp)
While (i <= k)
Print #1, Mid$(strTemp, i, 20&);
i = 20& + i
Wend
Print #1,
For i = 29& To UBound(arrBuff())
Print #1, arrBuff(i)
Next
Close
End Sub
曲建华 2018-12-05
  • 打赏
  • 举报
回复
引用 1 楼 舉杯邀明月 的回复:
xlm文件也是“文本文件”,你按文本文件的操作方式处理就行了。 很简单的………… 你的第29行,那后面是“星号”吗?怎么我在图片上看到的全是“点”呢…… 另外: 1. 只有这一行需要处理吗?还是说,可能存在很多个这样的行呢? 2. 它一定是“在第29行”吗? 3. 是“全是星号”,还是说间隔一些文字出现一个星号?   具体情况不同,处理的细节上会有差别的。
我是菜鸟,这个只在29行,不管是*号还是“点”,都可以我只是想要类似修改这种文件的操作方法。谢谢!
曲建华 2018-12-05
  • 打赏
  • 举报
回复
引用 8 楼 舉杯邀明月 的回复:
点“结贴”,会打开一个新的网页,填好分数后,再点那个网页中的“结贴给分”。
好的,感谢,后面有问题我还会咨询你!
舉杯邀明月 2018-12-05
  • 打赏
  • 举报
回复
点“结贴”,会打开一个新的网页,填好分数后,再点那个网页中的“结贴给分”。



舉杯邀明月 2018-12-05
  • 打赏
  • 举报
回复
引用 6 楼 曲建华 的回复:
[quote=引用 5 楼 舉杯邀明月 的回复:]
下面是VBS 代码,试试看: 
………………

非常感谢!代码可以,但是和我想像中的不太一样,因为这第二十九行中不仅仅是“*”,其中还有其他的字符,这样结果确实不一样了。
另外怎么样才能把分给你呀,不会操作[/quote]

我开始就问了你,那一行是否“全是星号”,你又不回答!!! (虽然我觉得这种可能比较小)


你这个帖子的“标题”右下方,或者“回复框”的右上方,都有个“结贴”的链接,
 你点一下,然后在我回复的任意一层楼中,把分给我就行了。


Option Explicit

Dim objFSO, objInFile, objOutFile
Dim strTemp, i, k, p
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInFile = objFSO.OpenTextFile("X:\xxxx\源文件.xml")
Set objOutFile = objFSO.CreateTextFile("X:\xxxx\处理后.xml")
For i = 1 To 28
objOutFile.WriteLine (objInFile.ReadLine())
Next
strTemp = objInFile.ReadLine()
p = 0
Do
k = p + 1
For i = 1 To 20
p = InStr(1 + p, strTemp, "*")
If (0 = p) Then
objOutFile.WriteLine(Mid(strTemp, k))
Exit Do
End If
Next
objOutFile.WriteLine(Mid(strTemp, k, p-k +1))
If (p = Len(strTemp)) Then Exit Do
Loop
Do
If (objInFile.AtEndOfStream) Then Exit Do
objOutFile.WriteLine(objInFile.ReadLine())
Loop
objOutFile.Close
objInFile.Close
MsgBox "处理完成。", 64
曲建华 2018-12-05
  • 打赏
  • 举报
回复
引用 5 楼 舉杯邀明月 的回复:
下面是VBS 代码,试试看: 
Option Explicit

Dim objFSO, objInFile, objOutFile
Dim strTemp, i, k
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInFile = objFSO.OpenTextFile("X:\xxxx\源文件.xml")
Set objOutFile = objFSO.CreateTextFile("X:\xxxx\处理后.xml")
For i = 1 To 28
   objOutFile.WriteLine(objInFile.ReadLine())
Next
strTemp = objInFile.ReadLine()
k = InStr(strTemp, "*")
i = 20 + k
objOutFile.WriteLine(Left(strTemp, i - 1))
k = Len(strTemp)
While(i <= k)
   objOutFile.WriteLine(Mid(strTemp, i, 20))
   i = 20 + i
Wend
Do
  If (objInFile.AtEndOfStream) Then Exit Do
  objOutFile.WriteLine(objInFile.ReadLine())
Loop
objOutFile.Close
objInFile.Close
MsgBox "处理完成。", 64
非常感谢!代码可以,但是和我想像中的不太一样,因为这第二十九行中不仅仅是“*”,其中还有其他的字符,这样结果确实不一样了。 另外怎么样才能把分给你呀,不会操作
舉杯邀明月 2018-12-04
  • 打赏
  • 举报
回复
xlm文件也是“文本文件”,你按文本文件的操作方式处理就行了。
很简单的…………


你的第29行,那后面是“星号”吗?怎么我在图片上看到的全是“点”呢……
另外:
1. 只有这一行需要处理吗?还是说,可能存在很多个这样的行呢?
2. 它一定是“在第29行”吗?
3. 是“全是星号”,还是说间隔一些文字出现一个星号?
  具体情况不同,处理的细节上会有差别的。
软件介绍 Radialix 是一款功能比较强大的软件本地化工具,支持以 VC++、Delphi、.Net 等语言编写的软件、以及 INI 格式文本文件的本地化。尤其是它具有非标资源的本地化功能、以及可以设置更多的资源属性。以下是开发商的描述。 - PE32、PE32+ 文件、.NET 程序集,资源和各类文本文件的本地化 - 加载子程序集的 .NET 程序集的本地化 - 非标(硬编码)字符串的本地化 - IDA 插件 - Unicode 支持 - 自动翻译、包括模糊翻译 - 机器翻译 - 翻译验证检查 - 对话框、窗体和菜单的所见即所得可视化编辑 - 导出和导入 CSV、TMX 和 TXT 文件 - 翻译记忆编辑器 - XML 格式的方案文件 ☆开发商更新 ======================================================== 版本 2.10.02.2661 ==================== + 增加了 XLS 文件的导入及导出 (Microsoft Excel 97+)。 + 在导入语言列表中添加了 选项。 + 增加了导出选项“排序数据”、“跳过重复”、“删除加速器字符(&)”和“删除快捷键 (\t)” + 在统计信息面板上增加了“文件”字段,它显示选定文件数。 + 更改了命令行选项 –ec 和 –et 的语法。现在它们可以包含参数 : –ec[:] -et [:] + 增加了白俄罗斯语用户界面。 - 修正了“无法反序列化 system.object”的缺陷(.NET)。 - 修正了不正确的 BITMAP 显示格式,如果它使用 16 位颜色。 - 修正了含某些 16 位颜色格式的 ImageList 对象的不正确创建 (VCL, .NET)。 - 修正了在本地化程序集中保存了错误的模块属性的缺陷 (.NET)。 - 修正了 METADATA 资源为“只读”时,有时创建了不正确的本地化程序集的缺陷 (.NET)。 - 修正了关闭方案时有时会出现的“访问冲突”,如果方案包含文本文件模板。 - 修正了在窗体设计器中的“访问冲突”,如果原始文件是一个资源库。 - 修正了单击翻译记忆编辑器标题后出现的“访问冲突”。 - 修正了创建快捷键后出现的“列表索引超出范围”,如果方案包含多种目标语言。 - 一些次要的修正。 ☆与原版比较: ======================================================== - 选用 MSI 安装程序(原版 Inno Setup) - 已安装原版的话,将提示卸载原版,并安装本版本 - 将拼写检查用词典和发布程序功能单独列出,以供用户选择安装 - 自动检测并判断 IDA 插件的默认安装位置和状态(只对 IDA 专业版 5.2 及以上的安装版有效) - 增加了未安装 IDA 情况下的可自定义 IDA 插件安装位置对话框 - 增加了发布程序中的简体中文语言文件 - 提供卸载时删除 Radialix 2 用户注册表数据和共享文档中的 Radialix 2 文件夹的选项 - 添加了“汉化新世纪”和“汉化说明”的文本文档 - 增加了汉化版更新的检测、下载和安装等自动更新功能 - 在升级安装状态下屏蔽了开始菜单选择对话框和安装位置浏览按钮 - 增加了 VBS 脚本引擎的运行环境及注册(自动监测) - 增加了简体中文语言文件,并删除了英语以外的所有其他语言文件 - 添加了 19 个自定义文本文件模板 ☆美中不足: ======================================================== - 错误报告的程序界面没有汉化(内容提供给开发商看的,所以不用汉化) - 由于是未脱壳汉化,非标部分没有办法汉化,可能存在部分英文字串 ☆使用说明: ======================================================== - 本汉化软件不需要先安装原英文文件。 - 安装程序没有任何捆绑,请放心使用。 - 该汉化软件已在 Windows XP/2003/Vista 中测试通过。
蓝丽Net留言系统说明手册 1:蓝丽Net留言系统亮点提示 蓝丽Net留言系统虽然开发的时间较短,但实为技术内涵较高,有其独特的风格特点 主要用途:使访客自由留言,管理员(站长)自由回复,或用于信息发布,资料存储 综合特点(采用较新的asp.net+xml+xsl设计,一应功能俱全,老搭档新品种该有的功能都有了 版面清爽,速度流畅,操作方便,安全稳定,安装管理方便,占用资源少,占用空间少 PS:FYW真能吹^-^) 性能方面:普通PC机访问本系统主页,能够达到50-200MS,这方面Xml若逊于Html方式输出的速度 安装方面:非常简单,几乎无需改动或根据您的要求少加改动,上传至服务器即可正常运行 安全方面:在本人已知的Asp,Asp.net存在的(数据提交,Sql注入,Cookies欺骗,跨站提交,注水 提交)等安全隐患上下了许多工夫,经仔细测试在这些方面约能达到98%的安全,至于 本人未接触到的安全隐患方面,请自行升级或提示本人改正 2:安装调试蓝丽Net留言系统 既然看到了本帮助文件,那相信此时您已将本系统压缩包(rar,zip)解压 首先,请确认您的服务器操作系统支持运行Asp.net,IE版本在5.5以上,或者您有远程虚拟主机 若您的操作系统不支持Asp.net,那请你先安装,如何安装请参考相关书籍或网上教程 将本压缩包中所有文件,复制到你的IIS中的任意一个网站虚拟目录(或新建一个子目录)对应 打开浏览器,在本地访问 index.aspx 这个文件,如出现蓝丽Net留言系统界面则表示完成安装 完成安装后,即可边运行测试边查看原代码学习 其中,web.config文件中包含了管理员密码(默认为:123),以及数据库路径,默认为server.m appath("book.mdb"),和数据库连接语句(默认为连接新版Access数据库用句),当然这些你 都可以自己设置啦 经过您半个小时的测试,大约对本系统结构已经很熟悉了,你可以根据须要更改界面,升级修改 程序,满意后传到你的服务器上就OK了 3:文件-作用 index.aspx 留言本的主页,输出类型为(XML),使用theindex.xsl文件作为目标样式表 其主要作用是“取出数据库内容,将得到数据整理成为Xml文件,来配合th eindex.xsl样式表中的样式进行正确的输出显示” theindex.xsl 留言本主页index.aspx的样式表文件,该文件主要作用是“将index.aspx 取到的Xml数据进行格式化,然后以超文本形式输出结果” admin.aspx 留言本后台管理程序,作用有“验证管理员密码,回复留言,退出管理模式” showmessage.aspx 留言内容显示文件 addnew.aspx 提供给用户,完成发表新的留言 web.config 通用设置,配置了基本的运行环境,其中还包括“管理员密码,数据库连接 语句,以及数据库路径文件名”,这3项你可以自由更改 4:book数据库字段对应的功能 book数据库有一个table1表,本系统就使用了这一个table1表,table1表中的字段说明如下 id 显然是留言的唯一标识主键,完成删除、回复等操作均用它来标识目标记录 title 留言标题 body 留言内容 homepage 主页 email 邮件 oicq OICQ号码 address 地址 sex 性别 link 连接至,主要用来区分“主题”“回复”,为0则表示为主题,否则将是目标id的回复 noopen 留言是否公开,默认为false,表示所有人均能查看,为true则表示仅有管理员能看 reply 已回复,表示这条留言站长是否已经回复,默认为false,表示没有 dates 发表日期 gengxindates 回复日期,记录管理员回复的时间,显示时将依据这个进行排序 IP 记录用户IP地址 liuyanzuozhe 留言作者名称 5:关于 网络程序员伴侣(Lshdic)2004_星钻超爽版 关于 网络程序员伴侣(Lshdic)2004_星钻超爽版 ,简称LD4+,暂时未发布,尚在升级制作当中,下边是其一些消息 LD4+是LD4的升级版本,界面基本跟LD4差不多(不过稍微修饰了一下,界面本人一惯风格要求“简”“整” ,花俏杂琐的界面我不会采取) 优化的速度,由于此类软件,非常耗用CPU,在LD4中,如果编辑超过3万字的程序,将会明显感觉迟钝、缓慢,而 在LD4+中针对这一问题进行了全面的算法重写以及解析方式的更新,使的速度大幅度提高! 修复的漏洞和改进的程序,LD4操作不便以及明显存在漏洞的地方现进行了全面的升级及修复,尽量使其达到目标要求 除了LD4中已支持了11种语言类库,现预计开发Asp.net,Jsp,Java类库,其中Asp.net语言库已开始制作 短期内不会发布,任何问题请登陆蓝丽技术论坛(http://www.lshdic.com/bbs)所属栏目咨询。
很好用的工具,传来与大家共享: SciTE 绿色软件,不写注册表。 SciTE 是个开源的优秀且小巧功能强大的编辑器!它支持代码高亮、自动完成、代码折叠、括号匹配、自定义模块等! 它几乎可以用到目前任何的主流语言上面,而且还支持众多的配置文件的高亮折叠,突出等效果!如 Apache 的 conf 文件 php.ini 文件像平时我们在改这些文件的是后往往为了找到某字段而费劲功夫,如今你大可以轻松的去配置它们了. SciTE最强打的地方无疑就是它的自配置功能了!他的配置文件就在主文件下,后缀为 properties 的文件。它们分别是用于各语言和程序的配置设置,包括显示设置,功能设置等等!然而刚接触 SciTE 的朋友会因为这个功能一头雾水,毕竟需要手动修改代码进行配置,但是如果你真的懂了这些代码你会发现 SciTE 全身都在闪耀着光芒! 像notepad2,notepad++等等一些流行的记事本软件都是在以其为基础的。 官方网站:http://www.scintilla.org/SciTE.html 官方文档:http://www.scintilla.org/SciTEDoc.html 可以为各种语言指定编译器,直接编译,是一个很小巧的IDE。在windows下还可以下载 Filerx 来管理我们的project和macro,其下载地址为 http://llt.chez.tiscali.fr/ 可以为各种语言添加API,使其有和vc vs一样的下拉菜单提示及自动完成API函数名,关键字等等。 其下载地址为 http://groups.google.com/group/scite-interest/web/extras 还可以自己定义语言,并为自己的语言设置语法高亮。 像vc vs中的代码折叠也是支持的。 1 自定义语法高亮,支持HTML, XML, CSS, Javas cript, VBs cript, ASP, PHP, CSS, Perl/CGI,C/C++, C#, Java, VB, Pascal, 汇编, SQL, Python, NSIS,INI, REG, INF, BAT,DIFF等众多脚本文件。 2 支持ANSI,Unicode,UTF-8等编码互换 3 可以设置无限个书签轻松定位 4 空格,制表符彩色显示,并可互相转换 5 可以对任意的文本块进行操作,ALT键+鼠标 6 对括号{}〔〕()可以高亮配对显示,方便查看(仅对英文符号有效) 7 可以自定义代码页和字符集,对中文支持良好 8 使用标准的正则表达式搜索和替换 配置要自己动手修改配置文件。 这是我配置好的中文版SciTE,内含cpp的API和批处理的API。 如果要自己配置,请参考帮助.(英语水平应好,我没有翻译帮助文件). Sc1.exe 是 静态版本。即不需要SciLexer.dll,Scintilla.dll两个动态连接库,只有一个exe文件,可以单独拿出来使用,但自己 不能配置语法 Scite.exe SciLexer.dll,Scintilla.dll 和其他的语言的properties文件一起使用

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧