注册 登录
编程论坛 VB6论坛

求诸位帮忙看一下代码哪里出错了

爱的力量 发布于 2014-01-04 22:35, 590 次点击
我想删除txt文件中的一行数据
我在模块中定义:Public I21, I22, I23, I24  在窗体中用TextBox控件数组(A,B,C,D)给I21,I22,I23,I24 赋值。单击删除时 If A1(i, 1) <> I21 And A1(i, 2) <> I22 And A1(i, 3) <> I23 And A1(i, 4) <> I24 Then中的and好像不起作用了。跟or的作用相似。不知是哪里出了问题?删除单条记录应该怎么编写代码呀?我是vb6.0新手,还请各位前辈,哥哥,姐姐们多多赐教。

Private Sub 删除_Click()
  Dim X, i As Integer
  
  Open App.Path & "\shujv.txt" For Input As #1
  i = 0
  Do While Not EOF(1)
    Line Input #1, X
    i = i + 1
  Loop

  ReDim A1(i, 10) As String
  Close #1
  Open App.Path & "\shujv.txt" For Input As #1
  i = 1
  Do While Not EOF(1)
    Input #1, A1(i, 1), A1(i, 2), A1(i, 3), A1(i, 4), A1(i, 5), A1(i, 6), A1(i, 7), A1(i, 8), A1(i, 9), A1(i, 10)
    i = i + 1
  Loop
    Close #1
    Open App.Path & "\shujv.txt" For Output As #1
    For i = LBound(A1) To UBound(A1)
        If A1(i, 1) <> I21 And A1(i, 2) <> I22 And A1(i, 3) <> I23 And A1(i, 4) <> I24 Then
            Write #1, A1(i, 1), A1(i, 2), A1(i, 3), A1(i, 4), A1(i, 5), A1(i, 6), A1(i, 7), A1(i, 8), A1(i, 9), A1(i, 10)
        End If
    Next i
    Close #1
   
   For i3 = 1 To 17
   
       If A.Item(i3).BackColor = RGB(20, 10, 255) Then
           A.Item(i3).Text = ""
           B.Item(i3).Text = ""
           C.Item(i3).Text = ""
           D.Item(i3).Text = ""
       End If
    Next i3
End Sub

[ 本帖最后由 爱的力量 于 2014-1-4 22:46 编辑 ]
6 回复
#2
Artless2014-01-05 11:00
I21...I24=?
#3
爱的力量2014-01-05 20:47
回复 2楼 Artless
I21,I22,I23,I24 是四个公共变量,在Module模块里定义。由数组控件A(),B(),C(),D()赋值。
    我保存的数据文件是由十个数值组成的,写了一个搜索功能。第2,3,4,5,6个数值与输入值相等则TextBox数组控件 A.Item(1).Text=第1个数值,B.Item(1).Text=第二个数值,C.Item(1).Text=第三个数值,D.Item(1).Text=第四个数值。
    单击数组控件B给I21,I22,I23,I24 赋值
        I21=A.Item(1).Text
        I22=B.Item(1).Text
        I23=C.Item(1).Text
        I24=D.Item(1).Text
    单击删除时在数据文件里找出与I21,I22,I23,I24四个变量都相等的一组数据删除。
    我写的代码单击删除时,只要与其中一个变量相等就会删除。我用的是and,判定结果却不对。不明白是怎么回事。正确的删除代码应该怎么写呢?还请版主指点。谢谢!

[ 本帖最后由 爱的力量 于 2014-1-5 22:09 编辑 ]
#4
alike2014-01-08 12:04
逻辑出错了,你用的是不等号,要用or做判断
比如:if A=1 and B=2 then DoEvent
等价于 if A<>1 or B<>2 then ... else DoEvent


[ 本帖最后由 alike 于 2014-1-8 12:08 编辑 ]
#5
爱的力量2014-01-09 03:15
回复 4楼 alike
谢谢您!为了表示对您的感谢我把所有可用的分都给您了。
#6
w13161414142014-01-09 08:57
学习中
1