关于一个文本操作的难题: 100分求助
现有一文本文件:
如下格式: 我要提取相关内容保存到另一文件中...:
娄底
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




