- 和也さん
- ベテラン
- 会議室デビュー日: 2006/02/09
- 投稿数: 78
|
投稿日時: 2006-03-27 11:16
すいません・・
VB.NETの改行数(行数)の取得についてなんですが、
dim test as String
test = "1行目"
test &= vbnewline
test &= "2行目"
test &= vbnewline
test &= "3行目"
System.Consol.Writeline("行数は" & ??? & "行です。")
-----------------
出力
行数は3行です。
-----------------
上記コードがあったとして
変数testの行数を取得したいのですが、可能でしょうか?
上記コードでは、"3"との結果を得たいのですが・・・
|
- ぽぴ王子
- ぬし
- 会議室デビュー日: 2006/03/24
- 投稿数: 475
- お住まい・勤務地: お住まい:城・勤務地:城
|
投稿日時: 2006-03-27 11:35
こんにちは。
私であれば
コード: |
|
using System.Text.RegularExpressions;
MatchCollection match = Regex.Matches(test, vbnewline);
System.Consol.Writeline("行数は" & match.Count.ToString() & "行です。");
|
と書くと思います。
(C#風に書いていますが、VB.NETでも同じような感じだと思います)
[ メッセージ編集済み 編集者: ぽぴ王子 編集日時 2006-03-27 11:36 ]
|
- YAS
- ベテラン
- 会議室デビュー日: 2006/02/15
- 投稿数: 59
|
投稿日時: 2006-03-27 11:45
最後に改行があれば,
コード: |
|
Private Function CountLine(ByVal s As String)
Return s.Length - s.Replace(ControlChars.CrLf, ControlChars.Cr).Length
End Function
|
でいいのですが,最後に改行があったり,なかったりするのなら,効率が悪いコードですが,
コード: |
|
Private Function CountLine2(ByVal s As String)
Dim Count As Integer
Dim Reader As New System.IO.StringReader(s)
Do While Reader.Peek <> -1
Reader.ReadLine()
Count += 1
Loop
Return Count
End Function
|
などというのが確実かと思います。
(もちろん,もっとスマートなコードがあると思います。)
|
- YAS
- ベテラン
- 会議室デビュー日: 2006/02/15
- 投稿数: 59
|
投稿日時: 2006-03-27 11:53
考え直しました。
次のコードが比較的スマートかと。
コード: |
|
Private Function CountLine3(ByVal s As String)
Return s.Split(ControlChars.CrLf).Length
End Function
|
|
- YAS
- ベテラン
- 会議室デビュー日: 2006/02/15
- 投稿数: 59
|
投稿日時: 2006-03-27 11:59
何度もすみません。
最後に改行がつく可能性があるのなら次のようなコードになると思います。
コード: |
|
Private Function CountLine4(ByVal s As String)
Return s.TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf}).Split(ControlChars.CrLf).Length
End Function
|
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-03-27 12:03
引用: |
|
和也さんさんの書き込み (2006-03-27 11:16) より:
変数testの行数を取得したいのですが、可能でしょうか?
上記コードでは、"3"との結果を得たいのですが・・・
|
ないものは自作するというクセを付けると良いですよ。
String.IndexOf メソッド で検索してカウントするという素直な方法もありますね。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|