文本批量全角转半角的VBS脚本
来源:互联网 发布:网络无线收发器 编辑:程序博客网 时间:2024/06/06 04:26
文本批量全角转半角的VBS脚本
刚费尽心思从网上拷贝了一些文本,怎奈文中有许多字符都是全角字符,一个一个地去查找替换很是费尽,于是参考了其他的资料,写了如下的VBS脚本。该脚本的功能是把一个文本文件中的所有全角字符转换为半角字符。
用法:把下面这些内容复制到一个文本文件中,把这个文本文件改名为后缀为.vbs的文件,然后双击这个文件运行,会弹出一个对话框问要转换的文件,然后问你转换后的文件名,输入完整后点击确定即可。
'**************************************************************************
'Main
Dim sfile
sfile=OpenFile
dfile=SaveFile(sfile)
If len(trim(sfile)) = 0 Then
MsgBox "请选择一个包含全角字符的源文件"
Else
Convert sfile,dfile
End if
'**************************************************************************
'*******************************************************************'
'保存文件
'*******************************************************************'
Function SaveFile(filename)
Set objDialog = CreateObject("SAFRCFileDlg.FileSave")
objDialog.FileType = "*.*"
objDialog.FileName = filename & ".new"
objDialog.OpenFileSaveDlg
SaveFile = objDialog.FileName
End Function
'*******************************************************************'
'打开文件
'*******************************************************************'
Function OpenFile
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "文本文件|*.txt;*.bat|所有文件|*.*"
'objDialog.MaxFileSize = 10000
'objDialog.FilterIndex = 1
'objDialog.InitialDir = ""
objDialog.ShowOpen
'strLoadFile = objDialog.FileName
OpenFile=trim(objDialog.FileName)
End Function
'**********************************************************************
'转换过程
'**********************************************************************
Sub Convert(strFile,strNewFile)
Dim objFSo,objSrcFile,objDstFile
Dim strTmp,intAsc
Dim boolFlag
'若原文件名与新文件名相同,则标志置位
If LCase(strFile) = LCase(strNewFile) Then
boolFlag = True
strNewFile = strNewFile & ".tmp"
Else
boolFlag = False
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objSrcFile = objFSO.OpenTextFile(strFile,1)
Set objDstFile = objFSO.OpenTextFile(strNewFile,2,True)
Do
strTmp = objSrcFile.Read(1)
intAsc = Asc(strTmp)
If intAsc < -23554 And intAsc > -23648 Then
objDstFile.Write Chr(23680 + intAsc)
ElseIf intAsc = -24159 Then
objDstFile.Write " "
ElseIf intAsc = -24089 Then
objDstFile.Write "$"
Else
objDstFile.Write strTmp
End If
Loop Until objSrcFile.AtEndOfStream
objDstFile.Close
objSrcFile.Close
If boolFlag Then
objFSo.DeleteFile strFile
objFSO.MoveFile strNewFile,strFile
End If
Set objSrcFile = Nothing
Set objDstFile = Nothing
Set objFSO = Nothing
End Sub
用法:把下面这些内容复制到一个文本文件中,把这个文本文件改名为后缀为.vbs的文件,然后双击这个文件运行,会弹出一个对话框问要转换的文件,然后问你转换后的文件名,输入完整后点击确定即可。
'**************************************************************************
'Main
Dim sfile
sfile=OpenFile
dfile=SaveFile(sfile)
If len(trim(sfile)) = 0 Then
MsgBox "请选择一个包含全角字符的源文件"
Else
Convert sfile,dfile
End if
'**************************************************************************
'*******************************************************************'
'保存文件
'*******************************************************************'
Function SaveFile(filename)
Set objDialog = CreateObject("SAFRCFileDlg.FileSave")
objDialog.FileType = "*.*"
objDialog.FileName = filename & ".new"
objDialog.OpenFileSaveDlg
SaveFile = objDialog.FileName
End Function
'*******************************************************************'
'打开文件
'*******************************************************************'
Function OpenFile
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "文本文件|*.txt;*.bat|所有文件|*.*"
'objDialog.MaxFileSize = 10000
'objDialog.FilterIndex = 1
'objDialog.InitialDir = ""
objDialog.ShowOpen
'strLoadFile = objDialog.FileName
OpenFile=trim(objDialog.FileName)
End Function
'**********************************************************************
'转换过程
'**********************************************************************
Sub Convert(strFile,strNewFile)
Dim objFSo,objSrcFile,objDstFile
Dim strTmp,intAsc
Dim boolFlag
'若原文件名与新文件名相同,则标志置位
If LCase(strFile) = LCase(strNewFile) Then
boolFlag = True
strNewFile = strNewFile & ".tmp"
Else
boolFlag = False
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objSrcFile = objFSO.OpenTextFile(strFile,1)
Set objDstFile = objFSO.OpenTextFile(strNewFile,2,True)
Do
strTmp = objSrcFile.Read(1)
intAsc = Asc(strTmp)
If intAsc < -23554 And intAsc > -23648 Then
objDstFile.Write Chr(23680 + intAsc)
ElseIf intAsc = -24159 Then
objDstFile.Write " "
ElseIf intAsc = -24089 Then
objDstFile.Write "$"
Else
objDstFile.Write strTmp
End If
Loop Until objSrcFile.AtEndOfStream
objDstFile.Close
objSrcFile.Close
If boolFlag Then
objFSo.DeleteFile strFile
objFSO.MoveFile strNewFile,strFile
End If
Set objSrcFile = Nothing
Set objDstFile = Nothing
Set objFSO = Nothing
End Sub
- 文本批量全角转半角的VBS脚本
- python 匹配文本全角转半角字符
- 全角转半角 半角转全角 接收文本框的值
- java全角转半角,半角转全角的方法
- 半角全角互转函数[JS版 VBS版]
- 转全角,半角的函数
- 全角转半角 半角转全角
- 全角转半角与半角转全角
- 半角转全角、全角转半角
- 转全角半角
- 半角转全角
- 全角转半角
- 全角转半角函数
- VBA 全角转半角
- php 全角转半角
- 全角转半角
- 半角全角互转
- 日文全角转半角
- 用二维数组名作形参、实参,求3行4列矩阵中的最大值(二)
- twisted thread reactor.stop
- matlab (R2007a、R2009a)绿色单文件版本制做
- Linux学习笔记(java环境配置included)
- UTF-8 AND UTF-8 without BOM(遇到了这个问题 郁闷了会儿)
- 文本批量全角转半角的VBS脚本
- 验证码问题
- Google的银河英雄传说
- 成功的起点
- 基于OpenCV与MFC的大家来找茬外挂[升级版]
- IIS发生意外错误0x8ffe2740
- 约瑟夫问题
- 批量转换图片格式,Shell 和 Python版
- 对东北二人转的一点想法