| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
如何使用脚本重新设置数字格式?
如何使用脚本重新设置数字格式?
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-24 11:18:42
问:

您好,脚本专家!我有一个包含经纬度的文本文件,其数字的形式为:36000000。我需要将这些数字的格式设置为:36.000000. 如何使用脚本重新设置数字格式?

-- BE

答:

您好,BE。知道吗,要问关于数字方面的问题,您算是来对地方了。毕竟,有一个脚本专家拥有值得夸耀的高等数学学位。至于其他脚本专家么 … 别管其他脚本专家了。有一个脚本专家拥有值得夸耀的高等数学学位这件事我们以前提到过吗?

幸好,解决这个问题并不需要高等数学学位。(而且幸好我们也不需要,否则今天这个专栏可能真要狼狈不堪了。)BE,您说您有几个列有如下纬度和经度项的文本文件:

36000000

-076000000

92000000

105000000

您要打开文本文件,重新设置数字格式,然后保存重新设置格式后的文本文件。所有工作完成之后,您希望您的文本文件像这样:

36.000000

-76.000000

92.000000

105.000000

这能通过脚本实现吗?简直易如反掌:

Const ForReading = 1

Const ForWriting = 2



Set objFSO = CreateObject("Scripting.FileSystemObject")



Set objFile = objFSO.OpenTextFile("c:/scripts/test.txt", ForReading)



Do Until objFile.AtEndOfStream

    intLine = objFile.Readline

    intLine = intLine/ 1000000

    intLine = FormatNumber(intLine, 6)

    strText = strText & intLine & vbCrLf

Loop



objFile.Close

Set objFile = objFSO.OpenTextFile("c:/scripts/test.txt", ForWriting)



objFile.Write strText

objFile.Close

不必担心:我们会将个中原理悉数道来。毕竟,这是我们份内的事情,对吧?

如您所见,脚本开头就相当简单。我们首先定义一对常量 ForReading 和 ForWriting,将来处理文本文件本身时会用到它们。再创建一个 FileSystemObject 实例,然后使用 OpenTextFile 方法打开文件 C:/Scripts/Test.txt 进行读取。(您或许清楚,可以打开文本文件进行读取或写入,但这两种操作不能同时进行。)

接下来是下面这段代码:

Do Until objFile.AtEndOfStream

    intLine = objFile.Readline

    intLine = intLine/ 1000000

    intLine = FormatNumber(intLine, 6)

    strText = strText & intLine & vbCrLf

Loop

所有的亮点都在这儿。首先,我们设置 Do Until 循环来逐行读取文件,读取循环会持续到文件的最后一行(即,当 AtEndOfStream 属性为 True 时)。在该循环内,我们使用 ReadLine 方法来读取文件的第一行并将其值(在本示例文件中为 36000000)存储在名为 intLine 的变量中。

下一步就容易了。我们要取出数字 36000000 并将其转换为 36.000000。如何实现呢?为了便于初学者理解,我们将该值除以 1000000:

intLine = intLine/ 1000000

本例中,我们会得到值 36。要将其显示为小数点后带有 6 位数字的值,只需要调用 FormatNumber 函数:

intLine = FormatNumber(intLine, 6)

在此,我们所做的是将新值分配给变量 intLine。这个新值将会是什么呢?嗯,其实就是通过 FormatNumber 函数运行现有 intLine (36) 值后所得到的结果(即要求 FormatNumber 以 6 个小数位来显示该结果)。(这就是参数 6 的用途:它表示要显示的小数位数。)结果,36000000 转换为 36 后,现在 36 又转换为 36.000000。这正是我们从一开始就打算做的。

将文本文件中的第一行(第一个数字)进行转换后,接下来我们将新值和回车换行符 (vbCrLf) 添加到名为 strText 的变量中:

strText = strText & intLine & vbCrLf

您可能已经知道了,strText 只是一个变量,用于跟踪重新设置过格式的数字。当我们读取了文本文件中的所有行后,strText 的值就像这样:

36.000000

-76.000000

92.000000

105.000000

如果您在想“看,这个文本文件的数字格式似乎正如所愿”,那就自我表扬一下吧:这个文本文件的数字格式的确正如所愿。

因此,只要将 strText 的值保存到文本文件中,就万事大吉了。为此,我们首先要关闭文件 C:/Scripts/Test.txt。为什么呢?别忘了,我们已经打开了文件进行数据读取;要向文件中写入信息,必须先关闭文件,然后再重新打开文件。这就是我们现在要做的:

objFile.Close

Set objFile = objFSO.OpenTextFile("c:/scripts/test.txt", ForWriting)

我们使用 Write 方法将 strText 的值写入文本文件,最后关闭文件。最终的结果是:我们的文本文件就像这样:

36.000000

-76.000000

92.000000

105.000000

对于一帮数学能力有限的脚本专家来说这还算不错,是吧?

注意:尽管我们经常会自嘲,但还是应当告诉你,一个脚本专家没用计算器就把整个所得税申报表填完了。当然,处理很小的数字(例如他的薪水)时,确实并不需要计算器,但是,我们依然认为这还是很了不起。(编者注:在 IRS 决定对我们所有人进行审计之前,我们会为他们免去这一麻烦,告诉大家那个人就是 Greg。)

【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    CSO们如何应对新技术的安
    普通企业如何应对黑客攻
    企业该如何防范由VoIP引
    浅谈IT如何实现企业的应
    黑客与正规企业是如何串
    如何无限制申请Gmail 2.
    企业如何避免人为因素的
    社会工程学:如何利用黑客
    使用计算机应注意的道德
    免安装使用最新版 IE7 B

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览