2016-04-05 11 views
0

テキストボックスの値を入力するチェックリストボックスがありますが、テキストボックスのテキストをテキストファイルに貼り付けると、ラインブレイカーが付いたテキストファイルとスペースだけで問題が発生します。おそらく、チェックされたリストボックスが正しく埋められていないのはそのためです。 Splitメソッドwith line breaker vb.net

Checkedlistbox and textbox

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick 

    Dim separated = TextBox2.Text.Split(vbNewLine & " ") 

    CheckedListBox1.Items.Clear() 
    CheckedListBox1.Items.AddRange(separated) 
    CheckedListBox1.Items.Remove(vbCrLf) 
    CheckedListBox1.Items.Remove("#") 
    CheckedListBox1.Items.Remove("PI") 

End Sub 

は、どのように私はこの問題を取り除くことができますか? wordprintscreen

+0

ですから、テキストボックスから各項目を取りたいし、それがChecedListBoxに表示されます、その右にありますか?あなたはどのようにTextBoxの項目を分割する予定ですか?行によって?またはそれぞれの単語は別に? –

+0

各単語は別々に! – noidea

答えて

2

あなたの例に基づいて。この文字列の周りのスペースはすべて出力に含まれます。あなたはこれらの文字のいずれかが文字列を分割するために使用することができるように、各文字を一覧表示、スプリットの異なるバージョンを使用したい:

Dim separated = TextBox2.Text.Split(vbCr, vbLf, vbTab, " "c) 

これは、スペース、タブ、改行またはキャリッジの一つ以上を扱います分割として返され、返される文字列にはそれらの文字は含まれません。ただし、空の文字列を返すので、文字列を個別に追加してフィルタリングする必要があります。残りのコードは、このことで置き換えることができます。

CheckedListBox1.Items.Clear() 
    For Each item In separated 
     If item <> "" Then CheckedListBox1.Items.Add(item) 
    Next 
+0

いいえ、動作しません。チェックリストボックス内のアイテム間にさらにスペースを与えます。 – noidea

+0

また、Splitによって返された空の文字列もチェックする必要があります。私は更新する –

+1

@StuartWhitehouse - クリーナーオプションを私の提案....あなたはvbTabを直接使用することができます忘れてしまった。 – Mych

1

は、すべてのスペースを取り除くと、その後

char tabs = '\u0009'; 
Dim separated = TextBox2.Text.Replace(" ", "").Replace(tabs, "").Split(vbNewLine) 

あなたはすべて削除する必要があるのタブを削除するには

Dim separated = TextBox2.Text.Replace(" ", "").Split(vbNewLine) 

UPDATEを分割:私は言葉に値を貼り付けた場合、彼らは次のように来ます分割前に必要でないアイテム。 はSO ...あなたは現在スペースが新しい行が続いている文字列を分離している

char tabs = '\u0009'; 
StrippedText = TextBox2.Text.Replace(" ", "").Replace(tabs, "").Replace("P1" & vbCRLF & vbCRLF, "").Replace(vbCRLF & "#" & vbCRLF, "") 
Dim separated = StrippedText.Split(vbNewLine) 
+0

まだ同じ結果..:/ – noidea

+0

私は他の答えを使用するつもりです。とにかくありがとう ! :) – noidea