在程序开始时,我在Private Sub Form_Load()中打开文件读入数据
到txt1.text 
在退出程序时如果txtl.text 为空,则不保存数据到文件中
但为什么我得程序当txtl.text 为空时也保存到文件中了
Private Sub Form_Load()
   Dim FileNum1 As Long
  
   Const FILENAME = "D:\测量数据.txt"
  
          FileNum1 = FreeFile
    Open FILENAME For Input As #FileNum1          Input #FileNum1,  txtBmk.Text                                          
                   
    Close #FileNum1
End Sub
Private Sub cmExit_Click()Dim FileNum1 As Long
Const FILENAME = "D:\测量数据.txt"
      
          FileNum1 = FreeFile   '获得空文件号          Open FILENAME For Output Access Write As #FileNum1  '打开文件
    If (txtBmk.Text <> "" Or txtBmk2.Text <> "") Then
                 Print #FileNum1, txt1.Text
                 Close #FileNum1
    Else
           Close #FileNum1
    End If End Sub

解决方案 »

  1.   

    (txtBmk.Text <> "" Or txtBmk2.Text <> "") 该为txt1.text
      

  2.   

    楼上的不错。我猜你是想在程序初始化的时候读取上次程序结束时对某个变量所做的改动吧,正样的话可以用getsetting和savesetting啊。比如如下代码就可以记录窗体的位置。
    Private Sub Form_Load()
        Me.Width = GetSetting(App.Title, Me.Name, "Width", 7200)
        Me.Height = GetSetting(App.Title, Me.Name, "Height", 6300)
        Me.Top = GetSetting(App.Title, Me.Name, "Top", 100)
        Me.Left = GetSetting(App.Title, Me.Name, "Left", 100)
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        Call SaveSetting(App.Title, Me.Name, "Width", Me.Width)
        Call SaveSetting(App.Title, Me.Name, "Height", Me.Height)
        Call SaveSetting(App.Title, Me.Name, "Top", Me.Top)
        Call SaveSetting(App.Title, Me.Name, "Left", Me.Left)
    End Sub
      

  3.   

    是啊
    我是想存下txt1.text 的数据,下次打开的时候显示在窗口上
      

  4.   

    //(txtBmk.Text <> "" Or txtBmk2.Text <> "") 该为txt1.text同意
      

  5.   

    那就简单啊
    比如:
    Private Sub Form_Load()
        text1.text = GetSetting(App.Title, Me.Name, "text1", 0)  
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
        Call SaveSetting(App.Title, Me.Name, "text1",text1.text)
    End Sub
      

  6.   

    If (txtBmk.Text <> "" and txtBmk2.Text <> "") Then
      

  7.   

    to laviewpbt(pbt) 为什么我按你的代码,还不行呢
    具体的参数设置你能详细说说吗?非常感激!!
      

  8.   

    肯定是可以的,你是不是在vb里运行时用那个蓝色小方框结束的啊,那样当然不行的,因为那样没有调用form_unload事件的,也就没有向注册表里写数据了。关于那两个函数,参考以下说明(摘自zy1910)
    GetSetting 函数
    从 Windows 注册表中的应用程序项目返回注册表项设置值。
    语法
    GetSetting(appname, section, key[, default])
    GetSetting 函数的语法具有下列命名参数:
    部分 描述 
    appname 必要。字符串表达式,包含应用程序或工程的名称,要求这些应用程序或工程有注册表项设置。 
    section 必要。字符串表达式,包含区域名称,要求该区域有注册表项设置。 
    key 必要。字符串表达式,返回注册表项设置的名称。 
    default 可选。表达式,如果注册表项设置中没有设置值,则返回缺省值。如果省略,则 default 取值为长度为零的字符串 ("")。 
    说明
    如果 GetSetting 的参数中的任何一项都不存在,则 GetSetting 返回 default 的值。