vb问题:请问怎么用二进制方式(binary)打开文本文件(txt)并读取里面的文本到文本框text1中? vb.net 二进制读取文件

\u600e\u6837\u7528VB\u6253\u5f00\u4e8c\u8fdb\u5236\u6587\u4ef6,\u5e76\u7528\u6587\u672c\u6846\u663e\u793a\u51fa\u6765

Private 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。

  • vb浠ヤ簩杩涘埗璇诲彇鍜屽啓鍏ユ枃浠
    绛旓細涓轰粈涔堜綘璁や负鏄儚0,1杩欐牱鐨勶紵浣犵敤鐨勬槸瀛楄妭鏁扮粍锛屾暟缁勬瘡涓厓绱犵殑鍊煎湪0~255涔嬮棿锛佸啓鐨勮瘽鐢≒ut锛岃屼笉鏄痺rite!
  • VB涓濡備綍鐢ㄤ簩杩涘埗璁块棶鏂瑰紡鎶婂瓧绗︿覆鍐欏叆鏂囦欢涓,濡備綍鐢ㄤ簩杩涘埗璁块棶鏂瑰紡 璇 ...
    绛旓細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 涓婇潰鍐欐枃浠讹紝璇诲氨闅忎究浜 ...
  • VB璇2杩涘埗鏂囦欢
    绛旓細浣跨敤浜岃繘鍒舵柟寮鎵撳紑鏂囦欢,浣跨敤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,姣忎釜鏁版嵁甯х殑澶у皬鐨勬暟瀛...
  • vb濡備綍缂栫▼浜岃繘鍒鏂囦欢
    绛旓細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 ...
  • vb浜岃繘鍒
    绛旓細姣斿鏁板瓧2锛屽畠鐨勪簩杩涘埗鏁板氨鏄10,浣嗗鏋滆杞垚浜鸿兘鐪嬪緱鎳傜殑锛屽氨瑕佽浆鎴31H锛屼篃灏辨槸ASCII鐮49銆傛瘮濡傚湪鏂囨湰涓紪杈戯紝鎸変笅A閿紝灞忓箷灏变細鐪嬪埌A锛 鍏跺疄杩囩▼鏄繖鏍风殑銆傛寜涓婣閿悗锛岃繖涓寜閿殑淇℃伅閫佸叆鍒拌绠楁満銆傝绠楁満鐢ˋSCII鐮佽繘琛岀紪鐮侊紝灏嗗畠杞寲涓61H瀛樺偍鍦ㄥ唴瀛樻寚瀹氱┖闂翠腑銆傛枃鏈紪杈戝櫒浠庡唴瀛樹腑鍙栧嚭61H锛岄...
  • vb 浜岃繘鍒鏂囦欢鐨璇诲啓
    绛旓細(濡傛灉鎵句笉鍒扳淰B 6 璧勬簮缂栬緫鍣ㄢ,閭d箞浣鐨刅B杞欢鍙兘娌¤繖涓姛鑳,鏈濂芥崲涓涓猇B杞欢璇曡瘯)鍗曞嚮宸ュ叿鏍忎笂鐨"VB璧勬簮缂栬緫鍣"鎸夐挳(鐢变竴鍫嗙豢鑹叉柟鍧楃粍鎴愮殑閭d釜鍥炬爣),杩欐椂鎵撳紑"VB璧勬簮缂栬緫鍣"绐楀彛 鍗曞嚮"娣诲姞鑷畾涔夎祫婧..."鎸夐挳(浠庡彸杈规暟绗簩涓),閫夋嫨a.exe,鎵撳紑 鍗曞嚮"淇濆瓨"鎸夐挳,淇濆瓨鏂囦欢鍚(鍋囪淇濆瓨涓"...
  • vb 濡備綍灏嗕竴涓枃鏈枃浠惰浆鎹㈡垚浜岃繘鍒剁殑鏂囦欢 浠g爜鍜屾搷浣1
    绛旓細浠ヤ簩杩涘埗鏂瑰紡鍐欐枃浠 浠ヤ簩杩涘埗鏂瑰紡璇诲彇鏂囦欢锛屽緢闀挎椂闂存病鏈夌敤vb 浜嗭紝vb.net涓殑stream寰堟柟渚裤
  • vb 鑳戒笉鑳界洿鎺鍒╃敤浜岃繘鍒鏁版嵁
    绛旓細涓轰粈涔堜笉鎶婂浘鐗囦繚瀛樺埌璧勬簮鏂囦欢涓紵閭f牱鐩存帴鐢↙oadResPicture灏卞彲浠ャ傛ゼ涓昏鐨勯偅绉鏂规硶涔熷彲浠ワ紝涓嶈繃澶嶆潅浜涳紝濡傛灉涓嶅湪纭洏涓婁繚瀛樻枃浠讹紝闇瑕佸厛灏浜岃繘鍒鏁版嵁璇诲埌byte鏁扮粍涓紝鍐嶇敤CreateStreamOnHGlobal杞寲鎴愭祦鍚庝娇鐢∣leLoadPicture杞寲鎴VB涓父鐢ㄧ殑stdPicture ...
  • 濡備綍鍦VB涓〃绀浜岃繘鍒鏁
    绛旓細&O11 '鍏繘鍒剁殑11 &H9 '鍗佸叚杩涘埗鐨9 鍗冲湪鏁板煎墠鍔 &O銆&H闄愬畾 琛ㄧず鍏繘鍒躲佸崄鍏繘鍒舵暟 涓嶅姞鐨勮瘽 榛樿涓哄崄杩涘埗鐨 浜岃繘鍒濂藉儚娌℃湁 HEX()鍑芥暟鏄皢鏁板艰浆鎹㈡垚鍗佸叚杩涘埗 OCT()鏄傘
  • vb浜岃繘鍒鐮佽浆鎹闂
    绛旓細浣犲ソ锛1銆佹樉绀哄嚱鏁扮敤chrW锛屼笉鐢╟hr銆2銆佸墠128涓瓧绗﹀彲浠ョ洿鎺ョ敤0-128鏄剧ず銆3銆佸悗128涓瓧绗︽槸鎵╁睍ASCII锛屼緥濡傝鏄剧ず未锛岀敤杩欎釜灏辫chrw锛&H03B4锛夛紝浣嗘槸鎷彿閲岄潰鐨勬暟鎹彧鑳介氳繃鏌ヨ〃鏉ュ鐞嗭紝鎴戣瘯杩囷紝澶ч儴鍒嗛兘琛岋紝涓埆鐨勭敱浜庣郴缁熷師鍥犳棤娉曟樉绀恒備綘鎶婇偅涓煎仛鎴愪竴涓128鐨勮〃锛屽埌鏃跺欐煡鎵惧氨鏄簡銆
  • 扩展阅读:二进制对照表大全 ... 二进制最简单的理解 ... 二进制算法最简单教程 ... 进制转换器 ... 一张图看懂二进制 ... 二进制口诀表 ... 计算机为什么使用二进制 ... 如何用二进制表示文字 ... 计算机二进制主要原因 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网