数字机顶盒节目单处理脚本

    由于从网上下载的节目单格式与数字电视机顶盒管理服务器下发的节目单格式不一致,因此导致管理服务器下发节目单出错,下面给出一个vbs脚本用来批处理节目单。(比手工记事本逐个修改轻松多了)

 

原始节目单格式如下:

 

10/08/23 星期一       

04:00:00    36    电视剧:沂蒙32/42
04:36:55    30    第一精品之军事纪实:2010-15
05:06:55    20    今日说法:以案说法:2010-227
05:26:55    30    人与自然:探秘自然:2010-131
06:00:00    10    天天饮食:2010-180

... 

...

02:19:25    46    电视剧:沂蒙34/42
03:05:25    46    电视剧:沂蒙35/42
03:52:25    7    电视剧:沂蒙36/42

10/08/24 星期二       

04:00:00    38    电视剧:沂蒙36/42
04:38:25    8    魔法奇迹:2010-17
04:46:25    10    精彩一刻:2010-38
04:56:55    30    第一精品之军事纪实:2

 

然后我们的管理服务器下发的节目单格式如下:

 

10/08/23 星期一       

04:00    电视剧:沂蒙32/42
04:36    第一精品之军事纪实:2010-15
05:06    今日说法:以案说法:2010-227
05:26    人与自然:探秘自然:2010-131
06:00    天天饮食:2010-180
06:10    焦点访谈:用事实说话
06:25    新闻联播

....

....

02:19    电视剧:沂蒙34/42
03:05    电视剧:沂蒙35/42
03:52    电视剧:沂蒙36/42

10/08/24 星期二       

04:00    电视剧:沂蒙36/42
04:38    魔法奇迹:2010-17
04:46    精彩一刻:2010-38
04:56    第一精品之军事纪实:2010-16

 

     主要的区别是在时间格式和中间多了一个数字。下面给出批处理的代码,如果有类似需要的朋友,可以根据下面的代码自行修改即可。代码用windows记事本编辑,然后另存为"节目单处理.vbs”即可。

     使用的时候,将需要修改的节目单文件拖到到“节目单处理.vbs”文件上,程序就会自动启动并前自动进行转换,然后在同一位置自动生成一个和原文件同名+out的文件。

 

数字机顶盒节目单处理脚本_第1张图片

 

原始文件叫01.txt,将01.txt 拖到到“自动节目单处理”的上面。 然后松开鼠标。


数字机顶盒节目单处理脚本_第2张图片

 

鼠标一松开,程序就会自动转换好了。


数字机顶盒节目单处理脚本_第3张图片

 

转换后的结果对比!

 

下面给出脚本代码(直接粘贴复制进记事本,然后另存即可使用!完全绿色版)


 


Dim fileName
Set objArgs=WScript.Arguments
fileName=objArgs(0)

Call Main()
Sub Main()
  Dim fso,OutFile,InFile
  Set fso=CreateObject("Scripting.FileSystemObject")
  Set InFile=fso.OpenTextFile(fileName,1,True)
  Set OutFile=fso.CreateTextFile(fileName+".out.txt",Ture)
  do  until   InFile.atendofstream
     strline=InFile.readline
     OutFile.WriteLine(Fx(strLine))
  loop
  InFile.close
  OutFile.Close
  Set fso=nothing

  Msgbox "文件处理完成!转换后的文件名为"+fileName+".out.txt"
End Sub


Function Fx(str)
dim t
   if Len(str)=14 then
      Fx=str
   else
     if Len(str)=0 then
       Fx=str
     else
        
       Fx=left(str,5)
       t=right(str,len(str)-11)
       if left(t,1)="    " then
          t=right(t,len(t)-1)
       end if
       if left(t,1)="    " then
          t=right(t,len(t)-1)
       end if
       if left(t,1)="    " then
          t=right(t,len(t)-1)
       end if
      
       if right(left(t,2),1)="    " then
          t=right(t,len(t)-2)
       end if
      
       Fx=Fx+"    "+t  

     end if    
   end if
End Function

 

 

 

代码说明:

    Main 函数主要负责接收处理vbScript传入的参数(文件名),然后调用Fx进行处理,最后调用Scripting.FileSystemObject对象将结果保存到制定位置。

    Function Fx 负责处理字符串。如果你的格式和我们的格式不一致,就需要修改了。

 

   有兴趣的朋友可以试试!欢迎来电交流!


你可能感兴趣的:(function,function,function,脚本,服务器,VBScript,VBScript,2010)