none
如何讓接收訊息替換調呢? RRS feed

  • 問題

  • 我使用的接收語法是
    RxText.Text += Trim(testRXdata)

    如果要把接收到的aaa替換成xxx
    請問我該怎麼做呢?
    2007年1月9日 上午 10:18

解答

  • 文字資料的代換,可以用 string.Replace()。

    RxText.Text = RxText.Text.Replace("aaa", "xxx")

    2007年1月9日 上午 10:24
    版主
  • 其它:

    文字結合運算建議你用 & ,+ 是保留相容舊版 BASIC 語法,不知道何時會拿掉。

    亦即:RxText.Text &= Trim(testRXdata)

    2007年1月10日 上午 01:44
    版主
  • RxText.Text += Trim(testRXdata)
    上面這行

    換成下面這行試試
    RxText.Text += Trim(testRXdata).replace("aaa","xxx")

    2007年1月10日 下午 01:11
  • 我還是看不懂你在寫什麼 .

    如果你要找字串中有沒有指定字串,可以使用 string.IndexOf(),如果回傳值是 >=0,就代表有這個字串,此時就可以用 string.Replace() 來代換指定字串 .

    2007年1月10日 下午 01:11
    版主
  • 從你的程式碼來看:

    testRXdata = Trim(testRXdata)
    testRXdata = testRXdata.Replace("123", "aaa")
    testRXdata = testRXdata.Replace("456", "bbb")
    txtContent.Text &= testRXdata

    這樣就可以了。

    Replace 的對象可以不存在。

    2007年1月10日 下午 03:13
    版主

所有回覆

  • 文字資料的代換,可以用 string.Replace()。

    RxText.Text = RxText.Text.Replace("aaa", "xxx")

    2007年1月9日 上午 10:24
    版主
  • 其它:

    文字結合運算建議你用 & ,+ 是保留相容舊版 BASIC 語法,不知道何時會拿掉。

    亦即:RxText.Text &= Trim(testRXdata)

    2007年1月10日 上午 01:44
    版主

  • 我用判斷式寫成這樣
    If txtContent.Text = Trim("aaa") Then
    txtContent.Text &= txtContent.Text.Replace("aaa", "xxx")
    Else
    txtContent.Text &= Trim(testRXdata)
    End If

    但是還是不會去判斷我接收到的文字是aaa 必須要轉成xxx
    2007年1月10日 上午 07:34
  • 看不懂你在寫什麼 ...

    If txtContent.Text = Trim("aaa") Then ' 你的 txtContent.Text 一開始就有值嗎?
    txtContent.Text &= txtContent.Text.Replace("aaa", "xxx")
    Else
    txtContent.Text &= Trim(testRXdata)
    End If

    2007年1月10日 上午 07:39
    版主
  • 抱歉!我搞亂了>_<
                    testRXdata = Encoding.ASCII.GetString(bteAcceptData)
                    RxText.Text += Trim(testRXdata)
    這是原來的語法,所以因該RxText.Text是接收到的數值而不是直接給的數值

    我現在是想假設收到aaa就把顯示在RxText.Text會顯示aaa改成顯示xxx
    就像語言過濾器一樣 接收到若是123 則還是顯示 123 ,如果接收到aaa就替換成xxx

    我用了下面這樣寫法
                    If testRXdata = "aaa" Then
                        testRXdata = "xxx"
                    End If
    就是無法成功    我該如何寫才是對的呢?
    2007年1月10日 上午 11:42
  • RxText.Text += Trim(testRXdata)
    上面這行

    換成下面這行試試
    RxText.Text += Trim(testRXdata).replace("aaa","xxx")

    2007年1月10日 下午 01:11
  • 我還是看不懂你在寫什麼 .

    如果你要找字串中有沒有指定字串,可以使用 string.IndexOf(),如果回傳值是 >=0,就代表有這個字串,此時就可以用 string.Replace() 來代換指定字串 .

    2007年1月10日 下午 01:11
    版主
  • 感謝大家的幫忙!!
    使用
    RxText.Text += Trim(testRXdata).replace("aaa","xxx")
    這方法我弄出來了,不過我想不出來要如何增加一組判斷的方式

    所以我選用了
    string.IndexOf()的方法,來做字串的偵測
                    If testRXdata.IndexOf("123") >= 0 Then
                        txtContent.Text += Trim(testRXdata).Replace("123", "bbb")
                    Else
                        If testRXdata.IndexOf("456") >= 0 Then
                            txtContent.Text += Trim(testRXdata).Replace("456", "aaa")
                        Else
                            txtContent.Text += Trim(testRXdata)
                        End If
                    End If
    不知道有沒有更好的寫法,可以分享給我嗎?
    或是如何使用
    RxText.Text += Trim(testRXdata).replace("aaa","xxx")
    方式增加第二組字串判斷

    太感謝大家了!!
    2007年1月10日 下午 03:04
  • 從你的程式碼來看:

    testRXdata = Trim(testRXdata)
    testRXdata = testRXdata.Replace("123", "aaa")
    testRXdata = testRXdata.Replace("456", "bbb")
    txtContent.Text &= testRXdata

    這樣就可以了。

    Replace 的對象可以不存在。

    2007年1月10日 下午 03:13
    版主
  • 你可以實作一個 Dictionary<string, string> 的方法,來偵測與代換字串 .
    這樣就可以使用迴圈掃瞄 Dictionary 的方式,來做到多重的字串代換 .
    2007年1月10日 下午 04:07
    版主
  •  小朱 寫信:
    你可以實作一個 Dictionary<string, string> 的方法,來偵測與代換字串 .
    這樣就可以使用迴圈掃瞄 Dictionary 的方式,來做到多重的字串代換 .


    這方法是屬於多數的取代嗎?
    我對於Dictionary完全沒頭緒 >_<
    完全不知到如何下手.....
    這方法在多數字串代換下,電腦效能會比較好吧!
    2007年1月10日 下午 05:29