注册 登录
编程论坛 VB6论坛

大神们 求助 做毕设 代码不会啊 新手小白 大一没好好学vb

hf652597374 发布于 2015-05-15 11:02, 790 次点击
怎么用vb提取  dat文件中的每一行的特定数据     存入数组    然后输出到文本框中   
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
8 回复
#2
lianyicq2015-05-15 11:11
给你思路吧,自己多动动。
用open打开文件,看附件中的是文本文件。
按行读出文本,赋给字符串。
以“|”分隔字符串
在文本框显示
读完了数据就关闭文件
#3
lianyicq2015-05-15 11:12
一定要参照就看这个https://bbs.bccn.net/thread-445071-1-1.html差不多全了
#4
renxiaoyao362015-05-15 21:10
最近没时间,给思路
Intsr函数是万能的!你先用Instr函数返回特定的标示字符,然后用mid函数加上上一个特定标示的Instr返回值截取一段字符
#5
风吹过b2015-05-15 22:10
一行一行的读。
使用一个变量来标志状态:
状态有:
未开始
段开始
段结束

未开始:有文件名:gps7.dat 。不需要就忽略。
if instr(1,数据行,"Start-Line") then
   状态 = 段开始
   '保存段名
elseif instr(1,数据行,"#####") then
   '忽略,不动作
elseif instr(1,数据行,"Measurement repeated") then
   '忽略,不动作
elseif instr(1,数据行,"Station repeated") then
   '忽略,不动作
elseif instr(1,数据行,"End-Line") then
   状态=段结束
   '处理这一段的数据
else
   '把当前数据行,保存到当前段
end if


你提供的数据文件与你的贴图不符。
#6
renxiaoyao362015-05-16 07:11
回复 5楼 风吹过b
你又误导新人了
IF语句没有判定……
修改:
程序代码:
if instr(1,数据行,"Start-Line") <>0then
   状态 = 段开始
   '保存段名
elseif instr(1,数据行,"#####") <>0then
   '忽略,不动作
elseif instr(1,数据行,"Measurement repeated")<>0 then
   '忽略,不动作
elseif instr(1,数据行,"Station repeated")<>0 then
   '忽略,不动作
elseif instr(1,数据行,"End-Line") <>0then
   状态=段结束
   '处理这一段的数据
else
   '把当前数据行,保存到当前段
end if
#7
lianyicq2015-05-16 09:44
本来不该发在这儿,在这不说技术。和技术无关,但好象发在这儿立意更明显。
我想BBCN这么多年来能够存在和发展,离不开每一个提出问题的疑惑者,更离不开解答问题的热心人。
能在BBCN提问题是因为他看到了BBCN的能力,BBCN的能力是由无数热心人的能力来体现。
铁打的营盘流水的兵,这么多年来,无数的新会员为了兴趣,为了学习,为了工作而加入。
有的为了解决一时之难而只是昙花一现,有的持之以恒尽自己微薄之力,没有任何利益关系。
现在VB版块中谁是当之无愧的最热心的人,如果细心了解一下很容易一目了然。
我也关注过,从时间到知识面,对问题和技术的态度都值得点赞,决不应该被任何人菲薄,任何一位热心人都不容被菲薄。
能力有大有小,贡献有多有少。无论大小,无论多少只要你是真心想帮助大家,以谦虚谨慎的态度来回答问题,大家都会支持。
#8
hf6525973742015-05-16 16:15
回复 2楼 lianyicq
谢谢 大哥   我试试
#9
hf6525973742015-05-20 09:00
回复 6楼 renxiaoyao36
遇到  特殊字符怎么将这行跳过  不做提取处理?    代码怎么写啊   大神
程序代码:
Do While Not EOF(1)
   Line Input #1, TB    '一行一行读取文件
     If Mid(TB, 22, 10) = "Start-Line" Then
        a = Mid(TB, 38, 5)
        qd = Mid(TB, 45, 4)
      Text8.Text = Text8.Text + a + "," + qd + Chr(13) + Chr(10)
      
     If Mid(TB, 34, 1) = "#" Or Mid(TB, 22, 20) = "Measurement repeated" Or Mid(TB, 22, 16) = "Station repeated" Or Mid(TB, 22, 7) = "Reading" Then
        
        


[ 本帖最后由 hf652597374 于 2015-5-20 09:02 编辑 ]
1