论文部分内容阅读
2005年第23期《她是属龙还是属兔?—知年龄猜属相》一文介绍了数组是一组变量的集合,而变量好比运输车队(程序),在运货(运行)过程中在大仓库的库房(内存空间)中保存的货物(信息)会发生变化。那么是否有在大仓库的库房中保存的货物不发生变化呢?这就是本期要介绍的内容—常量。
一、让电脑为你整理并合并文本文件
你是有使用“记事本”随手保存精彩网文的习惯?可是许多网文保存下来的文本文件中存在许多多余的空白字符(空格符、回车换行符、Tab制表符),下面的脚本会帮助你清除多余的空白字符,并将多个文本文件合并为一个文本文件。将下列代码输入到记事本中,然后将其保存为“合并.vbs”(下载地址:http://www.newhua.com/cfan/200524/200524vbs.rar),双击运行即可,注意修改代码中的“c:\Gather”可改变合并后文件生成的位置。
Option Explicit
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim MyPath, MyFso, MyFolder, YourPath, MyNewFilePath, MyNewFile, MyFiles, MyFile
Dim MyFile1, MyFileText, MyText, MyTextLength, I, StartN, EndN, MyStr, MyCaption
MyPath = InputBox("请输入要进行整理合并的文本文件的源目录", "源目录")
Set MyFso = CreateObject ("Scripting.FileSystemObject")
If Not (MyFso.FolderExists(MyPath)) Then
msgbox "输入的文本文件的源目录 " & MyPath & " 不存在,程序终止。", 16, "错误"
Wscript.Quit
End If
If InStrRev (MyPath, "\") < Len (MyPath) Then MyPath = MyPath & "\"
Set MyFolder = MyFso.GetFolder(MyPath)
YourPath = "c:\Gather"'可修改为自己的保存目录或使用InputBox函数输入任意目录
If Not (MyFso.FolderExists(YourPath)) Then MyFso.CreateFolder(YourPath)
MyNewFilePath = YourPath & "\" & MyFolder.Name & ".txt"
If (MyFso.FileExists(MyNewFilePath)) Then MyFso.DeleteFile(MyNewFilePath)
Set MyNewFile = MyFso.OpenTextFile(MyNewFilePath, ForAppending, True)
Set MyFiles = MyFolder.Files
For Each MyFile In MyFiles
If UCase(MyFso.GetExtensionName(MyFile)) = "TXT" Then
Set MyFile1 = MyFso.OpenTextFile(MyFile.Path, ForReading, True)
MyFileText = ""
Do While MyFile1.AtEndOfStream <> True
MyText = MyFile1.ReadLine
If MyText <> "" Then
MyTextLength = Len(MyText)
For I = 1 To MyTextLength
If Mid(MyText, I, 1) > " " Then Exit For
Next
StartN = I
If StartN < MyTextLength + 1 Then
For I = MyTextLength To 1 Step -1
If Mid(MyText, I, 1) > " " Then Exit For
Next
EndN = I + 1
MyStr = Mid(MyText, StartN, EndN - StartN)
MyFileText = MyFileText & MyStr & vbCrLf
End If
End If
Loop
MyFile1.Close
MyCaption = MyFso.GetBaseName(MyFile.Path)
If Not (InStr(MyFileText, MyCaption & vbCrLf)) = 1 Then
MyFileText = MyCaption & vbCrLf & MyFileText
End If
MyNewFile.WriteLine MyFileText
End If
Next
MyNewFile.Close
MsgBox "指定目录中文本文件全部整理合并完毕。", 64, "提示"
二、通透理解“常量”
1.常量(constant)
常量(也称常数)也是大仓库(内存)中一间被起了名字用来保存货物(信息)的库房(内存空间),但它在运输车队运货过程中在库房里保存的货物(值)始终保持不变,在程序代码的任何位置都使用常量来代替数字、字符串或其他表达式。上面的实例中,ForReading、ForWriting和ForAppending就是常量,分别代替数字1、2和8。
2.声明常量(declare constant)
声明常量使用Const语句来创建自定义常量,例如Const MyCon = 12,Const MyString = "Computer Fan"。可在Const前面使用关键字Public或Private声明公有或私有常量,例如Private Const MyString = "I'm a computer fan"。同时声明多个常量可使用英文逗号隔开。
一、让电脑为你整理并合并文本文件
你是有使用“记事本”随手保存精彩网文的习惯?可是许多网文保存下来的文本文件中存在许多多余的空白字符(空格符、回车换行符、Tab制表符),下面的脚本会帮助你清除多余的空白字符,并将多个文本文件合并为一个文本文件。将下列代码输入到记事本中,然后将其保存为“合并.vbs”(下载地址:http://www.newhua.com/cfan/200524/200524vbs.rar),双击运行即可,注意修改代码中的“c:\Gather”可改变合并后文件生成的位置。
Option Explicit
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim MyPath, MyFso, MyFolder, YourPath, MyNewFilePath, MyNewFile, MyFiles, MyFile
Dim MyFile1, MyFileText, MyText, MyTextLength, I, StartN, EndN, MyStr, MyCaption
MyPath = InputBox("请输入要进行整理合并的文本文件的源目录", "源目录")
Set MyFso = CreateObject ("Scripting.FileSystemObject")
If Not (MyFso.FolderExists(MyPath)) Then
msgbox "输入的文本文件的源目录 " & MyPath & " 不存在,程序终止。", 16, "错误"
Wscript.Quit
End If
If InStrRev (MyPath, "\") < Len (MyPath) Then MyPath = MyPath & "\"
Set MyFolder = MyFso.GetFolder(MyPath)
YourPath = "c:\Gather"'可修改为自己的保存目录或使用InputBox函数输入任意目录
If Not (MyFso.FolderExists(YourPath)) Then MyFso.CreateFolder(YourPath)
MyNewFilePath = YourPath & "\" & MyFolder.Name & ".txt"
If (MyFso.FileExists(MyNewFilePath)) Then MyFso.DeleteFile(MyNewFilePath)
Set MyNewFile = MyFso.OpenTextFile(MyNewFilePath, ForAppending, True)
Set MyFiles = MyFolder.Files
For Each MyFile In MyFiles
If UCase(MyFso.GetExtensionName(MyFile)) = "TXT" Then
Set MyFile1 = MyFso.OpenTextFile(MyFile.Path, ForReading, True)
MyFileText = ""
Do While MyFile1.AtEndOfStream <> True
MyText = MyFile1.ReadLine
If MyText <> "" Then
MyTextLength = Len(MyText)
For I = 1 To MyTextLength
If Mid(MyText, I, 1) > " " Then Exit For
Next
StartN = I
If StartN < MyTextLength + 1 Then
For I = MyTextLength To 1 Step -1
If Mid(MyText, I, 1) > " " Then Exit For
Next
EndN = I + 1
MyStr = Mid(MyText, StartN, EndN - StartN)
MyFileText = MyFileText & MyStr & vbCrLf
End If
End If
Loop
MyFile1.Close
MyCaption = MyFso.GetBaseName(MyFile.Path)
If Not (InStr(MyFileText, MyCaption & vbCrLf)) = 1 Then
MyFileText = MyCaption & vbCrLf & MyFileText
End If
MyNewFile.WriteLine MyFileText
End If
Next
MyNewFile.Close
MsgBox "指定目录中文本文件全部整理合并完毕。", 64, "提示"
二、通透理解“常量”
1.常量(constant)
常量(也称常数)也是大仓库(内存)中一间被起了名字用来保存货物(信息)的库房(内存空间),但它在运输车队运货过程中在库房里保存的货物(值)始终保持不变,在程序代码的任何位置都使用常量来代替数字、字符串或其他表达式。上面的实例中,ForReading、ForWriting和ForAppending就是常量,分别代替数字1、2和8。
2.声明常量(declare constant)
声明常量使用Const语句来创建自定义常量,例如Const MyCon = 12,Const MyString = "Computer Fan"。可在Const前面使用关键字Public或Private声明公有或私有常量,例如Private Const MyString = "I'm a computer fan"。同时声明多个常量可使用英文逗号隔开。