中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 【求助】txt转网页vbs版 上一主题 | 下一主题
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 = "&nbsp;"
                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)

还有就是该转换出来的网页源代码里好多 换行像干电池一样黑块
而且有很多数字和&nbsp,一句话,就是网页代码尽量看起来更简单,但对比文本效果不变

附件 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对象

   此帖被 +2 点积分    点击查看详情   
评分人:【 kioskboy 分数: +2  时间:2009-10-18 06:40




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
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (837806894)  编辑帖子  回复  引用回复
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), "&&amp;", "<&lt;", ">&gt;", vbtab&"        ", " &nbsp;" )
        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 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 kioskboy 分数: +2  时间:2009-10-18 06:39


2009-10-17 18:16
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
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 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 kioskboy 分数: +2  时间:2009-10-18 06:39




综合型编程论坛

我的作品索引
  
2009-10-17 23:20
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 10 楼』:  

空格要想想办法撒,用来放代码的时候,显示的时候前面的空格给灭了



综合型编程论坛

我的作品索引
  
2009-10-18 08:37
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
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
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 12 楼』:  

yes!    早知道去试试~  复制来复制去,都不知道哪个是哪个写的了。
zhoumeng 赶紧去水区升级,下次要是还是2分,加起来多没劲啊



综合型编程论坛

我的作品索引
  
2009-10-19 22:15
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: