Open App.Path & "\IP地址.txt" For Output As #2
    Print #2, Text1.Text
    Print #2, Text2.Text
    Print #2, Text3.Text
    Print #2, Text4.Text
    Print #2, Text5.Text
    Close #2
我使用以上代码存文件,总是使文件里原来的内容丢失
我怎样改代码才能在文件中写内容并且保持原先的内容不丢失

解决方案 »

  1.   

    Open App.Path & "\IP地址.txt" For Append As #2
        Write #2, Text1.Text
        Write #2, Text2.Text
        Write #2, Text3.Text
        Write #2, Text4.Text
        Write #2, Text5.Text
    Close #2
      

  2.   

    Open App.Path & "\IP地址.txt" For append As #2
      

  3.   

    Open App.Path & "\IP地址.txt" For Append As #2
        Print #2, Text1.Text
        Print #2, Text2.Text
        Print #2, Text3.Text
        Print #2, Text4.Text
        Print #2, Text5.Text
        Close #2
      

  4.   

    将数据写入顺序文件。语法Write #filenumber, [outputlist]Write # 语句的语法具有以下几个部分:部分 描述 
    filenumber 必要。任何有效的文件号。 
    outputlist 可选。要写入文件的数值表达式或字符串表达式,用一个或多个逗号将这些表达式分界。 
    说明通常用 Input # 从文件读出 Write # 写入的数据。如果省略 outputlist,并在 filenumber 之后加上一个逗号,则会将一个空白行打印到文件中。多个表达式之间可用空白、分号或逗号隔开。空白和分号等效。用 Write # 将数据写入文件时将遵循几个通用的约定,使得无论什么国别都可用 Input # 读出并正确解释数据: 在写入数值数据时总使用句号作为十进制分隔符。
    对于 Boolean 类型的数据,或者打印 #TRUE# 或者打印 #FALSE#。无论在什么地区,都不将 True 和 False 这两个关键字翻译出来。
    使用通用的日期格式将 Date 类型的数据写入文件中。当日期或时间的部件丢失或为零时,只将现有部分写入文件中。
    如果 outputlist 的数据为 Empty,则不将任何数据写入文件。但对 Null 数据,则要写入 #NULL#。
    如果 outputlist 数据为 Null 数据,则将 #NULL# 写入文件中。
    对于 Error 类型的数据,输出看起来与 #ERROR errorcode# 一样。无论在什么地区,都不将关键字 Error 翻译出来。 
    与 Print # 语句不同,当要将数据写入文件时,Write # 语句会在项目和用来标记字符串的引号之间插入逗号。没有必要在列表中键入明确的分界符。Write # 语句在将 outputlist 中的最后一个字符写入文件后会插入一个新行字符,即回车换行符,(Chr(13) + Chr(10))。
    将一个已打开的磁盘文件读入一个变量之中。语法Get [#]filenumber, [recnumber], varname Get 语句的语法具有以下几个部分:部分 描述 
    filenumber 必要。任何有效的文件号。 
    recnumber 可选。Variant (Long)。记录号(Random 方式的文件)或字节数(Binary 方式的文件),以表示在此处开始读出数据。 
    varname 必要。一个有效的变量名,将读出的数据放入其中。 
    说明通常用 Put 将 Get 读出的数据写入一个文件。文件中第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依此类推。若省略 recnumber,则会读出紧随上一个 Get 或 Put 语句之后的下一个记录或字节(或读出最后一个 Seek 函数指出的记录或字节)。所有用于分界的逗号都必须罗列出来,例如:Get #4,,FileBuffer下列规则适用于以 Random 方式打开的文件: 如果要读出的数据的长度小于 Open 语句的 Len 子句中所指定的长度,Get 会在某个边界之内读出随后的记录,在这里,边界的长度等于记录的长度。将此文件缓冲区内的现有内容填入到一个空间之内,该空间介于一个记录的结尾与下一个记录的开头之间。因为无法确定填入的数据量,所以,应设法使记录的长度与读出的数据长度一致,这通常是个好办法。
    如果读出的变量是一个可变长度字符串,则 Get 语句先读出一个含有字符串长度的双字节描述符,然后读出放入变量中的数据。所以,Open 语句中的 Len 子句所指定的记录长度必须至少比字符串的实际长度多两个字节。
    如果读出的变量是一个数值类型的 Variant,则 Get 先读出两个字节,识别 Variant 的 VarType,然后读出放入此变量中的数据。例如,在读出 VarType 3 的 Variant 时,Get 读出六个字节:前两个字节说明 Variant 为 VarType 3 (Long),后四个字节则包含 Long 类型数据。Open 语句中的 Len 子句所指定的记录长度必须至少比储存变量所需的实际长度多两个字节。 
    注意 可以使用 Get 语句从磁盘中读出一个 Variant 数组,但不能使用它读出包含数组的标量 Variant。也不能使用 Get 从磁盘中读出对象。如果读出的变量是 VarType 8 (String) 的 Variant,则 Get 先读出两个字节,识别 VarType,接下来的两个字节指出字符串的长度,然后读出字符串数据。Open 语句中的 Len 子句所指定的记录长度必须比实际字符串的长度至少多四个字节。
    如果读出的变量是一个动态数组,则 Get 会读出一个描述符,其长度等于 2 加上 8 乘以维数,即 2 + 8 * NumberOfDimensions。读出数组数据和数组描述符就需要占据字节,而 Open 语句中的 Len 子句所指定的记录长度必须大于或等於这些字节数的总和。 例如,在将数组写入磁盘时,下列数组声明需要 118 个字节: 
    Dim MyArray(1 To 5,1 To 10) As Integer这 118 个字节的分配情况如下:18 个字节用于描述符 (2 + 8 * 2),100 个字节用于数据 (5 * 10 * 2)。如果读出的变量是一个大小固定的数组,则 Get 只读出数据。它不读出描述符。
    如果读出的变量是任何其他类型的变量(不是可变长度的字符串或 Variant£©,则 Get 只读出变量数据。Open 语句中的 Len 子句所指定的记录长度必须大于或等於要读出的数据的长度。
    Get 在读出用户定义类型的元素时,好象是单独地读出每一个元素,只是不在元素之间进行填充。在磁盘上,(用 Put 写入的)用户定义的类型的动态数组之前有一个描述符,其长度等于 2 加上 8 乘以维数,即 2 + 8 * NumberOfDimensions。Open 语句中的 Len 子句所指定的记录长度必须大于或等於读出个别元素(包括任何数组及其描述符在内)所需的全部字节数总和。 
    对于以 Binary 方式打开的文件,Random 的所有规则都适用,但以下情况除外: 当 Open 语句中的 Len 子句不起作用时,Get 连续从磁盘中读出所有变量;也就是说,两个记录之间没有任何填充。
    对于任何不属于用户定义的类型的数组,Get 只读出数据。它不会读出描述符。
    Get 读出可变长度字符串,不管这些字符串是否具有长度为 2 字节的描述符,它们都不是用户定义的类型的元素。所读出的字节数等於字符串已包含的字符数。例如,下列语句从文件号为 1 的文件中读出十个字节: 
    VarString = String(10, )
    Get #1,,VarString
      

  5.   

    用seek移动指针到文件尾部在写就是了.
      

  6.   

    Dim sv_fso As New FileSystemObject
    Dim sv_file As TextStream
        '*打开错误记录文件
        If sv_fso.FileExists(prgPath & pc_LogFileName) = False Then
            Set sv_file = sv_fso.CreateTextFile(prgPath & pc_LogFileName, True, False)
        Else
            Set sv_file = sv_fso.OpenTextFile(prgPath & pc_LogFileName, ForAppending, False, TristateFalse)
        End If
        
        sv_file.WriteLine fv_modName & "::" & fv_functionName & "::" & ErrNum & ":" & ErrDesc
           If Not sv_file Is Nothing Then
            sv_file.Close
            Set sv_file = Nothing
        End If
        
        If Not sv_fso Is Nothing Then
            Set sv_fso = Nothing
        End If
      

  7.   

    我也有个类似你这样的问题要问?不过我另发帖比较好,你也可以过来参考一下。
    http://expert.csdn.net/Expert/topic/1437/1437577.xml?temp=.7751734
      

  8.   

    把文本文件内容读取TextBox:
    Dim TempFile As Long
    Dim LoadBytes() As ByteTempFile=FreeFile
    Open 文件名 For Binary As #TempFile
    Redim LoadBytes(1 To Lof(TempFile)) As Byte
    Get #TempFile,,LoadBytes
    Close TempFileText1.Text=StrConv(LoadBytes,vbUniCode)把TextBox内容写入文本文件:
    Dim TempFile As Long
    Dim SaveBytes() As ByteSaveBytes=StrConv(Text1.Text,vbFromUniCode)TempFile=FreeFile
    Open 文件名 For Binary As #TempFile
    Put #TempFile,,SaveBytes
    Close TempFile
      

  9.   

    访问方式为追加记录...(只在后面加上,原先的不变~~~)Open App.Path & "\IP地址.txt" For Output As #2
                                      ------
    改为:Open App.Path & "\IP地址.txt" For Append As #2
      

  10.   

    append是从文件末尾添加,所以用它就可以了