Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
Chr(13) が無視される。
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9492#CommentId13812
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2009/12/14 23:38:47
>「改行」のコードですよね?
いわゆる改行コードの一種ですが、Windows においては、それ単体では改行を意味しません。
(具体的な修正方法は、既に wii さんが回答されていますね)
=====================
かつての「タイプライター」では、複数行のデータを印刷するときに、
水平印字位置を左端に戻す事(行頭復帰:Carriage-Return)と、
次の行まで用紙を送り出す(行送り/改行:Line-Feed)という
2 つの動作が行われていました。これが現在の改行コードに繋がっています。
CR の方は、文字コードで 0D(16進数)つまり 13 であり、
LF の方は、文字コードで 0A(16進数)つまり 10 で表されます。
Windows においては、この 2 文字を組み合わせた CR+LF を改行として扱います。
Chr(13) つまり CR 単体では改行と看做されませんので注意してください。
(ただしアプリケーションによっては、Cr や Lf 単体でも改行と看做す場合があります)
そして既に回答が付いていますが、VB/VBA/VB.NET では「vbNewLine」という文字列定数にて、
一般的な改行文字を表せるようになっています。
vbNewLine とは、Windows 環境では CR+LF を表す定数であり、Mac 環境では CR を表す定数です。
また、CR や LF や CR+LF その物を表すために、vbCrLf/vbCr/vbLf といった
定数も用意されています(オショウさんが書かれていますね)。また、VB.NET においては
これらと同じ意味を持つ、ControlChars.CrLf などの定数も存在します。
ちなみに Chr や ChrW を使う場合には、『Chr(13) & Chr(10)』という記述によって
改行を表現できます。ただし通常は、vbNewLine や vbCrLf を使った方が良いでしょう。
-------------------
蛇足ですが、Unicode には“広義”の「改行コード」が 8 種類あったりします。
http://www.unicode.org/reports/tr13/tr13-9.html
CR: Carriage Return (キャリッジリターン/復帰)
LF: Line Feed (ラインフィード/改行)
CRLF: Carriage Return + Line Feed (復帰改行)
NEL: Next Line (次行)
VT: Vertical Tabulation (垂直タブ)
FF: Form Feed (フォームフィード/改ページ)
LS: Line Separator (行区切り記号)
PS: Paragraph Separator (段落区切り記号)