作者fumizuki (小狮子)
看板Visual_Basic
标题Re: [VB6 ] 请教字元阵列─字串的互换
时间Sat Aug 6 09:40:25 2005
※ 引述《cassine ( EVOX )》之铭言:
: 假设我有一个阵列Buffer(8) As Byte里面存着「文字测试」四个中文字,
: 也就是说从第一个Byte到第八个Byte分别是 A4 E5 A6 72 B4 FA B8 D5,
: 请问该如何变换成为字串 str As String * 4?
: 又如果是储存在 str As String * 4 中该如何转存到 Buffer(8) As Byte中?
: 找过了也还不是很懂,请各位高手帮忙了。
1)
Dim Buffer() As Byte '不可以在宣告时限定上限
ReDim Buffer(7) '重新配置的上限不影响StrConv()的结果,所以此行无意义
Buffer = StrConv("文字测试", vbFromUnicode) '从 Unicode 转成 ANSI
Debug.Print StrConv(Buffer, vbUnicode) '从 ANSI 转成 Unicode
Open "c:\xd.txt" For Binary As #1
Put #1, 1, Buffer
Get #1, 1, Buffer
Debug.Print StrConv(Buffer, vbUnicode) '要转回 Unicode 才会是正确的资料
Close
2)
Dim Buffer() As Byte
Buffer = "文字测试" '不转换亦可
Open "c:\xd.txt" For Binary As #1
Put #1, 1, Buffer
Get #1, 1, Buffer
Debug.Print Buffer '存入档案没有转换,取出来也不必转换
Close '但是用记事本看到的内容是看不懂的符号
以上,有转换成 ANSI 就要记得转回来,
存入档案一律记得转成 ANSI,不然档案长度会不可预期(?)
之前我就忘记转换,复制档案会莫名奇妙多出几个byte...囧
--
VB 程式设计 仓木麻衣 PTT 星爷板 行列输入法
======================================================
Visual_Basic MaiKuraki Stephen Array
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.58.156.43
1F:推 cassine:感谢222.157.164.175 08/06