vb 将txt文本内容按格式导入到sql server2005数据库中

兄弟,打扰一下,vb 将txt文本内容按格式导入到sql server2005数据库中?

数据库中表字段为 时间 标题 内容
txt文件内容格式:
时间:2013-1-1
类型:11
标题:xxxx
内容:
xxxxxxxxx
(完)
时间:2013-1-3
类型:19
标题:xxxx
内容:
xxxxxxxxx
(完)
时间:2013-1-8
类型:55
标题:xxxx到底
内容:
xxxxxxxxx
(完)
......功能实现:只需将文本中按时间,标题,内容导入到数据库表中。txt文本中内容每一部分到(完)结束为一条记录。时间的内容为冒号后面,标题的内容为冒号后面,内容为冒号后面至(完)前。
要vb代码,弄好后还有分!
高手请进!!!
最新回答
仙味萝莉

2025-03-01 13:40:24

open "c:\1.txt" for input as #1
open "c:\中间结果.txt" for append as #2
s=""
do
     if eof(1) then exit do
        line input #1,a
        if  instr(a,":")>0 then        
            s=s & a & vbtab
        else
            if a="  (完)" then
               print #2,s
               s=""  
            else
               s=s & a
            endif
        endif
loop
close #1
close #2
 
以上中间结果.txt生成后直接导入到数据库里就OK了。
追问
k是什么值?
追答
上面的代码生成的是以Tab分隔的文本。
你可以用SQLserver2005的文本导入工具导入这个文本文件到数据表里。
追问
代码运行出错
你这段代码有问题
追答
这个代码需要你修改一下、
第一、文件名部分要修改为你的文本文件的名字(路径也需要修改)
第二、instr(a,":")>0 这个部分需要根据你的文本文件的内容修改为全角:或半角:
第三、a="  (完)" 这个部分需要根据你的文本文件的内容修改为相应的结束行标记、也就是”完”这个字前面是全角空格还是半角空格、有多少个、前后的括号也要符合。
追问
你这个代码,是中间一截的,能不能写全了,你再测试下!
追答
我这个代码是手工打上去的。前后的过程名Sub 文本文件加工() 以及结束过程的 End Sub 就自己加上去就OK了。
作用是打开某个文本文档后把多个行拼成一行(一个记录)、每个字段用Tab接起来的。
加工好了以后需要打开SQLServer手工导入加工后的文本文件的。

需要修改的地方请见上面回答。
追问
麻烦你帮我写写 从中间结果插入数据库的代码?拜托
萌傻

2025-03-01 03:21:52

代码就不写了,给你个思路。

用正则提取出三项内容到数组中,然后将数组内容写入数据库文件中即可。
追问
高手,请写写代码
追答

代码就不写了,也不复杂的事,只是正则那有点复杂,我给你个我修改的正则调用函数,你自己写吧。可以检测是否有指定正则字串、替换、提取,没有详细的解释,自己理解吧。

'============================
'正则表达式
'调用格式 RegExp(源数据 As String, 正则式 As String, 标志位 As String = gimstr, 替换数据 As String, 匹配序数 As Integer)
'g 全局搜索 i 区分大小写 m 支持换行符 s 匹配子项 t 匹配测试 r 匹配替换

'例如 MsgBox RegExp("IS1 is2 IS3 is4", "is", "gir", "是")
'============================
Private Function RegExp(ByVal regString$, ByVal regPattern$, Optional regMark$ = "gims", Optional regRepString$, Optional regIndex%) As String
    If ((regString = "") Or (regPattern = "")) Then RegExp = "": Debug.Print "数据不能为空": Exit Function
    
    Dim RetStr As String, objRegExp As Object, colMatch, colMatches, i As Integer
    
    'Create objects
    Set objRegExp = CreateObject("VBScript.RegExp")
    ' 正则式
    objRegExp.Pattern = regPattern
    ' 是否区分大小写
囚我在心上

2025-03-01 04:14:24

打开文档,逐行扫描;提取行头关键字;
当扫描到(完)时,作为数据库中一行记录的完毕;
没有简单的办法,只能这样做...

需要做的话,你把你的txt文件发送到wayne.lkk@qq.com邮箱;
追问
好的,,我发给你了 ,你查收下
听雨的声音滴落

2025-03-01 15:32:42

建议您用bulk,具体用法可参见:
http://blog.csdn.net/jackmacro/article/details/5959321


http://www.cnblogs.com/qanholas/archive/2011/07/05/2098635.html
追问
求代码
病系少女

2025-03-01 03:35:27

按:这个号分隔一下,读取再插入到数据库中。
追问
代码?