注册 登录
编程论坛 VB6论坛

菜鸟请教:怎样用VB提取文本文件内的数据到数据表中?

smthejingao 发布于 2016-07-11 20:28, 1957 次点击
[RelativePriority]
IDNUM Pri_SEQ Sec_SEQ MODE

[MultiPriorityBlock]
IDNUM CNO SEQ POS MODE

[RelativePriorityBlock]
IDNUM Pri_SEQ Sec_SEQ MODE

[BlockData]
IDNUM O X Y A PARTS BRM C M F PR MB PRISEQ
1 1 69.050 14.500 180.000 31 0 "A" 0 0 1000 0 0
2 1 138.850 169.750 0.000 24 0 "B" 0 0 1000 0 0
3 1 141.110 169.750 0.000 96 0 "C" 0 0 1000 0 0
4 1 121.850 173.050 -90.000 61 0 "D" 0 0 1000 0 0
5 1 156.790 169.800 180.000 1 0 "E" 0 0 1000 0 0
6 1 154.590 169.700 180.000 1 0 "F" 0 0 1000 0 0
7 1 143.650 169.750 180.000 2 0 "G" 0 0 1000 0 0
8 1 148.050 169.850 0.000 3 0 "H" 0 0 1000 0 0
9 1 138.700 176.600 0.000 4 0 "I" 0 0 1000 0 0
10 1 139.010 165.200 180.000 5 0 "J" 0 0 1000 0 0

[VPaletteData]
IDNUM N TRAY X Y ROT

[MultiBlock]
IDNUM RMODE
1 0
以上的文本只是一部分,我要提取[BlockData]的数据到数据表中,谢了!
9 回复
#2
ZHRXJR2016-07-12 09:06
你的意思是将[BlockData]--IDNUM O X Y A PARTS BRM C M F PR MB PRISEQ 中的数据提取到 [RelativePriority]--IDNUM Pri_SEQ Sec_SEQ MODE、[MultiPriorityBlock]--IDNUM CNO SEQ POS MODE、[RelativePriorityBlock]--IDNUM Pri_SEQ Sec_SEQ MODE、[VPaletteData]--IDNUM N TRAY X Y ROT、[MultiBlock]--IDNUM RMODE 中吧,但是,你的字段名称不对应,除IDNUM名称外均不对应,因此无法给你回答。
#3
xiangyue05102016-07-12 10:56
如果只是这么一点数据,而且不是重复的来做的话。我建议直接用excel导入数据,分隔符选择空格应该就可以了。
如果不是,可以逐行读入,line input。 split和判断之后逐个字段填入。
程序代码:
Open Filename for input as #1
Dim DataTitle as boolean   '读取到相关数据的判断变量
Do while not EOF(1)

 line input #1,a

 if instr(a,"[BlockData]")>0 then   
     line input #1,a  '跳过字段名这行
     line input #1,a  
     DataTitle =true

 Elseif a="" then
     DataTitle =False '当遇到空行,数据已经读取完成。 根据实际修改
End if


 if DataTitle then
  Dim aa()
  aa=split(a," ") '以空格来拆分
  ' 插入新纪录的语句
  For i=lbound(aa) to ubound(aa)
    if trim(aa(i))<>"" then   '如果分割的时候是多个空格,可能出现aa(i)为空的情况,需要判断
      '给新纪录条字段赋值的语句
      '注意:aa(i)是字符,需要根据字段类型转变类型。 另外 "A"应该存A即可以,也需要处理一下
    End if
  Next i
  'Update RecordSet
End if
Loop
Close #1

#4
pengzhanggui2016-07-12 14:54
這種提取方式事倍功半,用excel好啦。
#5
xiangyue05102016-07-12 16:07
回复 4楼 pengzhanggui
对的。不过,一看他的数据量大小,如果很多的话,而且分布在不同的位置,那样手动还需要很多操作。未必就快了
第二,从学习VB的程度,还是自己编写一段代码好,以后相似的工作改改就可以用了。
#6
yangfrancis2016-07-13 16:46
Open App.Path + "1.txt" For Input As 1
Input #1, <接受数据的变量名>

好像一次是读取一行,试一下就知道了
#7
ZHRXJR2016-07-14 13:51
只有本站会员才能查看附件,请 登录

非常简单,联系我。
#8
smthejingao2016-07-14 21:21
谢谢,这要的就这样的结果,用VB提取文本文件内的数据到BlockData数据表中有程序代码吗?谢了
#9
pengzhanggui2016-07-15 14:28
回复 7楼 ZHRXJR
txt文档与execl 可以直接相互映射?
#10
ZHRXJR2016-07-16 12:43
回复 9楼 pengzhanggui
可以,但是前提是文本文件必须是有规律的。
1