[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

20元求脚本替换文本内容,问题描述如下:

问题描述:
当前路径下存在Test文件夹,Test下面有两个文本文件,需要包含 .method XXX 开始的字符串到下一个
.end method的内容全部用src里面的内容替换掉,包换 .method XXX 和.end method所在的行。
层级:
Test\dst
Test\src
文件内容:
dst的内容如下:
  1. # virtual methods
  2. .method protected canAcceleration()Z
  3.     .locals 5
  4.     .prologue
  5.     .line 914
  6.     const/4 v0, 0x0
  7.     return v0
  8. .end method
  9. .method protected getIsVip()V
  10.     .locals 3
  11.     .prologue
  12.     const/4 v0, 0x0
  13.     return v0
  14. .end method
复制代码
src的内容如下:
  1. .method protected getIsVip()V
  2.     .locals 3
  3.     .prologue
  4.     const/4 v0, 0x1
  5.     return v0
  6. .end method
复制代码
需要把dst里面的方法换成:
  1. .method protected getIsVip()V
  2.     .locals 3
  3.     .prologue
  4.     const/4 v0, 0x0
  5.     return v0
  6. .end method
复制代码
这个字段区间里面的内容全部换成 src 里面的文本内容 :
  1. .method protected getIsVip()V
  2.     .locals 3
  3.     .prologue
  4.     const/4 v0, 0x1
  5.     return v0
  6. .end method
复制代码

我的思路是:
(1)先找到 Test 文件中的 dst 文件 ,然后读取.method protected getIsVip()V的所在行,记录下此时的行号 %StartLineNumber%,然后继续查找与.method protected getIsVip()V相匹配的.end method,同样记录此时的.end method所在的行号%EndLineNumber%。
(2) 此时读取src文件内的所有文本内容,直接替换掉%StartLineNumber%所在行和%EndLineNumber%所在行的内容即可。
PS:每个人的码风不太一样,能实现就好,互相交流学习,请大家多多指教。

TOP

回复 2# zaqmlp
Twenty Yuan. E-mail :1432689025@qq.com

TOP

返回列表