文本文件的格式摘要如下:【2006-04-26】上海证券关于
【2006-04-25】上海证券关于1
【2006-04-25】公布05年年报、06年一季报及券商我想将日期和后面的内容分别导入到数据库的两个字段(riqi,content),程序如下:
Private Sub Command1_Click()
Dim i As String
Dim j As String
Dim m As String
Dim n As String
Dim filename As String
filename = InputBox("请输入数据文件位置:", "确认文件", "D:\580998.txt")
Open filename For Input As #1
Dim APP_PATH As String '设置相对路径
If Right(App.Path, 1) = "\" Then
APP_PATH = App.Path
Else
APP_PATH = App.Path & "\"
End If
Set conn = New ADODB.Connection
conn.ConnectionString = "Driver={sql server};server=(local);uid=sa;pwd=sa;database=mydb"
conn.Open
Do While Not EOF(1) '判断是否到文件末
i = Input(1, #1)
If i = "【" Then
m = Input(10, #1) '将读入的字符赋给变量 m
End If
If i = "】" Then
Do While (i <> "【" And (Not EOF(1)) And i <> Chr(13) And i <> Chr(10))
n = n + Trim(Input(1, #1))
loop
End if
conn.Execute "insert into pldr(riqi,content) values ('" + m + "','" + n + "')" '将读入的字符插入到数据表中
Loop
Close #1
MsgBox "导入完成!"
End Sub
设置监视变量i,m,n,程序开始执行地一条记录没问题,但到变量m的时候老是把后面一条记录的东西都读进去了,也就是说第二个while语句的条件都没有判断,程序一直在执行n = n + Trim(Input(1, #1))这条语句,看了一天了还是看不出来逻辑上那里有错误,还望高手指点,在这谢过了先!!!!
【2006-04-25】上海证券关于1
【2006-04-25】公布05年年报、06年一季报及券商我想将日期和后面的内容分别导入到数据库的两个字段(riqi,content),程序如下:
Private Sub Command1_Click()
Dim i As String
Dim j As String
Dim m As String
Dim n As String
Dim filename As String
filename = InputBox("请输入数据文件位置:", "确认文件", "D:\580998.txt")
Open filename For Input As #1
Dim APP_PATH As String '设置相对路径
If Right(App.Path, 1) = "\" Then
APP_PATH = App.Path
Else
APP_PATH = App.Path & "\"
End If
Set conn = New ADODB.Connection
conn.ConnectionString = "Driver={sql server};server=(local);uid=sa;pwd=sa;database=mydb"
conn.Open
Do While Not EOF(1) '判断是否到文件末
i = Input(1, #1)
If i = "【" Then
m = Input(10, #1) '将读入的字符赋给变量 m
End If
If i = "】" Then
Do While (i <> "【" And (Not EOF(1)) And i <> Chr(13) And i <> Chr(10))
n = n + Trim(Input(1, #1))
loop
End if
conn.Execute "insert into pldr(riqi,content) values ('" + m + "','" + n + "')" '将读入的字符插入到数据表中
Loop
Close #1
MsgBox "导入完成!"
End Sub
设置监视变量i,m,n,程序开始执行地一条记录没问题,但到变量m的时候老是把后面一条记录的东西都读进去了,也就是说第二个while语句的条件都没有判断,程序一直在执行n = n + Trim(Input(1, #1))这条语句,看了一天了还是看不出来逻辑上那里有错误,还望高手指点,在这谢过了先!!!!
解决方案 »
- ADO获取带返回参数存储过程的奇怪问题
- 使用ORACLE数据库,怎么样实现客户端不用安装相应的ORACLE客户端
- Collection和类模块问题
- 我使用报表设计器来打印,但我添加数据到数据库中后怎么打印的内容没有增加,急用,在线等
- 为什么Label在有的机器上空格会显示出方块?
- 高手进来!有关VB6的安装问题。
- 简单一问!!
- 往网页中post数据,用ie浏览器不行,有解决方法吗?
- VB的集合对象(Collection)内的 Item的值为什么不能修改????????
- Winsock1_DataArrival 中使用doevents出现Out of stack space错误
- 我用VB6编程,如何实现ADO中字段‘解答日期’,值为"2006-5-25 11:21:00"形式的从大到小的排序。
- 求复杂报表的解决方案!
Private Function GetKey(HTML, Start, Last, i)
On Error Resume Next
filearray = Split(HTML, Start)
filearray2 = Split(filearray(i), Last)
GetKey = filearray2(0)
End Function
Open App.Path & "\1.txt" For Input As #1Do While Not EOF(1)
Line Input #1, s'读出一行来赋值给st=GetKey(HTML, "【", "】", 1)'把"【""】"中间的日期分离到t里d=GetKey(HTML, "【", "】", 2)'剩下的赋值给dLoopClose #1入库你自己搞吧 你自己的代码可以做到
这句错了应该是
d=GetKey(HTML, "】", "【", 2)'剩下的赋值给d
【2006-04-26】
上海证券关于注销200万份白云机场认沽权证公告, 上海证券有限责任公司公布关于注销白云机场认沽权证的公告
【2006-04-25】
公布05年年报、06年一季报及券商注销白云机场认沽权证公告,上午停牌一小时 G穗机场公布2005年年报:每股收益0.25元,每股收益(扣除)0.25元,加权平均每股收益0.25元,加权平均每股收益(扣除)0.25元,每股净资产3.99元,调整后每股净资产3.92元,净资产收益率6.31%,加权平均净资产收益率6.35%,扣除非经常性损益后净利润250678611.76元,主营业务收入2149308234.93元,净利润251512856.24元,股东权益3985932660.32元。
2006年一季报:每股收益0.07元,每股收益(扣除)0.07元,每股净资产4.06元,调整后每股净资产3.99元,净资产收益率1.77%,扣除非经常性损益后净利润71512191.09元,主营业务收入589704365.51元,净利润71764066.38元,股东权益4057696726.71元。
东海证券有限责任公司公布关于注销白云机场认沽权证的公告
以后的每条文件格式都是如上
所以这样子的话用你的这种一行读入的方法还是不行啊。我原来的代码就是到第二个do while中就出不来了,一直在执行n=n+input(1,#1),用监视窗口看,原因是变量i一直为】,所以一直在do while中循环,退不出这个循环。所以还请这位高手再次指导一下。谢谢了先(原来没有说清楚完整的文本文件格式,真是不好意思 , :))
On Error Resume Next
filearray = Split(HTML, Start)
filearray2 = Split(filearray(i), Last)
GetKey = filearray2(0)
End Function
Open App.Path & "\1.txt" For Input As #1
Input #1, s'读出数据来赋值给s
Close #1for i =1 to n(n是个常数你有多少项就是多少)
t=GetKey(s , "【", "】", i)'把"【""】"中间的日期分离到t里d=GetKey(s , "】", "【", i)'剩下的赋值给dnext
i=1的时候就把第一个分离出来
t是日期 d 是后面的东西
分别入库就可以了入库你自己搞吧 你自己的代码可以做到
是不是还是考虑要用do while循环来实现呢?????