vb问题:请问怎么用二进制方式(binary)打开文本文件(txt)并读取里面的文本到文本框text1中? vb.net 二进制读取文件
\u600e\u6837\u7528VB\u6253\u5f00\u4e8c\u8fdb\u5236\u6587\u4ef6,\u5e76\u7528\u6587\u672c\u6846\u663e\u793a\u51fa\u6765Private Sub Form_Load()
Dim Temp() As Byte
Dim Templen As Long
Templen = FileLen("c:\1.txt")
ReDim Temp(1 To Templen) As Byte
Open "c:\1.txt" For Binary As #1
Get #1, , Temp
Close #NUM
'''''''\u653e\u5230text\u4e2d,\u4e0d\u652f\u6301\u6c49\u5b57\u4e0d\u77e5\u9053\u600e\u4e48\u6837\u53ef\u4ee5\u652f\u6301\u6c49\u5b57''''''''''
For i = 1 To Templen
Text1.Text = Text1.Text & Chr(Temp(i))
Next i
''''''\u8f93\u51fa\u5230\u6587\u4ef6\uff0c\u8fd9\u4e2a\u652f\u6301\u6c49\u5b57\u548c\u6240\u6709\u5b57\u7b26'''''''''''''''''''''''''''''''''''''''
Open "c:\2.txt" For Binary As #2
Put #2, , Temp
Close #2
End Sub
VB.NET\u6253\u5f00\u4e8c\u8fdb\u5236\u6587\u4ef6\u7528fileopen\u5b8c\u6210\uff0c\u6253\u5f00\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u5f62\u5f0f\u4e3a\uff1aopenmode.binary
\u8bfb\u53d6\u4e8c\u8fdb\u5236\u6587\u4ef6\u7528\u7684\u662ffileget\u65b9\u6cd5\uff0c\u5199\u5165\u4e8c\u8fdb\u5236\u6587\u4ef6\u7528\u7684\u662ffileput\u65b9\u6cd5\u3002
\u5e94\u7528\u793a\u4f8b\uff1a\u5c06\u4e00\u6279\u968f\u673a\u6570\u4fdd\u5b58\u5728\u4e00\u4e2adat\u6587\u4ef6\u4e2d\uff0c\u7136\u540e\u518d\u5c06\u5176\u63d0\u53d6\u5230\u6587\u672c\u6846\u4e2d\u3002
\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u8bfb\u5199\u4e00\u6279\u968f\u673a\u6570\u7684\u5b58\u53d6\uff0c\u7a0b\u5e8f\u4e3a\uff1a
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, i, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
For i = 1 To 8
x = Int(Rnd() * 100)
s = s + Str(x)
FilePut(fn, x)
Next
FileClose(fn)
TextBox1.Text = s
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
Do While Not EOF(fn)
FileGet(fn, x)
s = s + Str(x) + " "
Loop
FileClose(fn)
TextBox1.Text = s
End Sub
1、在工程菜单中 添加部件 找到 Microsoft common dialog control 选上添加。
2、在 form1 中 拖放 text、Command和commondialog 控件,把commondialog的name 属性改为 Cdg1。
3、在command1_click 事件中输入代码:
Private Sub Command1_Click()
Dim FileNam As String
Dim tStr() As Byte
Dim txtStr As String
CDg1.Filter = "*.txt" ' 文件对话框的默认打开文件类型
CDg1.FileName = "*.txt"
CDg1.ShowOpen
FileNam = CDg1.FileName
Open FileNam For Binary As #1 '以二进制文件方式打开文件
ReDim tStr(n) As Byte
Get #1, , tStr '读取文本
Close (1)
Text1.Text = StrConv((tStr()), vbUnicode) ' 写入text1
End Sub
如果文本文件有多行,应该把文本框Text1的MultiLine属性设为True
Dim a() As Byte
Open "a.txt" For Binary As #1
ReDim a(LOF(1) - 1) As Byte
Get #1, , a
Close #1
If a(0) <> &HFF And a(0) <> &HFE And a(0) <> &HEF Then
Text1.Text = StrConv(a, vbUnicode)
Else
MsgBox "文本文件不是ANSI编码"
End If
如果需要读取非ANSI编码文件,请补充问题。
最简单的方法是:
Open "123.txt" For Binary As #1
Text1.Text = Input(LOF(1), #1)
Close #1
当然里面的文本文件名自己改
Private Sub Command1_Click()
Dim b() As Byte, i As Long
T = "C:\1.txt" '文本路径
Open T For Binary As #1
b = InputB(LOF(1), #1)
Close #1
For i = 0 To UBound(b)
T1 = T1 & b(i)
Next
Text1 = T1
End Sub
'请参考采纳,谢谢!
'你试过我给你的方法吗?我已经调试正常的~
Private Sub Command2_Click()
Dim a() As Byte, b() As Byte
Open "D:\作业\31\1.txt" For Binary As #1
Open "D:\作业\31\2.txt" For Binary As #2
Open "D:\作业\31\3.txt" For Output As #3
a = InputB(LOF(1), #1)
b = InputB(LOF(1), #2)
For i = 0 To UBound(a)
T1 = T1 & a(i)
Next
For i = 0 To UBound(b)
T2 = T2 & b(i)
Next
Print #3, T1 & T2
Close #1, #2, #3
End Sub
'试试这个效果怎样,把1.txt 2.txt 转换为二进制把结果保存在3.txt。
绛旓細涓轰粈涔堜綘璁や负鏄儚0,1杩欐牱鐨勶紵浣犵敤鐨勬槸瀛楄妭鏁扮粍锛屾暟缁勬瘡涓厓绱犵殑鍊煎湪0~255涔嬮棿锛佸啓鐨勮瘽鐢≒ut锛岃屼笉鏄痺rite!
绛旓細Dim theFileName As String '鏂囦欢鍚 theFileName = App.Path & "\test.txt"If fileName = "" Then MsgBox "鏂囦欢涓嶅瓨鍦!"Exit Function End If 'Binary鏂瑰紡鎵撳紑鏂囦欢 Open fileName For Binary As #1 '鍐欏叆鏂囦欢 Put #1, , strText 'fileBuff Close #1 涓婇潰鍐欐枃浠讹紝璇诲氨闅忎究浜 ...
绛旓細浣跨敤浜岃繘鍒舵柟寮鎵撳紑鏂囦欢,浣跨敤seek璇彞瀹氫綅鍒241浣嶇疆,鐒跺悗寮濮嬭鍙栨暟鎹氨鍙互浜,姣斿:Dim iFile as integer dim BData(1 to 浣犵殑姣忎釜鏁版嵁甯х殑澶у皬) AS Byte iFile=FreeFile()open "浣犵殑鏁版嵁鏂囦欢鍚" For Binary AS #iFile Seek #iFile,241 while Not EOF(iFile)Get #iFile,姣忎釜鏁版嵁甯х殑澶у皬鐨勬暟瀛...
绛旓細2銆佹墍闇宸ュ叿锛歷b6 3銆佺ず渚嬶細锛浜岃繘鍒鏂囦欢鐨勫啓鍑轰笌璇诲彇锛塒rivate Sub Command1_Click() Open "c:\111.txt" For Binary Access Write As #1 Dim s As String Dim n1 As Integer, n2 As Long Dim f1 As Single, f2 As Double s = "12345" n1 = 10 n2 = 50000 ...
绛旓細姣斿鏁板瓧2锛屽畠鐨勪簩杩涘埗鏁板氨鏄10,浣嗗鏋滆杞垚浜鸿兘鐪嬪緱鎳傜殑锛屽氨瑕佽浆鎴31H锛屼篃灏辨槸ASCII鐮49銆傛瘮濡傚湪鏂囨湰涓紪杈戯紝鎸変笅A閿紝灞忓箷灏变細鐪嬪埌A锛 鍏跺疄杩囩▼鏄繖鏍风殑銆傛寜涓婣閿悗锛岃繖涓寜閿殑淇℃伅閫佸叆鍒拌绠楁満銆傝绠楁満鐢ˋSCII鐮佽繘琛岀紪鐮侊紝灏嗗畠杞寲涓61H瀛樺偍鍦ㄥ唴瀛樻寚瀹氱┖闂翠腑銆傛枃鏈紪杈戝櫒浠庡唴瀛樹腑鍙栧嚭61H锛岄...
绛旓細(濡傛灉鎵句笉鍒扳淰B 6 璧勬簮缂栬緫鍣ㄢ,閭d箞浣鐨刅B杞欢鍙兘娌¤繖涓姛鑳,鏈濂芥崲涓涓猇B杞欢璇曡瘯)鍗曞嚮宸ュ叿鏍忎笂鐨"VB璧勬簮缂栬緫鍣"鎸夐挳(鐢变竴鍫嗙豢鑹叉柟鍧楃粍鎴愮殑閭d釜鍥炬爣),杩欐椂鎵撳紑"VB璧勬簮缂栬緫鍣"绐楀彛 鍗曞嚮"娣诲姞鑷畾涔夎祫婧..."鎸夐挳(浠庡彸杈规暟绗簩涓),閫夋嫨a.exe,鎵撳紑 鍗曞嚮"淇濆瓨"鎸夐挳,淇濆瓨鏂囦欢鍚(鍋囪淇濆瓨涓"...
绛旓細浠ヤ簩杩涘埗鏂瑰紡鍐欐枃浠 浠ヤ簩杩涘埗鏂瑰紡璇诲彇鏂囦欢锛屽緢闀挎椂闂存病鏈夌敤vb 浜嗭紝vb.net涓殑stream寰堟柟渚裤
绛旓細涓轰粈涔堜笉鎶婂浘鐗囦繚瀛樺埌璧勬簮鏂囦欢涓紵閭f牱鐩存帴鐢↙oadResPicture灏卞彲浠ャ傛ゼ涓昏鐨勯偅绉鏂规硶涔熷彲浠ワ紝涓嶈繃澶嶆潅浜涳紝濡傛灉涓嶅湪纭洏涓婁繚瀛樻枃浠讹紝闇瑕佸厛灏浜岃繘鍒鏁版嵁璇诲埌byte鏁扮粍涓紝鍐嶇敤CreateStreamOnHGlobal杞寲鎴愭祦鍚庝娇鐢∣leLoadPicture杞寲鎴VB涓父鐢ㄧ殑stdPicture ...
绛旓細&O11 '鍏繘鍒剁殑11 &H9 '鍗佸叚杩涘埗鐨9 鍗冲湪鏁板煎墠鍔 &O銆&H闄愬畾 琛ㄧず鍏繘鍒躲佸崄鍏繘鍒舵暟 涓嶅姞鐨勮瘽 榛樿涓哄崄杩涘埗鐨 浜岃繘鍒濂藉儚娌℃湁 HEX()鍑芥暟鏄皢鏁板艰浆鎹㈡垚鍗佸叚杩涘埗 OCT()鏄傘
绛旓細浣犲ソ锛1銆佹樉绀哄嚱鏁扮敤chrW锛屼笉鐢╟hr銆2銆佸墠128涓瓧绗﹀彲浠ョ洿鎺ョ敤0-128鏄剧ず銆3銆佸悗128涓瓧绗︽槸鎵╁睍ASCII锛屼緥濡傝鏄剧ず未锛岀敤杩欎釜灏辫chrw锛&H03B4锛夛紝浣嗘槸鎷彿閲岄潰鐨勬暟鎹彧鑳介氳繃鏌ヨ〃鏉ュ鐞嗭紝鎴戣瘯杩囷紝澶ч儴鍒嗛兘琛岋紝涓埆鐨勭敱浜庣郴缁熷師鍥犳棤娉曟樉绀恒備綘鎶婇偅涓煎仛鎴愪竴涓128鐨勮〃锛屽埌鏃跺欐煡鎵惧氨鏄簡銆