|
kioskboy
初级用户
积分 153
发帖 103
注册 2008-3-27
状态 离线
|
『楼 主』:
【求助】txt转网页vbs版
set WSHShell = CreateObject("WScript.Shell")
set fs = CreateObject ("Scripting.FileSystemObject")
file123=inputbox("请直接输入当前文件夹下要转化的文件名"&chr(13)&chr(10)&"生成123.htm")
html = "123.htm"
ConvertFile file123, html
sub ConvertFile(txt_file, output)
if fs.FileExists(txt_file) then
set source = fs.OpenTextFile(txt_file)
set dest = fs.CreateTextFile(output)
dest.WriteLine "<html><head><style>p {font: " _
& "12pt Courier}</style></head><body><p>"
do until source.atEndOfStream
char = asc(source.Read(1))
select case char
case 132: '?
charnew = chr(228)
case 129: '?
charnew = chr(252)
case 142: '?
charnew = chr(196)
case 154: '?
charnew = chr(220)
case 153: '?
charnew = chr(214)
case 148: '?
charnew = chr(246)
case 225: '?
charnew = chr(223)
case 60: '<
charnew = "["
case 62: '>
charnew = "]"
case 13: 'CR
charnew = "<BR>"
case 32: 'Space
charnew = " "
case else:
charnew = chr(char)
end select
dest.Write charnew
loop
source.close
dest.WriteLine "</p></body></html>"
dest.close
end if
end sub 求高手把上面的完善下
改成拖动版本的(如把1.txt拖到该脚本上产生1.htm)
还有就是该转换出来的网页源代码里好多 换行像干电池一样黑块
而且有很多数字和 ,一句话,就是网页代码尽量看起来更简单,但对比文本效果不变
附件
1: txt2htm.rar (2009-10-12 11:23, 691 bytes,下载次数: 13)
|
|
2009-10-12 11:23 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
2 楼』:
不要一个个字符处理
直接用replace替换。。。
拖放自己看下 arguments对象
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2009-10-12 14:35 |
|
|
kioskboy
初级用户
积分 153
发帖 103
注册 2008-3-27
状态 离线
|
『第
3 楼』:
大哥,具体点,把代码写出来啊
三天不拿针,手都深,我vbs一段时间没有学,忘了些
[ Last edited by kioskboy on 2009-10-13 at 16:33 ]
|
|
2009-10-12 17:51 |
|
|
kioskboy
初级用户
积分 153
发帖 103
注册 2008-3-27
状态 离线
|
『第
4 楼』:
写个吧,潜水好久,浮出水面第一个问题啊
|
|
2009-10-13 16:35 |
|
|
kirov
版主
Pfc.YangZJ
积分 412
发帖 223
注册 2008-12-31 来自 上海杨浦
状态 离线
|
『第
5 楼』:
没看明白。。呵呵
不过貌似含金量还是挺大的,值得研究。。
将txt转为vbs。。呵呵
|
以牙还牙,加倍奉还。
----BH4EAW 杨志杰
Blog:我的blog |
|
2009-10-14 17:56 |
|
|
mountvol
初级用户
积分 186
发帖 117
注册 2006-8-14
状态 离线
|
『第
6 楼』:
就用一个<pre>包起来不就得了,还用这么麻烦?
|
|
2009-10-15 10:18 |
|
|
kioskboy
初级用户
积分 153
发帖 103
注册 2008-3-27
状态 离线
|
『第
7 楼』:
我不想用pre,pre作弊的
让人来的原始些
|
|
2009-10-15 16:10 |
|
|
qinchun36
高级用户
据说是李先生
积分 609
发帖 400
注册 2008-4-23
状态 离线
|
『第
8 楼』:
拖动直接处理被拖的文件,双机则弹出输入矿。
1.txt 转换成 1.txt.htm 要简单点,偷懒了。。。
-----------------------------------
修改日志:
借鉴 9 楼的,并修正了 < > & 三个特殊符号可能带来的麻烦。
弱弱地问以下,132、129、153......这些是什么字符,为什么要替换呢。。。
set fs = CreateObject ("Scripting.FileSystemObject")
file123 = ""
if WScript.Arguments.Count=0 then
file123=inputbox("请直接输入当前文件夹下要转化的文件名 FileName.Ext"&chr(13)&chr(10)&"生成 FileName.Ext.htm")
else
file123=WScript.Arguments(0)
end if
html = file123 & ".htm"
ConvertFile file123, html
sub ConvertFile(txt_file, output)
str = Array( chr(132)&chr(228), chr(129)&chr(252), chr(142)&chr(196), chr(153)&chr(214), chr(148)&chr(246), chr(225)&chr(223), "&&", "<<", ">>", vbtab&" ", " " )
if fs.FileExists(txt_file) then
sourcexstr = fs.OpenTextFile(txt_file).readall
with fs.CreateTextFile(output)
.WriteLine "<html><head><style>* {font: 12pt Courier}</style></head><body>"
for each change in str
sourcexstr=replace(sourcexstr, left(change,1), mid(change,2))
next
sourcexstr=replace(sourcexstr, vbcrlf, "<BR>"&vbcrlf)
.write sourcexstr
.WriteLine "</body></html>"
.close
end with
end if
end sub [ Last edited by qinchun36 on 2009-10-18 at 02:22 ]
|
|
2009-10-17 18:16 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
『第
9 楼』:
哈哈,zhoumeng的马甲发帖~ 来关照一下
关于那几个字符替换
可以建立一个数组,实际上是存替换信息的,
然后再for each~ 修改的时候也方便~
本来想用逗号分割的,到时候也比较通用(比如一个字符换成多个其他字符),
晚了,我就按1楼的顺序来一个。
要有批处理精神咔咔……
下面代码还是比较长~ 不过算直观了^_^ 另外cmd 调用cscript
窗口,可以继承cmd的特性,比如标记和文件拖拽等
下面是一个cscript读文本例子
http://hi.baidu.com/paktc/blog/item/1706adade0aff5c67cd92acb.html
set WSHShell = CreateObject("WScript.Shell")
set fs = CreateObject ("Scripting.FileSystemObject")
file123 = ""
if WScript.Arguments.Count=0 then
file123=inputbox("请直接输入当前文件夹下要转化的文件名 FileName.Ext"&chr(13)&chr(10)&"生成 FileName.Ext.htm")
else
file123=WScript.Arguments(0)
end if
html = file123 & ".htm"
ConvertFile file123, html
sub ConvertFile(txt_file, output)
dim str(7)
str(0)=chr(132)&chr(228)
str(1)=chr(129)&chr(252)
str(2)=chr(142)&chr(196)
str(3)=chr(153)&chr(214)
str(4)=chr(148)&chr(246)
str(5)=chr(225)&chr(223)
str(6)="<["
str(7)=">]"
if fs.FileExists(txt_file) then
set source = fs.OpenTextFile(txt_file)
set dest = fs.CreateTextFile(output)
dest.WriteLine "<html><head><style>* {font: 12pt Courier}</style></head><body>"
sourcexstr=source.readall
for each change in str
sourcexstr=replace(sourcexstr,left(change,1),right(change,1))
next
sourcexstr=replace(sourcexstr,chr(13),"<BR>")
dest.write sourcexstr
source.close
dest.WriteLine "</body></html>"
dest.close
end if
end sub [ Last edited by 523066680 on 2009-10-17 at 23:31 ]
|
综合型编程论坛
我的作品索引 |
|
2009-10-17 23:20 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
|
2009-10-18 08:37 |
|
|
qinchun36
高级用户
据说是李先生
积分 609
发帖 400
注册 2008-4-23
状态 离线
|
『第
11 楼』:
Quote: | Originally posted by 523066680 at 2009-10-18 08:37 AM:
空格要想想办法撒,用来放代码的时候,显示的时候前面的空格给灭了 |
|
我在 8 楼的代码已经考虑了空格和TAB的问题,不过TAB是转换成几个空格表示的。
你可以试着转换一个有格式的文本,比如就是我的那段VBS代码。
|
┏━━━━━━┓
┃据说是李先生┃
┠──────┨
┃*ntRSS┃
┗━━━━━━┛ |
|
2009-10-19 20:32 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
『第
12 楼』:
yes! 早知道去试试~ 复制来复制去,都不知道哪个是哪个写的了。
zhoumeng 赶紧去水区升级,下次要是还是2分,加起来多没劲啊
|
综合型编程论坛
我的作品索引 |
|
2009-10-19 22:15 |
|