CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

关于一个文本操作的难题: 100分求助

楼主CruelYoung123(向牛人们学习@HOHO~~~)2006-05-02 13:45:58 在 VB / 基础类 提问

现有一文本文件:  
  如下格式:     我要提取相关内容保存到另一文件中...:  
  娄底  
  24小时预报:晴,北风2-3级,最低气温17℃,最高气温26℃;  
  48小时预报:晴,北风2-3级,最低气温17℃,最高气温27℃;  
  72小时预报:晴,南风2-3级,最低气温17℃,最高气温28℃;  
  96小时预报:晴转多云,最低气温19℃,最高气温29℃;  
  120小时预报:多云转阴,最低气温20℃,最高气温27℃;  
  144小时预报:多云,最低气温20℃,最高气温28℃;  
  168小时预报:多云转阴,最低气温20℃,最高气温27℃;  
  -----------------------------  
  新化  
  24小时预报:晴,北风2-3级,最低气温17℃,最高气温26℃;  
  48小时预报:晴,北风2-3级,最低气温17℃,最高气温27℃;  
  72小时预报:晴,南风2-3级,最低气温17℃,最高气温28℃;  
  96小时预报:晴转多云,最低气温19℃,最高气温29℃;  
  120小时预报:多云转阴,最低气温20℃,最高气温27℃;  
  144小时预报:多云,最低气温20℃,最高气温28℃;  
  168小时预报:多云转阴,最低气温20℃,最高气温27℃;  
   
   
   
  提取内容后:保存为一个地点一个文件:  
  -----------------------------  
  娄底<BR>  
  今白到今晚:晴<BR>  
  北风2-3级<BR>  
  最高气温:26℃<BR>  
  最低气温:17℃<BR>  
  明白到明晚:晴<BR>  
  北风2-3级<BR>  
  最高气温:27℃<BR>  
  最低气温:17℃<BR>  
  后白到后晚:晴<BR>  
  北风2-3级<BR>  
  最高气温:28℃<BR>  
  最低气温:17℃<BR>  
  -----------------------------  
   
   
  另一个文件:  
  -----------------------------  
  新化<BR>  
  今白到今晚:晴<BR>  
  北风2-3级<BR>  
  最高气温:26℃<BR>  
  最低气温:17℃<BR>  
  明白到明晚:晴<BR>  
  北风2-3级<BR>  
  最高气温:27℃<BR>  
  最低气温:17℃<BR>  
  后白到后晚:晴<BR>  
  北风2-3级<BR>  
  最高气温:28℃<BR>  
  最低气温:17℃<BR>  
  -----------------------------  
   
  如何操作:     谢谢各位 问题点数:100、回复次数:9Top

1 楼zhizlm(小弟.net)回复于 2006-05-02 13:54:35 得分 2

赋值一下不就行了?    
   
  你具体想怎么操作??   把问题的主题说的简单点!  
   
  支持CSDN's   forum   Explorer  
   
  CSDN论坛浏览器:http://CoolSlob.ys168.com/Top

2 楼CruelYoung123(向牛人们学习@HOHO~~~)回复于 2006-05-02 14:00:36 得分 0

主要是内容的提取啊....怎么提取出来啊...Top

3 楼of123()回复于 2006-05-02 18:05:35 得分 80

dim   strline   as   string,   atrarr()   as   string,   n   as   integer  
  open   "1.text"   for   input   as   #1  
  do   until   eof(1)  
          line   input   #1,   strline  
          n   =   val(strline)  
          if   n   =   0   and   not   instr(strline,   "---")   and   strline   >   ""   then  
                  open   app.path   &   "\"   &   strline   &   ".txt"   for   output   as   #2  
                  print   #1,   strline   &   "<BR>  
          else  
                  strarr   =   split(strline,   ",")  
                  select   case   n  
                          case   24  
                                  print   #2,   "今白到今晚"   &   mid(strarr(0),   instr(strarr(0),":")    
  &   "<BR>"  
                                  print   #2,   strarr(1)   &   "<BR>"  
                                  print   #2,   left(strarr(3))   &   ":"   &   mid(strarr(3),   5)     &   "<BR>"  
                                  print   #2,   left(strarr(2))   &   ":"   &   mid(strarr(2),   5)     &   "<BR>"  
                          case   48  
                                  print   #2,   "明白到明晚"   &   mid(strarr(0),   instr(strarr(0),":")   &   "<BR>"  
                                  print   #2,   strarr(1)   &   "<BR>"  
                                  print   #2,   left(strarr(3))   &   ":"   &   mid(strarr(3),   5)     &   "<BR>"  
                                  print   #2,   left(strarr(2))   &   ":"   &   mid(strarr(2),   5)     &   "<BR>"  
                          case   72  
                                  print   #2,   "后白到后晚"   &   mid(strarr(0),   instr(strarr(0),":")   &   "<BR>"  
                                  print   #2,   strarr(1)   &   "<BR>"  
                                  print   #2,   left(strarr(3))   &   ":"   &   mid(strarr(3),   5)     &   "<BR>"  
                                  print   #2,   left(strarr(2))   &   ":"   &   mid(strarr(2),   5)     &   "<BR>"  
                                  close   #2  
                  end   select  
          ens   if  
  loop  
  close   #1  
   
  Top

4 楼hank212(IT民工)回复于 2006-05-02 19:55:28 得分 2

楼上高Top

5 楼CruelYoung123(向牛人们学习@HOHO~~~)回复于 2006-05-03 08:13:53 得分 0

谢谢of123  
   
  还一个问题:   这个字符串中怎么把日期提取出来:  
  娄底气象台2006年04月29日01时城镇天气预报  
   
  提出格式为:2006-04-29   01时天所预报  
   
  Top

6 楼of123()回复于 2006-05-03 15:38:25 得分 0

方法一:利用正则表达式  
  '引用   Microsoft   VBScript   Regular   Expressions   X.X  
  Dim   re   As   RegExp  
  Dim   result  
   
  Set   re   =   New   RegExp  
  re.Pattern   =   "\d+年\d+月\d+日\d+时"  
  Set   result   =   re.Execute("娄底气象台2006年04月29日01时城镇天气预报")  
  MsgBox   result(0)   &   "天气预报"Top

7 楼of123()回复于 2006-05-03 16:08:47 得分 14

方法二:循环扫描  
  Dim   strSource   As   String,   tmp   As   String  
  Dim   i   As   Integer,   d   As   Integer  
   
   
  strSource   =   "娄底气象台2006年04月29日01时城镇天气预报"  
   
  For   i   =   1   To   Len(strSource)  
          If   Val(Mid(strSource,   i,   4))   Then   Exit   For  
  Next   i  
  tmp   =   Mid(strSource,   i)  
   
  For   i   =   Len(tmp)   To   1   Step   -1  
          tmp   =   Left(tmp,   i)  
          If   IsDate(tmp)   Then   Exit   For  
  Next   i  
   
  If   Len(tmp)   >   1   Then   MsgBox   tmp   &   "天气预报"Top

8 楼CruelYoung123(向牛人们学习@HOHO~~~)回复于 2006-05-05 19:37:49 得分 0

感谢各位顶力支持...特别of123Top

9 楼cxianfa(含笑)回复于 2006-05-05 20:06:44 得分 2

这么厉害哦Top

相关问题

关键词

得分解答快速导航

  • 帖主:CruelYoung123
  • zhizlm
  • of123
  • hank212
  • of123
  • cxianfa

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo