vb string convert to code

就以asc()為例
佢每次只能轉一個字, 就選打成串字落去都係淨係轉頭一個字
係咪如果要轉一個以上的character, 就一定要續個轉
再續粒砌返好再一次過output出黎?

沒有一次過轉的方法嗎?

你有冇dry run過諗都唔諗將一串string轉做ascii會點?

TOP

原帖由 Corexjp 於 2008-12-18 12:30 發表
你有冇dry run過諗都唔諗將一串string轉做ascii會點?


what is dry run?

我試就緊過, 不是說會只會轉第一個字嗎?
要成串字轉的話, 我要另外寫個for next續粒轉先可以成串string轉
所以先問除左我這個方法仲有無其他

TOP

原帖由 主人 於 2008-12-18 02:24 發表
就以asc()為例
佢每次只能轉一個字, 就選打成串字落去都係淨係轉頭一個字
係咪如果要轉一個以上的character, 就一定要續個轉
再續粒砌返好再一次過output出黎?

沒有一次過轉的方法嗎?


VB不提供咁既野.

TOP

咁唯有用我這個方法
但這個方法又有少少問題

先睇睇

  Dim strr As String = ""
        For x As Integer = 1 To txtTextBoxInput.TextLength
            strr = strr & CStr(Hex(AscW(txtTextBoxInput.Text.Substring(x - 1, 1))))
        Next
        txtTextBoxOutput.Text = strr


咁樣的話
一但轉完就有機會轉唔返轉頭
例如
我=6211
a=61

我咁轉就會變成621161
一時2位一時4位, 無法判斷可以點轉返string

TOP

原帖由 主人 於 2008-12-18 23:49 發表
咁唯有用我這個方法
但這個方法又有少少問題

先睇睇

  Dim strr As String = ""
        For x As Integer = 1 To txtTextBoxInput.TextLength
            strr = strr & CStr(Hex(AscW(txtTextBoxInput.Text.Sub ...


You may need to encode alphanumeric characters in 2 byte code. Or you may encode the entire string in UTF-8.

TOP

原帖由 主人 於 2008-12-18 23:49 發表
咁樣的話
一但轉完就有機會轉唔返轉頭
例如
我=6211
a=61

方法一.
好似有個vb Function係"format",
你可令到佢無論係兩個位, 定係四個位都變成四個位,
即係
我=6211
a=0061
方法二.
asc code之間加豆點/space分開.

TOP

回覆 5# 的帖子

你可以改成這樣, 比較簡單:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim strr As String = ""
        For x As Integer = 1 To txtTextBoxInput.TextLength
            Dim tHex = CStr(Hex(AscW(txtTextBoxInput.Text.Substring(x - 1, 1))))
            strr = strr & Mid("0000", Len(tHex) + 1, tHex)  & tHex
        Next
        txtTextBoxOutput.Text = strr
    End Sub


[ 本帖最後由 Rudy 於 2008-12-19 11:48 編輯 ]

TOP