web-dev-qa-db-ja.com

vbLf、vbCrLf、vbCr定数の違い

MsgBox;でvbLfvbCrLfvbCrのような定数を使用しました。 MsgBoxで同じ出力を生成します(テキスト「Hai」は最初の段落に表示され、単語「Welcome」は次の段落に表示されます)

MsgBox("Hai" & vbLf & "Welcome")
MsgBox ("Hai" & vbCrLf & "Welcome")
MsgBox("Hai" & vbCr & "Welcome")

vbLfvbCrLfおよびvbCrが印刷および表示機能に使用されることは知っています。

vbLfvbCrLfvbCr定数の違いを知りたい。

40
Lawrance
 Constant   Value               Description
 ----------------------------------------------------------------
 vbCr       Chr(13)             Carriage return
 vbCrLf     Chr(13) & Chr(10)   Carriage return–linefeed combination
 vbLf       Chr(10)             Line feed
  • vbCr:-行頭に戻る
    印刷および表示機能のcarriage-return文字を表します。

  • vbCrLf:-Enterを押すのと同様
    印刷および表示機能用のcarriage-return文字とlinefeed characterを組み合わせたものを表します。

  • vbLf:-次の行に進む
    印刷および表示機能の改行文字を表します。


続きを読む 定数クラス

54
Vivek S.

3つの定数は現在、似たような機能を持っていますが、異なる歴史的起源があり、ごくまれにどちらかを使用する必要がある場合があります。

古いマニュアルタイプライターの時代を思い起こして、この起源を理解する必要があります。新しいテキスト行を開始するには、2つの異なるアクションが必要です。

  1. 入力ヘッドを左に移動します。タイプライターでの実際には、これは紙(「キャリッジ」)を運ぶロールを右端まで移動することで行われます。タイピングヘッドは固定されています。これはキャリッジリターンです。
  2. 用紙を1行の幅だけ上に移動します。これは改行です。

コンピューターでは、これら2つのアクションは2つの異なる文字で表されます-キャリッジリターンはCR、ASCII文字13、vbCr;です。改行はLF、ASCII文字10、vbLfです。テレタイプとラインプリンターの昔、プリンターはこれらの2つの文字を送信する必要がありました-伝統的にCRLF-シーケンスで新しい行を開始するため、そしてCRLFの組み合わせ-vbCrLf-一部コンピューティング環境で、従来の行末シーケンスになりました。

もちろん、問題は、行末をマークするために1文字のみを使用し、端末またはプリンターにキャリッジリターンとラインフィードの両方のアクションを自動的に実行させることと同じくらい意味があることでした。そして、あなたがそれを知る前に、3つの異なる有効な行末がありました:LF単独(UnixおよびMacintoshで使用)、CR単独(古いMac OSで明らかに使用)およびCRLF組み合わせ(DOSおよびWindowsで使用)。これにより、DOS/Windowsプログラムがtext modeでファイルを開くオプションを複雑にし、ファイルから読み取られたCRLFペアが単一のCR(およびその逆)に変換されました。書くときは逆)。

つまり、(あまりにも)長い話を短くするために、3つの独立した行セパレーターの存在には歴史的な理由がありますが、今では多くの場合無関係になります。NETでの最善のアクションは、おそらくEnvironment.NewLineこれは、使用する他の誰かがあなたのために決定したことを意味し、将来の移植性の問題は軽減されるべきです。

30
AAT