在读取文件进行数据库操作时,用line input按行读的。读到某行就报错

kernel1_0 2004-05-07 02:13:32
整个格式都一样的,报错那行没什么特别的。。
出错为:Multiple-step operation generated errors .check each status value.

我读的是行里前17个字符的日期时间,再加以改变格式:如"05/03/04 12:23:12"要变成“2004-05-03 12:23:12"。
前面的几千行都没问题,就是在某行出错。。debug时,发现 原来取出来的应该为string的如"05/03/04 12:23:12",变成了"05/03/04 12:23:1",不知道怎么搞的。。
有谁也遇到过这种情况吗?
...全文
108 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumy_ld 2004-05-08
  • 打赏
  • 举报
回复
//"05/03/04 12:23:12",变成了"05/03/04 12:23:1",
"05/03/04 12:23:1"的长度为16,这一行
emtime = Left(inbuf, 17)
要读17个字符的长度,最后一个字符多半是空格,换行符等,当然会出错了。

你试试这个:

rsemail.Fields("Edate").Value = Format(emtimec, "yyyy-MM-dd hh:mm:ss")
改为:
rsemail.Fields("Edate").Value = Format(emtime, "yyyy-MM-dd hh:mm:ss")
of123 2004-05-08
  • 打赏
  • 举报
回复
可能是串前或串中多了空格。

Line Input #1, mystr
mystr = trim(mystr)
mystr = replace(mystr,space(2),space(1))

myDate = Left(mystr,17)

还可以根据你的实际情况对读出的日期时间做有效性判断,以决定处理方式。
flyingZFX 2004-05-08
  • 打赏
  • 举报
回复
很简单呀?
看你想怎么去掉了,

dim sstring as string

ss="abcde"

ss=left(ss,len(ss)-1)

debug.pring ss

ss里的内容就变成了 “abcd”啦

kernel1_0 2004-05-08
  • 打赏
  • 举报
回复
怎样去掉一个字符啊。 。
kernel1_0 2004-05-07
  • 打赏
  • 举报
回复
可能是换行符多了个呢。。
我再看看。。谢谢大家
换行符asc是不是10啊?
itcoco 2004-05-07
  • 打赏
  • 举报
回复
那一行重新输入看看 是不是冒号什么的占两个字节什么的
victorycyz 2004-05-07
  • 打赏
  • 举报
回复

先试用我说的第一种方法,看还出问题吗?如果没有问题了,那可能是多了空格或其他不可见的字符。

kernel1_0 2004-05-07
  • 打赏
  • 举报
回复
文件很大,有3M呢,我也不知道整个读后怎么处理呢?
我觉得中海可以解决这个问题的。。
代码如下
Open filename For Input As #1

Do While Not EOF(1)

Line Input #1, inbuf
ucaseinbuf = UCase(inbuf)

If InStr(ucaseinbuf, "SENDMAIL(") > 0 Then ‘判断类型,没什么关系的

rsemail.AddNew

sysid = Mid(inbuf, 44, 17) '选sysid,就是EMAIL中带的一个字段

rsemail.Fields("Eid").Value = sysid

emtime = Left(inbuf, 17) '选date,time
emtimec = "20" & Mid(emtime, 7, 2) & "-" & Left(emtime, 2) & "-" & Mid(emtime, 4, 2) & Right(emtime, 9)

× rsemail.Fields("Edate").Value = Format(emtimec, "yyyy-MM-dd hh:mm:ss")

出错就是这里了。。。
xanger 2004-05-07
  • 打赏
  • 举报
回复
试试
dim Str as string *16
改为:
dim Str as string *20
online 2004-05-07
  • 打赏
  • 举报
回复
比较出错行与其他行的不同

或者我建议用ado当成表来读
victorycyz 2004-05-07
  • 打赏
  • 举报
回复

代码都不贴,怎么分析?

没有看到具体的东西,只能给出一点点提示了:


1. 直接打开文件,删除出错的行,再运行看看。

2. 把文件先全部读出来,再处理看看。s = input(lof(文件号))

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧