写操作:将数据库中的字段加载到Listview中然后导出到文本文件(字段用|分割,记录用换行符)
读操作:将文本文件(字段用|分割,记录用换行符)中的纪录读到Listview中的相应列。
请教大侠们以上内容应如何实现。

解决方案 »

  1.   

    先全部读出来在查找| 分离不行吗?
    读写文件
    ******************
    字符
    Dim sStr As String
    Private Sub Command1_Click()
     CommonDialog1.ShowOpen
     If Len(CommonDialog1.FileName) <> 0 Then
      Open CommonDialog1.FileName For Input As #1
       Do While Not EOF(1)
        Input #1, sStr
        Text1.Text = Text1.Text + sStr + vbCrLf
       Loop
      Close #1
     End If
    End Sub
    **********************
    2进制
    *************
      Filenr = FreeFile
      Open SourceFile For Binary As #Filenr
      ReDim ByteArray(0 To LOF(Filenr) - 1)
      Get #Filenr, , ByteArray()
      Close #Filenr
      Filenr = FreeFile
      Open DestFile For Binary As #Filenr
      Put #Filenr, , ByteArray()
      Close #Filenr
      

  2.   

    写操作:将数据库中的字段加载到Listview中然后导出到文本文件(字段用|分割,记录用换行符)
    先生成一个字符串,类似 1234 | aaa | bbb
    然后用 line output 语句写入文件
    读操作:将文本文件(字段用|分割,记录用换行符)中的纪录读到Listview中的相应列。
    先用 line input 语句读一行,
    然后用 split 语句分割成一个字符串数组
      

  3.   

    Public Type mDanJiaVar 'lHY=品种A:lLG=品种B:lQT=品种C
        lHY As Currency
        lLG As Currency
        lQT As Currency
    End Type
    Public Type mDataVar 'dDate=日期:dHY=品种A:dLG=品种B:dQT=品种C:dJE=金额:dBZ=备注
        dDate As Date
        dHY As Long
        dLG As Long
        dQT As Long
        dJE As Currency
        dBZ As String
    End Type
    Public Type MonthVar 'mDanJia=单价:mLiRun=利润:mData=数据(dDate=日期:dHY=品种A:dLG=品种B:dQT=品种C:dJE=金额:dBZ=备注)
        mDanJia As mDanJiaVar
        mLiRun As mDanJiaVar
        mData(0 To 50) As mDataVar
    End Type'(添加|修改)列表
    'wListView(列表框,写到第几行中,日期,品种A,品种B,品种C,金额,备注)
    Public Function wListView(ByVal Lists As ListView, ByVal lCount As Long, ByVal Dates As Date, ByVal A As Currency, ByVal B As Currency, ByVal C As Currency, ByVal JE As Currency, ByVal BZ As String)
        Lists.ListItems.Add lCount, , CStr(Dates)
        With Lists.ListItems.Item(lCount)
            .SubItems(1) = CStr(A)
            .SubItems(2) = CStr(B)
            .SubItems(3) = CStr(C)
            .SubItems(4) = CStr(JE)
            .SubItems(5) = BZ
        End With
    End Function
    '读取当前月份的(单价、利润、数据(日期、品种A、品种B、品种C、金额、备注))
    Public Function MonthData(ByVal Months As String, MonthOut As MonthVar) As Boolean
        On Error Resume Next
        Dim Drr() As String 'Drr(0)=月份&单价:Drr(1)=本月所有的数据
        Dim DJrr() As String 'DJrr(0)=月份:DJrr(1)=单价
        Dim DJValue() As String 'DJValue(0)=回车符:DJValue(1)=单价和利润
        
        Drr = Split(Months, vbCrLf & "[Data]" & vbCrLf)
        
        '当前价格
        DJrr = Split(Drr(0), vbCrLf & "[DanJia]")
        DJValue = Split(DJrr(1), vbCrLf)
        
        Erase DJrr '重新定义 DJrr(0)=单价:DJrr(0)=利润
        DJrr = Split(DJValue(1), " ")
        MonthOut.mDanJia.lHY = CCur(DJrr(0))
        MonthOut.mLiRun.lHY = CCur(DJrr(1))
        
        Erase DJrr
        DJrr = Split(DJValue(2), " ")
        MonthOut.mDanJia.lLG = CCur(DJrr(0))
        MonthOut.mLiRun.lLG = CCur(DJrr(1))
        
        Erase DJrr
        DJrr = Split(DJValue(3), " ")
        MonthOut.mDanJia.lQT = CCur(DJrr(0))
        MonthOut.mLiRun.lQT = CCur(DJrr(1))
           
        '当前数据
        Dim lData() As String '每天的数据
        Dim Arr() As String '日期**品种A**品种B**品种C**金额**备注
        Dim i As Long
        
        lData = Split(Drr(1), vbCrLf)
        For i = LBound(lData) To UBound(lData)
            If Len(lData(i)) > 20 Then
                Arr = Split(lData(i), "**")
                With MonthOut.mData(i)
                    .dDate = CDate(Arr(0))
                    .dHY = CLng(Arr(1))
                    .dLG = CLng(Arr(2))
                    .dQT = CLng(Arr(3))
                    .dJE = CCur(Arr(4))
                    .dBZ = CStr(Arr(5))
                End With
                Erase Arr
            End If
        Next
        MonthData = (Err.Number = 0)
        Err.Clear
    End Function
    ===========================================
    部分数据
    [Month]=十月
    [DanJia]
    17 1.5
    20 3.6
    0 1
    [Data]
    2004-10-1**50**10**0**1050**无
    2004-10-3**70**20**0**1590**-65
    2004-10-5**100**0**0**1700**无
    2004-10-7**100**0**0**1700**无
    2004-10-9**25**25**0**925**无
    2004-10-11**100**10**0**1900**无
    2004-10-13**50**0**0**850**S1A
    2004-10-15**50**0**0**850**无
    [Month]=十一月
    [DanJia]
    0 0
    0 0
    0 0
    [Data]
    [Month]=十二月
    [DanJia]
    0 0
    0 0
    0 0
    [Data]

    ========================
    只是一部分,看不懂就算了。^-^