none
vb.net 斷句判斷 RRS feed

  • 問題

  • 作業系統用是xp sp2,軟體是vb.net

    請問,表單中拉了一個richtextbox,是要讓人貼文章

    其中有「空白段落」則想自動刪除

    (註:空白段落是指,沒有任何文字的整個段落

    但,我不知道空白段落和有文字的段落該要什麼指令

    指令該如何寫,才能讓程式分辨出是空行該刪還是有文字該保留?

     

    2006年9月25日 上午 07:37

解答

  • richtextbox.Text.Replace(vbLf & vbLf, vbLf)

    若是 TextBox 則用 vbNewLine 取代 vbLf

    http://tlcheng.spaces.live.com/blog/cns!145419920BFD55A7!1017.entry

    2006年9月25日 上午 10:00
    版主
  • richtextbox.Text.Replace(vbLf & vbLf, vbLf)

    這個表示是將連續兩換行符號刪除一個,保留剩一個。

    意即,必須有空白行,才會有連續兩換行符號,因此可達成刪除空白行的目的。

    如果我會錯意,請以範例說明轉換前後的差異。

    2006年9月25日 下午 10:45
    版主
  • ... 那就用 Do Loop 啊~

    Dim iLen As Integer

    Do
       iLen = richtextbox.Text.Length
       richtextbox.Text.Replace(vbLf & vbLf, vbLf)
    Loop Until iLen = richtextbox.Text.Length

     

    2006年9月26日 上午 02:32
    版主
  • 這是基本功,請練習字串操作。

    iLoc = InStr(RichTextBox.Text, "東西")
    sLoc = InStrRev(RichTextBox.Text, vbLf)
    eLoc = InStr(RichTextBox.Text, vbLf)
    RichTextBox.Text = Left(RichTextBox.Text, sLoc - 1) & Mid(RichTextBox.Text, eLoc)

    2006年9月26日 上午 09:21
    版主

所有回覆

  • richtextbox.Text.Replace(vbLf & vbLf, vbLf)

    若是 TextBox 則用 vbNewLine 取代 vbLf

    http://tlcheng.spaces.live.com/blog/cns!145419920BFD55A7!1017.entry

    2006年9月25日 上午 10:00
    版主
  • 你好。@@

    richtextbox.Text.Replace(vbLf & vbLf, vbLf)

    是兩行合併成一行,會將內容弄亂掉。@@"

    現在我要的是判斷那行是否擁有文字,

    若有,則不進行動作;若無,則進行刪除段落的動作,

    我不知道的是,沒有文字的段落←這指令是怎麼寫的…

     

    我還試了許多其它指令,都沒有成功。@@"

    有個大大給了我一段程式,我還在研究(不太會設。><),就不知道有沒有更簡便的方法

    ================================================

    Dim A() As String=richtextbox1.Text.Spilt(ControlChars.CrLf)
    Dim Temp As String

    For Each B As String In A()
        If B.Trim.Length>0 Then
         Temp &= IIf(Temp.Length>0 , ControlChars.CrLf , "") & B
        End If
    Next

    ================================================

    2006年9月25日 下午 02:41
  • richtextbox.Text.Replace(vbLf & vbLf, vbLf)

    這個表示是將連續兩換行符號刪除一個,保留剩一個。

    意即,必須有空白行,才會有連續兩換行符號,因此可達成刪除空白行的目的。

    如果我會錯意,請以範例說明轉換前後的差異。

    2006年9月25日 下午 10:45
    版主
  • 會錯意的是我…抱歉。><"" (看錯了。@@")

    成功了…萬分感謝 m(_ _)m

     

    另外,我還想設自動判斷空行,

    如果有空行,則直接刪除,直到沒有空行為止。

    ====原始文章====

    01文章

    02

    03文章

    04

    05

    06文章

    ================

    ==目前程式進行後的動作==

    01文章

    02文章

    03

    04文章

    ======================

    ====想要程式跑的結果====

    01文章

    02文章

    03文章

    ======================

    如果要設if句

    if  ???? then 取代

    其中的 ???? 應該如何寫… ><"

     

    2006年9月26日 上午 02:07
  • ... 那就用 Do Loop 啊~

    Dim iLen As Integer

    Do
       iLen = richtextbox.Text.Length
       richtextbox.Text.Replace(vbLf & vbLf, vbLf)
    Loop Until iLen = richtextbox.Text.Length

     

    2006年9月26日 上午 02:32
    版主
  • 成功了。

    非常感謝。m(_ _)m

    2006年9月26日 上午 03:53
  • 另外…

    如果我希望只要含有"東西"這兩個字的段落,就整段刪除。

    搜尋語法我已經寫好了,

    但不知道取代該如何寫

    RichTextBox.Text = Replace(RichTextBox.Text, ???? , "")

     

    2006年9月26日 上午 09:12
  • 這是基本功,請練習字串操作。

    iLoc = InStr(RichTextBox.Text, "東西")
    sLoc = InStrRev(RichTextBox.Text, vbLf)
    eLoc = InStr(RichTextBox.Text, vbLf)
    RichTextBox.Text = Left(RichTextBox.Text, sLoc - 1) & Mid(RichTextBox.Text, eLoc)

    2006年9月26日 上午 09:21
    版主