中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [VBS]如何把文本中回车转换成&vbcr&字符
« [1] [2] »
作者:
标题: [VBS]如何把文本中回车转换成&vbcr&字符 上一主题 | 下一主题
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『楼 主』:  [VBS]如何把文本中回车转换成&vbcr&字符

如何把文本中回车转换成&vbcr&字符??
比如用ReadAll读了个文本的内容,假设是:

ff
fukkk
eee


然后把转换成:
ff&vbcr&fukkk&vbcr&eee

我用Asc函数转换,但转换成这样的:
ff
&vbcr&fukkk
&vbcr&eee

请指教啊!谢谢

2007-4-14 10:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 2 楼』:  



  Quote:
Originally posted by kich at 2007-4-14 10:02:
如何把文本中回车转换成&vbcr&字符??
比如用ReadAll读了个文本的内容,假设是:

ff
fukkk
eee


然后把转换成:
ff&vbcr&fukkk&vbcr&eee

我 ...

你所谓的回车,其实是回车+换行,如果没猜错的话,你只是替换了回车,还剩换行在呢,当然是那效果。



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-4-14 11:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 3 楼』:  

哦,对的,恩,谢谢了!好象是这么做的!!

问一下,把一篇TXT文字(里面可能会有特殊符号和回车)定义成一个很长的字符,然后放到VBS脚本里做为一个常数,怎么做啊??

2007-4-14 11:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by kich at 2007-4-14 11:57:
哦,对的,恩,谢谢了!好象是这么做的!!

问一下,把一篇TXT文字(里面可能会有特殊符号和回车)定义成一个很长的字符,然后放到VBS脚本里做为一个常数,怎么做啊??

没看明白你的意思.



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-4-14 12:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 5 楼』:  

就是说,如果我有一大段文字,我需要它作为一个常量,然后我准备输入到其他文本里(因为其他文本要用到这些文字).比如说,一个HTML的小段文字,我要把它作为一个常量输出,但它里面有特殊字符,怎么解决??(回车和引号,不能把这一大段作为一个常量吧,因为有回车在里面嘛)

不知道有没有说明白!!

2007-4-15 00:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 6 楼』:  

引号 可以用chr(34)

不如你再说明白一些你的最终目的,比如这样做是为了"加密" 或其他的



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-4-15 00:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 7 楼』:  

我的目的:
我是想做一个中英文双字幕的字幕文件,但首先要对这些字幕做格式说明,因为我要对很多电影的字幕做操作,而他们的格式都是一样的,所以,这些定义的格式,可以把它做成一个常量放在VBS文件里,然后,分别调入中英文字幕再稍加处理,然后在这些中英文字幕的最前面加上定义的格式说明(就是那个常量),但这个常量是个比较长的文本段,有十几行,没办法做成一个常量.
为更表达更清晰,把那个格式定义帖出来放在下面,看看怎么把这段文本做成一个常量呢?
[Script Info]
;本字幕为英语在上,汉语在下,视频内部有时会出现英语.
ScriptType: v4.00
Collisions: Normal
PlayResX: 384
PlayResY: 288
Timer: 100.0000

[V4 Styles]
;汉字样式
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,17,&Hffffff,&H00ffff,&H000000,&H000000,-1,0,1,2,0,2,20,20,21,0,1

;英语样式
Style: Default2,Arial,12,&Hffffff,&H00ffff,&H000000,&H000000,-1,0,1,2,0,2,20,20,5,0,1

;当视频内置英文字幕时,则用次汉语字幕样式,以至不会隐藏掉视频里的英语字幕.
Style: Default3,Arial,15,&Hffffff,&H00ffff,&H000000,&H000000,-1,0,1,2,0,2,20,20,5,0,1
当然,有时候还涉及到引号!
Thx

[ Last edited by kich on 2007-4-15 at 12:27 AM ]

2007-4-15 00:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 8 楼』:  

我以前的做法是把这段文字作成一个文本文件放在那,然后用ReadAll调用,但这就要求这个文本文件必须存在,很麻烦,一个脚本+一个文件!
如果把这段文字定义成常量放在VBS里,这样就省事多了,可以随便拷贝了!!

2007-4-15 00:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by kich at 2007-4-15 00:31:
我以前的做法是把这段文字作成一个文本文件放在那,然后用ReadAll调用,但这就要求这个文本文件必须存在,很麻烦,一个脚本+一个文件!
如果把这段文字定义成常量放在VBS里,这样就省事多了,可以随便拷贝了!!

遇到阻碍单行的符号就用替换的方法吧,要输出时再还原,呵呵 几乎所有的病毒都是用此法加密自身为单行的,替换成一些绝对不会有冲突的比如chr(18)、chr(30)。。。

[ Last edited by baomaboy on 2007-4-15 at 01:05 AM ]



好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-4-15 00:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 10 楼』:  

哦,原来就是用一个不会冲突的字符代替啊,那就用一些特殊字符来替换吗?
那回车+换行怎么换!
我是想做一个专门用于转换的VBS文件,把文件拖上去,然后就输出一个替换过的文件!
那么这个VBS在处理回车+换行,应该怎么写程序呢?
Replace(content,chr(13)+char(10),cha(18))??

2007-4-15 01:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
baomaboy
银牌会员





积分 1513
发帖 554
注册 2005-12-30
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by kich at 2007-4-15 01:07:
哦,原来就是用一个不会冲突的字符代替啊,那就用一些特殊字符来替换吗?
那回车+换行怎么换!
我是想做一个专门用于转换的VBS文件,把文件拖上去,然 ...

Replace(content,chr(13)+char(10),cha(18))??
分别替换因为个别时回车和换行不连接,那Replace(content,chr(13)+char(10),cha(18))失效了。
Replace(content,chr(13),cha(28))
Replace(content,chr(13),cha(29))
Replace(content,chr(34),cha(18)) 替换" 因为 " 在VBS中用于注释 变单行后 " 之后全变成注释了 所以必须换掉。

想拖到上面输出:

content=readallstr
content=Replace(content,chr(13),cha(28))
content=Replace(content,chr(13),cha(29))
content=Replace(content,chr(34),cha(18))
fso.输出content

原理是这样的 实际操作中大多用 For len(content) 遍历来替换的

[ Last edited by baomaboy on 2007-4-15 at 01:39 AM ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 kich 分数: +2  时间:2007-4-15 03:59




好多菩提树,好多明镜台。本来好多物,好多的尘埃。
2007-4-15 01:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 12 楼』:  

哦,原来是这样,晚上我回去试试看到底是怎么才能输出我想要的东西!!
谢谢指教!有什么不明白,我还来这里问问看啊!!
Thx

2007-4-15 04:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 13 楼』:  

和单引不知道有什么关系,字符串里貌似只有""特殊罢了。

2007-4-15 05:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kich
中级用户





积分 397
发帖 168
注册 2006-10-8
状态 离线
『第 14 楼』:  

有这样一个单引过滤好是好点我觉得!因为我想还转换其他的文本的呢!!

呵呵,谢谢各位指教!

2007-4-15 23:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 15 楼』:  

"我是单引号 '你把我当字符串我没有被注释!"
你看上面的能被注释掉么?

2007-4-16 00:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: