请问各位:
  怎么读取、修改文件(如:.txt)里的内容~

解决方案 »

  1.   

    方法有很多要看你具体想要实现什么功能了
    简单读写文本文件的方法有:Dim fn As Integer
    Dim tmpStr As String
    fn = FreeFile
    Open "C:\1.txt" For Output As fn    '输出方式打开文本文件
        Print #fn, "123"                '以行方式写入文件
        Print #fn, "456"
        Print #fn, "789"
    Close
    fn = FreeFile
    Open "C:\1.txt" For Input As fn '输入方式打开文本文件
        Do While Not EOF(fn)
            Input #fn, tmpStr       '读取行到变量
            MsgBox tmpStr
            DoEvents
        Loop
    Close fn
      

  2.   

    或用API函数
    Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long【Description】  为初始化文件中指定的条目取得字串 【ReturnValue】  Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2) 【Re】  在vb的api文本查看器中复制的声明为:Declare
      Function GetPrivateProfileString Lib "kernel32" Alias
      "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName
      As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long,
      ByVal lpFileName As String) As Long【Params】
      lpApplicationName -  String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表  lpKeyName ------  String,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表  lpDefault ------  String,指定的条目没有找到时返回的默认值。可设为空("")  lpReturnedString -  String,指定一个字串缓冲区,长度至少为nSize  nSize ----------  Long,指定装载到lpReturnedString缓冲区的最大字符数量  lpFileName -----  String,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long【Description】  在初始化文件指定小节内设置一个字串 【ReturnValue】  Long,非零表示成功,零表示失败。会设置GetLastError 【Re】  在vb的api文本查看器里复制的声明如下:
      Declare Function WritePrivateProfileString Lib "kernel32" Alias
      "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName
      As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long【Params】
      lpApplicationName -  String,要在其中写入新字串的小节名称。这个字串不区分大小写  lpKeyName ------  Any,要设置的项名或条目名。这个字串不区分大小写。用vbNullString可删除这个小节的所有设置项  lpString -------  String,指定为这个项写入的字串值。用vbNullString表示删除这个项现有的字串  lpFileName -----  String,初始化文件的名字。如果没有指定完整路径名,则windows会在windows目录查找文件。如果文件没有找到,则函数会创建它Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
    Private Sub Form_Load()
        Dim Ret As String, NC As Long
        'Write the setting to the file (c:\test.ini) under
        '   Project1 -> Keyname
        WritePrivateProfileString App.Title, "KeyName", "This is the value", "c:\test.ini"
        'Create a buffer
        Ret = String(255, 0)
        'Retrieve the string
        NC = GetPrivateProfileString(App.Title, "KeyName", "Default", Ret, 255, "C:\test.ini")
        'NC is the number of characters copied to the buffer
        If NC <> 0 Then Ret = Left$(Ret, NC)
        'Show our string
        MsgBox Ret
        'Delete the file
        Kill "c:\test.ini"
    End Sub
      

  3.   

    多谢各位了·  
      补充几点: 我想实现的是,存放用户的设置信息。(如:客户端地址,端口号等),以便每次打开时按照.txt 里的数据进行默认连接··
      

  4.   

    那就用第二种方法吧,两个API函数就是用来读写配置文件的,用起来很方便用上面的例子试一下就可以得到你想要的结果了