MSFLEXGRID是一个UI,应该让她的数据愿写文件。
用ado 的rs。save就可以---------------------------------------------------------
Feeling

解决方案 »

  1.   

    对不起,你的问题中有几点我看不懂。
    1。什么是“显示出来的数据"?是屏幕上GRID当前显示的那几行,还是指GRID所有的行(包含用滚动条拖动时也会显示出来的)?
    2。什么叫随机文件?是文件名随机?还是指可以随机读取?以下先给出基于显示全部行、写入新文本文件的提示:
    open "c:\1.txt" for output as #1
    dim str as string
    for i=1 to msflexgrid.rows
      str=""
      for j=1 to msflexgrid.cols
          str=str & "|" &   MSHFlexGrid1.TextMatrix(i, j) 
      next j
      print str & vbcrlf
    next i
    close #1
    ---------------------------------------------------
    大概就是这样了。以上代码凭记忆写出,未经调试,可能老兄你还得自己动动手。
      

  2.   

    Montaque(Rainman) 说得也对。
    如果你的数据是直接从ADO的记录集中出来的。
    你可以直接操纵ADO记录集来完成。
    最简单的是使用ADO.SAVE “文件名”
    它会存成XML文本或一个微软子定义格式文本。如果你想按照自己的格式要求来导出成文本。
    最简单的就是象前面代码那样,自己循环
    for i=1 to rs.recordcount
       for j=0 to rs.fields.count -1
    .....
      

  3.   

    思路大致是这样:按照行或者列遍历mshflexgrid中的内容,规定一定的格式(读取格式必须统一)存入文件!
    楼主自己做吧,不难的
      

  4.   

    cooler,谢谢你,是我没说清楚
     1,显示出来的数据都是由我人工输入的(指记录)
     2,应该是随机读取的文件
    我已经定义了
    Private Type IpInfo
       Id As String * 4
       Name As String * 30
       Addr As String * 16
       Port As String * 4
    End Type
    能否再具体点?
      

  5.   

    对,做个循环,一条条来记录,甚至可以在显示以前就记录,这样显得快些!
    如果你的数据是直接从ADO的记录集中出来的。
    你可以直接操纵ADO记录集来完成。
      

  6.   

    按照你输入的顺序一行行写入
    就用cooler 的代码
    外层循环行数,内层循环列数就OK 了
      

  7.   

    我的CODE在此,请大家帮我分析一下,为什么他只能写第一条记录到文本中,后门面的的记录就写不进去了,请纠正,谢谢Dim i As Integer
    With varIpInfo
     For i = 1 To FlexGrid1.Rows
     FlexGrid1.Row = i
     FlexGrid1.Col = 0
     .Id = FlexGrid1.Text
     FlexGrid1.Col = 1
     .Name = FlexGrid1.Text
     FlexGrid1.Col = 2
     .Addr = FlexGrid1.Text
     FlexGrid1.Col = 3
     .Port = FlexGrid1.Text
    Put #1, , varIpInfo
    Next i