none
VB2010 將RichTextBox的文字檔 存進TXT 存一次換一行 RRS feed

  • 问题

  • My.Computer.FileSystem.WriteAllText("D:\Program Files\aaa\" & CheckedListBox1.SelectedItem.ToString, " ", True)

    我使用上面的程式碼可以存進去而不覆蓋過去

    但是他是存進去後面而不是換行

    我希望他每存一次就換一行

    FileOpen(1, "D:\Program Files\aaa\" & CheckedListBox1.SelectedItem.ToString, OpenMode.Output)

    Do Until Timer2.Enabled = False

    PrintLine(1, "前台滑鼠移動 (" & MousePosition.X & "," & MousePosition.Y & ")")

    Loop

    FileClose()

    我又試了以上的方法,他可以換行

    可以但是從TXT打開是正確的,但從RichTextBox讀出來卻是亂碼,原因他並不是存成UTF-8

    還有他如果不加個

    Do Until Timer2.Enabled = False
    Loop

    他就無法換行,加了又輸入太多資料,用延遲又發生錯誤

    請問有沒有可以存成UTF-8又可以存一次換一行

    而且下次存又不會覆蓋,而是往下

    多謝幫忙


    • 已编辑 披薩 2012年3月18日 19:40
    2012年3月18日 19:34

答案

  • 披萨你好:)

    你应该用StringBuilder直接把全部数据一次性先加载到内存中,避免长期频繁和File(硬盘中)的文件存取打交道,这样可以节省时间。同时使用格式化可以完成此任务,参考此示例代码:

    Module A
    
        Public Sub SaveUTF(content As String, path As String, encode As Encoding)
            System.IO.File.WriteAllText(path, content, encode)
        End Sub
    
        Public Sub main()
            '首先请把内容读入StringBuilder,此处用for循环模拟
            Dim sbu As New StringBuilder
    
            For index = 1 To 10
                sbu.AppendLine(index & "这是一个测试……")
            Next
    
            SaveUTF(sbu.ToString(), "c:\\try.txt", Encoding.UTF8)
        End Sub
    End Module

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已标记为答案 披薩 2012年3月19日 5:10
    2012年3月19日 4:57
    版主

全部回复