| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 771 人关注过本帖
标题:一个文本文件用二进制方式读入变量,修改后如何写回到文件中呢?
取消只看楼主 加入收藏
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
结帖率:86.25%
收藏
已结贴  问题点数:20 回复次数:1 
一个文本文件用二进制方式读入变量,修改后如何写回到文件中呢?
一个文本文件用二进制方式读入变量,修改后如何写回到文件中呢?


Option Explicit

Private Sub Command1_Click()
    Dim FileNameStr As String
    Dim FileNum As Long
    Dim bitstr() As Byte
    Dim str1 As String
   
    '变量赋值
    FileNameStr = "C:\Documents and Settings\zgh\桌面\test.txt"
    '文件号采用空闲文件号,不指定
    FileNum = FreeFile
   
    Open FileNameStr For Binary As #FileNum '二进制打开方式
    ReDim bitstr(1 To LOF(FileNum))
        Get #FileNum, , bitstr
    Close #FileNum
   
    str1 = StrConv(bitstr(), vbUnicode)
    txt1.Text = str1        '注,txt1是一个richtextbox控件,即富文本框
   
    'Debug.Print StrConv(bitstr(), vbUnicode)
End Sub




我用以上代码可以正确的将文本文件中的字符放到一个richtextbox控件中,但是我不知在控件中修改后,如何写回文件呢?
我想实现记事本的功能,谢谢.
搜索更多相关主题的帖子: 文本文件 变量 二进制 
2009-08-11 11:49
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Const WM_USER = &H400
Const EM_SETTARGETDEVICE = (WM_USER + 72)

Dim FileNum As Long
Dim bitstr() As Byte


Private Sub cmdopen_Click()
    Dim FileNameStr As String
    Dim FileNum As Long
   
    Dim str1 As String
   
    '变量赋值
    FileNameStr = "C:\Documents and Settings\zgh\桌面\xx.txt"
    '文件号采用空闲文件号,不指定
    FileNum = FreeFile
   
    Open FileNameStr For Binary As #FileNum '二进制打开方式
    ReDim bitstr(1 To LOF(FileNum))
    Get #FileNum, , bitstr
    'Close #FileNum

    str1 = StrConv(bitstr(), vbUnicode)
    txt1.Text = str1        '注,txt1是一个richtextbox控件,即富文本框
   
    'Debug.Print StrConv(bitstr(), vbUnicode)
End Sub

Private Sub cmdsave_Click()
    Dim FileNameStr As String

    Dim str1 As String
   
    'str1 = StrConv(txt1.Text, vbFromUnicode)   '好象此时转换反而会出错
   
'
    Open "C:\Documents and Settings\zgh\桌面\xx2.txt" For Binary As #2
'    Put #2, , bitstr
   
    'Put #FileNum, , str1
    'Put #2, , str1
    Put #2, , txt1.Text
    'Print #FileNum
   
    'Close #FileNum
End Sub

Private Sub Form_Load()
    '使richtxtbox控件出现水平滚动条
    'Call SendMessage(txt1.hwnd, EM_SETTARGETDEVICE, 0, 1)
End Sub





以上是所有代码,我找到原因了,保存时出错,是因为我进行了转换,但是我现在还是不明白,为何 get 时要用 strconv() 转换,但是put 时,就不能再转回去了,一转反而出错?请指教.

[ 本帖最后由 ggyy66 于 2009-8-11 16:22 编辑 ]

2009-08-11 16:10
快速回复:一个文本文件用二进制方式读入变量,修改后如何写回到文件中呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015696 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved