• ベストアンサー

日本語文字列の比較

複数行のテキストボックスから日本語の文字を拾い出して 入力された文字と比較しようとしているのですが、 矢印の部分で、エラーが出て上手く処理ができません アドバイスをいただけないでしょうか Dim str As String   For i = 0 To TextBox1.Lines.Length → str = CStr(TextBox1.Lines(i + 1))        ・        ・        ・

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

エラーが出ている直前のiの値はいくつかな? 実際にやりたい処理は何かな? 例えばTextBox1に二行入力したら TextBox1.Lines.Lengthは2で TextBox1.Lines(0) TextBox1.Lines(1) の二つが存在し TextBox1.Lines(2) は存在しないからね。 #エラーの原因がそれであればいいんだけど。 #複数行の時はMultiline = Trueでなきゃいかんってのは前提条件だよね。 後、System.Windows.Forms.TextBox.Linesの戻り値はStringの配列で 添え字を指定したらStringなのでわざわざCstr関数を使う必要は無いよ。 #俺は,何らかの文字列が欲しい時は,俺はVB6由来のCStr関数じゃなくtoStringメソッドを使う。

marche302
質問者

補足

回答ありがとうございます ご指摘のとおり、存在しない行を参照していたようです コンボボックスの文字と、一致したテキストボックスの行を 削除してしまって、その分をつめてしまう(0,1,2,3とあって 2を削除したら 0,1,3と空白の行をいれずに表示される) ようにしたいのですが、その場合どうしたらよいのでしょうか? 試しに下記の矢印のようにしてみましたが、変化が見れませんでした… Dim str As String Dim comb As String comb = ComboBox1.Text For i = 0 To TextBox1.Lines.Length - 1 str = TextBox1.Lines(i) If comb = str Then → TextBox1.Lines(i) = ""           ・           ・           ・

その他の回答 (2)

回答No.3

間違えた。 #2のコードは 空白行であるか否かで削除するかどうか決めちゃっている けどまあisEmpty関数の名前と中身変えてもらえば同じように出来るはずだから説明省いていいよね

回答No.2

うん、配列は直接削除したりつめたりするの無いみたいだね。 一応System.Windows.Forms.TextBox.LinesはRemoveAtがコーディング時のメンバ一覧に出てこない System.Collections.Generic.IListに変換しようとしてみたけど固定長だといわれて刎ねられた。 自分でTextBox.Textの中から改行を見つけなおして削除する、ってのは個数数え間違えたりするかもしれないし、エレガントじゃなく好きじゃないので 泥臭いけど別なリストに入れて,リスト側を調整し,そのリストをTextBox.Linesに入れることにした(これは成功) Sub Button1Click(sender As Object, e As EventArgs) Dim strs As System.Collections.Generic.List(Of String) = New System.Collections.Generic.List(Of String)() Dim num As Integer strs.AddRange(TextBox1.Lines) num = strs.FindIndex(AddressOf isEmpty) While num <> -1 strs.RemoveAt(num) num = strs.FindIndex(AddressOf isEmpty) End While TextBox1.Lines = strs.ToArray() End Sub Function isEmpty(str As String) As Boolean Return String.IsNullOrEmpty(str) End Function こんな感じで。 #テキストボックスって条件を見直せて,リストボックスとかに格納してたら楽だったんだけど・・・

marche302
質問者

お礼

回答ありがとうございます テキストボックスに固執する理由は無いので リストボックスで試してみよう思います 無知ですみません

関連するQ&A