web-dev-qa-db-fra.com

Différences entre les constantes vbLf, vbCrLf et vbCr

J'ai utilisé des constantes comme vbLf, vbCrLf & vbCr dans un MsgBox; il produit la même sortie dans un MsgBox (le texte "Hai" apparaît dans un premier paragraphe et un mot "Bienvenue" dans un paragraphe suivant)

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

Je sais que vbLf, vbCrLf et vbCr sont utilisés pour les fonctions d'impression et d'affichage.

Je veux connaître la différence entre les constantes vbLf, vbCrLf et vbCr.

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 : - retournez au début de la ligne
    Représente un retour-chariot caractère pour les fonctions d'impression et d'affichage.

  • vbCrLf : - semblable à appuyer sur Entrée
    Représente un caractère retourne-chariot associé à un caractère de saut de ligne pour les fonctions d'impression et d'affichage.

  • vbLf : - allez à la ligne suivante
    Représente un caractère de saut de ligne pour les fonctions d'impression et d'affichage.


Lire plus de classe de constantes

54
Vivek S.

Les trois constantes ont des fonctions similaires de nos jours, mais des origines historiques différentes, et très occasionnellement, vous devrez peut-être utiliser l’une ou l’autre.

Vous devez repenser à l’époque des vieilles machines à écrire manuelles pour en cerner les origines. Deux actions distinctes sont nécessaires pour créer une nouvelle ligne de texte:

  1. déplacez la tête de frappe vers la gauche. En pratique, dans une machine à écrire, cela se fait en déplaçant le rouleau qui porte le papier (le "chariot") complètement vers la droite - la tête de frappe est fixée. Ceci est un retour de chariot.
  2. déplacez le papier de la largeur d'une ligne. Ceci est un saut de ligne.

Sur les ordinateurs, ces deux actions sont représentées par deux caractères différents - le retour chariot est CR, ASCII caractère 13, vbCr; le saut de ligne est LF, ASCII caractère 10, vbLf. À l’époque des télétypes et des imprimantes linéaires, il fallait envoyer à l’imprimante ces deux caractères - généralement dans l’ordre CRLF - pour commencer une nouvelle ligne, et ainsi la combinaison CRLF - vbCrLf - est devenue une séquence de fin de ligne traditionnelle, dans certains environnements informatiques .

Naturellement, le problème était qu’il était tout aussi logique de n’utiliser qu’un seul caractère pour marquer la fin de la ligne et de laisser le terminal ou l’imprimante effectuer automatiquement les actions de retour à la ligne et de saut de ligne. Et avant que vous ne le sachiez, nous avions 3 terminaisons de ligne valides différentes: LF seul (utilisé dans Unix et MacInfohes), CR seul (apparemment utilisé dans les anciens Mac OS) et le CRLF combinaison (utilisée sous DOS, et donc sous Windows). Cela a conduit à des complications pour les programmes DOS/Windows ayant la possibilité d’ouvrir des fichiers dans text mode, où toute paire CRLF lue dans le fichier a été convertie en une seule CR (et inversement lors de l’écriture).

Donc, pour résumer une histoire (beaucoup trop) longue, il existe des raisons historiques à l’existence des trois séparateurs de ligne séparés, qui sont maintenant souvent sans importance: et la meilleure solution dans .NET est peut-être d’utiliser Environment.NewLine ce qui signifie que quelqu'un d'autre a décidé pour vous d'utiliser le logiciel et que les problèmes de portabilité futurs devraient être réduits.

30
AAT