用VB做的EXE運行時需要讀取一個文本檔案,如何對這個文本檔案TXT進行加密?
能否把這個文本檔案TXT一起生成EXE?
這個文本檔案大概有1000行,中英文都有,中文也可以洗掉。
uj5u.com熱心網友回復:
可以放到資源里去.....uj5u.com熱心網友回復:
如何放?
我的檔案比較多,1000多行,不會一行一行的粘貼上去吧?能不能詳細說?謝謝
uj5u.com熱心網友回復:
是“一個檔案一個檔案的加”。


uj5u.com熱心網友回復:
加入之后,第一個資源的標識號是 101 ,“自定義資源”的型別是 CUSTOM 。你在“標識”上雙擊它,可以更改它的標識號。比如把101改成 1001 、或者 ABCD等(字母不區分大小寫)。
型別最好不要改! “語言”不用改,一般沒什么實際意義。
添加好資源后,點一下那個“磁盤”圖示,保存一下資源。
程式運行時,用 LoadResData( ) 函式進行讀取。
Dim aBuff() As Byte
aBuff = LoadResData("ABCD", "CUSTOM")

uj5u.com熱心網友回復:
加密 .......對誰?“檔案比較多,1000多行“
自定義檔案結構 ,
你那個一定是txt
添加資源,是個辦法, 加上 自定義檔案結構 .
uj5u.com熱心網友回復:
奉勸樓主不要把有限的生命浪費在無限的加密解密死回圈中!uj5u.com熱心網友回復:
加入之后,第一個資源的標識號是 101 ,“自定義資源”的型別是 CUSTOM 。
你在“標識”上雙擊它,可以更改它的標識號。比如把101改成 1001 、或者 ABCD等(字母不區分大小寫)。
型別最好不要改! “語言”不用改,一般沒什么實際意義。
添加好資源后,點一下那個“磁盤”圖示,保存一下資源。
程式運行時,用 LoadResData( ) 函式進行讀取。
Dim aBuff() As Byte
aBuff = LoadResData("ABCD", "CUSTOM")
你太用心了,非常感謝。
我的檔案內容是大量的資料,原先是CSV檔案中的資料復制的到TXT,然后把txt匯入了資源,但是如何讀取指定位置的資料,
使用你的方法能列印出所所有的資料,改成abuff[0)只能顯示255內的資料,指定位置的資料是如何提取的呢?非常感謝
Private Sub Command1_Click()
Dim abuff() As Byte
abuff = LoadResData(101, "custom")
Print abuff(0)
End Sub


uj5u.com熱心網友回復:
既然是固定格式的資料,先用代碼把csv轉成自定義的二進制dat檔案。exe就讀取這個dat檔案,不用txt檔案。
uj5u.com熱心網友回復:
既然是固定格式的資料,先用代碼把csv轉成自定義的二進制dat檔案。
exe就讀取這個dat檔案,不用txt檔案。
謝謝,能給一個教程嗎?獲取指定位置的資料
uj5u.com熱心網友回復:
abuff(0) = 255 ?你的那個“文本檔案”是帶BOM頭的UTF-8編碼的檔案嗎!Print abuff(0) 只是把“檔案中第1個位元組的編碼值”按10進制值輸出而已,并不是“文本內容”。
先說“不加密”的情況:
你按“ANSI”格式編碼保存檔案,再按我給你說的方法加入到資源中。
在 LoadResData() 之后,執行:
Print strconv( abuff, vbUnicode)
這樣才能“還原文本內容”。
你可以先隨便用一個只有幾個字符的文本檔案試試效果就知道了。
再說“加密”的情況:
你按“ANSI”格式編碼保存檔案,再把這個“明文”的文本檔案加密為新檔案,比如叫:Encrypt.dat
再把 Encrypt.dat 按“自定義資源”加入工程中。
在執行 abuff = LoadResData(101, "custom") 之后,abuff() 中是加密的資料;
現在需要的是對abuff()的內容進行“解密”(如何加密、解密,是你自己定的,當然必須是“可逆加密演算法”),
比如將“解密資料”輸出到另一個字串陣列 aBuff2()中了。
這時,再用字串變數:strText = strconv(aBuff2, vbUnicode)
strText 中的內容就是你的原來的“明文文本”了。
再說“編碼”問題,VB6的字串“存盤在記憶體”中時,是以Unicode格式(UTF-16)編碼的,
strconv()函式,支持的是 ANS與UTF-16 格式之間的轉換。
如果你要用其它格式的編碼,就需要用API函式進行轉換了。
主要是這兩個函式:MultiByteToWideChar() 、WideCharToMultiByte()
比如你的是UTF-8的,可以用它轉換成UTF-16,具體用法你可以搜索一下資料。
注意,如果你的檔案資料帶“BOM頭”,呼叫上面那兩個API時,是要去掉BOM頭資料的,編碼格式是用引數指明。
不過既然你是用VB6寫程式,建議文本檔案的編碼還是用 ANSI格式比較方便(除非有ANSI格式無法表示的字符)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/66992.html
標籤:VB基礎類
上一篇:物件型別的公共變數如何定義
