假如我要将text1.text中的第1行内容自动保存到text1.txt文件中,第2行保存到text2.txt,以此类推,假设有10行,如何实现?commondialog控件能实现吗?请各位高手帮忙,最好能贴出代码,谢谢!

解决方案 »

  1.   

    读取每行数据,逐个保存保存文件:
        FileNum = FreeFile
        Filetext = "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
        TFile = App.Path & "\" & "a.txt"
        Open TFile For  Access Write As #FileNum
        Put #FileNum, , FileCRC
        Close FileNum
      

  2.   

    更正保存文件:
        FileNum = FreeFile
        Filetext = "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
        TFile = App.Path & "\" & "a.txt"
        Open TFile For  Access Write As #FileNum
        Put #FileNum, , Filetext
        Close FileNum
      

  3.   

    没有调试,应该没问题Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" _
        (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
        lParam As Any) As Long
    Private Declare Function SendMessageByNum Lib "USER32" _
        Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
        ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function SendMessageByString Lib "USER32" Alias _
        "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam _
         As Long, ByVal lParam As String) As LongPrivate Const EM_LINEINDEX = &HBB
    Private Const EM_GETLINECOUNT = &HBA
    Private Const EM_GETLINE = &HC4
    Private Const EM_LINELENGTH = &HC1Function GetLineText(ByVal txtbox As TextBox, ByVal LineIndex As Long) As String '返回指定行的内容
      Dim lc As Long, linechar As Long
      linechar = SendMessageByNum(txtbox.hWnd, EM_LINEINDEX, LineIndex, 0)
      lc = SendMessageByNum(txtbox.hWnd, EM_LINELENGTH, linechar, 0) + 1
      GetLineText = String(lc + 2, 0)
      Mid(GetLineText, 1, 1) = Chr(lc And &HFF)
      Mid(GetLineText, 2, 1) = Chr(lc \ &H100)
      lc = SendMessageByString(txtbox.hWnd, EM_GETLINE, LineIndex, GetLineText)
      GetLineText = Left(GetLineText, lc)
    End FunctionPrivate Sub Command1_Click()
    Dim linecount As Long, i As Long
    linecount = SendMessage(txtbox.hWnd, EM_GETLINECOUNT, 0, 0) '返回行数
    For i = 1 To linecount
    Open App.Path & "\text" & i & ".txt" For Binary As #1
    Put #1, , GetLineText(txtbox, i - 1)
    Close #1
    Next
    MsgBox "ok!"
    End Sub
      

  4.   

    呵呵,楼上指教的是。
    Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" _
        (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
        lParam As Any) As Long
    Private Declare Function SendMessageByNum Lib "USER32" _
        Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
        ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function SendMessageByString Lib "USER32" Alias _
        "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam _
         As Long, ByVal lParam As String) As LongPrivate Const EM_LINEINDEX = &HBB
    Private Const EM_GETLINECOUNT = &HBA
    Private Const EM_GETLINE = &HC4
    Private Const EM_LINELENGTH = &HC1Function GetLineText(ByVal txtbox As TextBox, ByVal LineIndex As Long) As String '通过发送消息返回指定行的内容
      Dim lc As Long, linechar As Long
      linechar = SendMessageByNum(txtbox.hWnd, EM_LINEINDEX, LineIndex, 0)
      lc = SendMessageByNum(txtbox.hWnd, EM_LINELENGTH, linechar, 0) + 1
      GetLineText = String(lc + 2, 0)
      Mid(GetLineText, 1, 1) = Chr(lc And &HFF)
      Mid(GetLineText, 2, 1) = Chr(lc \ &H100)
      lc = SendMessageByString(txtbox.hWnd, EM_GETLINE, LineIndex, GetLineText)
      GetLineText = Left(GetLineText, lc)
    End FunctionPrivate Sub Command1_Click()
    Dim linecount As Long, i As Long
    linecount = SendMessage(text1.hWnd, EM_GETLINECOUNT, 0, 0) '返回行数
    For i = 1 To linecount ' 循环
    Open App.Path & "\text" & i & ".txt" For Binary As #1
    Put #1, , GetLineText(text1, i - 1) '获得第i行的内容写入文件texti.txt
    Close #1
    Next
    MsgBox "ok!"
    End Sub
      

  5.   

    楼主请使用控件数组吧:
    在窗体上点住一个TEXT控件,按“CTRL+C”再按“CTRL+V”就可以创建控件数组了。
    假设建立了N个TEXT1控件的数组
    Sub SaveText()
    Dim I as long              '临时循环变量
    Dim FileNum as Long        '文件号 
    Dim FileName as String     '文件名
    For I=0 to Text1.Count-1  '使用Text1.Count得到控件数组的个数
       FileNum = FreeFile
       FileName=App.Path & "\Text" & I & ".txt"  '假设保存在工程所在的路径下
       Open FileName For  Access Write As #FileNum
          Put #FileNum, , Text1(i).text
       Close FileNum
    Next
    End Sub