精華區beta Visual_Basic 關於我們 聯絡資訊
※ 引述《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
cassine:感謝222.157.164.175 08/06