人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualBasic2008を使ってプログラミングしています。
str1に、vbCrLf で改行された文字列が格納されているとします。
そのstr1の、最後の行を削除するSubは、どのようなコードになるでしょうか?


●質問者: ILoveWeb
●カテゴリ:コンピュータ
✍キーワード:sub コード プログラミング 文字列
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●27ポイント
str1=str1.Substring(1,str1.LastIndexOf(vbCrLf)-1)
◎質問者からの返答

エラーになってしまうのですが。


2 ● tekk
●27ポイント

最終行を取り除くには以下で対応ができると思います。最終行の末尾に改行コードがある場合と無い場合の両方に対応しています。

Dim str1 As String = "Hello World" + vbCrLf + "It's a wonderful world" + vbCrLf + "love & peace" + vbCrLf

Dim vbcrlfPos As Integer = str1.LastIndexOf(vbCrLf)

If vbcrlfPos >= 0 Then

If vbcrlfPos = str1.Length - vbCrLf.Length Then

' 末尾が改行の場合は、もう一つ前の改行位置を取得する。

vbcrlfPos = str1.LastIndexOf(vbCrLf, str1.Length - vbCrLf.Length)

End If

' 最終行を取り除く

str1 = str1.Substring(0, vbcrlfPos + vbCrLf.Length)

Else

' 改行コードが無い場合は、文字列全体を最終行とみなす。

str1 = String.Empty

End If

Debug.Print(str1)

そうではなくて、末尾の改行コードを取り除くのであれば以下で対応できます。

Dim str1 As String = "Hello World" + vbCrLf + "It's a wonderful world" + vbCrLf + "love & peace" + vbCrLf

Dim vbcrlfPos As Integer = str1.LastIndexOf(vbCrLf)

If vbcrlfPos >= 0 Then

' 末尾の改行を取り除く

str1 = str1.Substring(0, vbcrlfPos)

End If

Debug.Print(str1)


ファイルの最終行を削除する。ファイルの末尾の改行コードを削除する。(String.LastIndexOf)

http://d.hatena.ne.jp/tekk/20091230/1262153644


3 ● kawasaki
●26ポイント

これで動くはずです。

Dim a As String = "あいうえお" + vbCrLf + "かきくけこ" + vbCrLf + "さしすせそ"
MsgBox(a)

Dim b As String
b = a.Substring(0, a.LastIndexOf(vbCrLf))
MsgBox(b)
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ