Je ne m'en souviens pas. Alors, quelle est la bonne façon de terminer correctement les anciennes lignes ASCII?
Je ne m'en souviens pas. Alors, quelle est la bonne façon de terminer correctement les anciennes lignes ASCII?
Réponses:
J'utiliserais le mot « r etur n » pour me souvenir, le r vient avant le n.
\n\r
et \r\n
est le même, n'est-ce pas le même effet? pouvez-vous faire la différence?
Si vous utilisez C #, vous devez utiliser Environment.NewLine
ce qui, selon MSDN, c'est:
Une chaîne contenant "\ r \ n" pour les plates-formes non Unix, ou une chaîne contenant "\ n" pour les plates-formes Unix.
Environment.NewLine
va. Cependant, si vous écrivez des choses dans un format bien défini, le format peut également définir la nouvelle ligne. Par exemple, le protocole HTTP stipule que vous devez utiliser \r\n
comme terminateur de ligne pour les en-têtes, etc., quelle que soit la plate-forme.
La nouvelle ligne dépend de votre système d'exploitation:
DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13
Plus de détails ici: https://ccrma.stanford.edu/~craig/utility/flip/
En cas de doute, utilisez n'importe quel visualiseur / éditeur hexadécimal gratuit pour voir comment un fichier code sa nouvelle ligne.
Pour moi, j'utilise le guide suivant pour m'aider à me souvenir: 0D0A = \ r \ n = CR, LF = ca rr iage r eturn, li n e feed
0D0A
par cœur, mais qui confond toujours le \r
et \n
.
La séquence est CR (retour chariot) - LF (saut de ligne). Vous vous souvenez des imprimantes matricielles? Exactement. Donc - l'ordre correct est \ r \ n
Dans n'importe quelle langue .NET, Environment.NewLine
serait préférable.
Soyez prudent lorsque vous effectuez cette opération manuellement.
En fait, je conseillerais de ne pas le faire du tout.
En réalité, nous parlons de la séquence de terminaison de ligne LTS qui est spécifique à la plate-forme.
Si vous ouvrez un fichier en mode texte (c'est-à-dire non binaire), les flux convertiront le "\ n" en LTS correct pour votre plate-forme. Puis reconvertissez le LTS en "\ n" lorsque vous lisez le fichier.
Par conséquent, si vous imprimez "\ r \ n" dans un fichier Windows, vous obtiendrez la séquence "\ r \ r \ n" dans le fichier physique (regardez avec un éditeur hexadécimal).
Bien sûr, c'est une vraie douleur quand il s'agit de transférer des fichiers entre plates-formes.
Maintenant, si vous écrivez dans un flux réseau, je le ferais manuellement (comme la plupart des protocoles réseau l'appellent spécifiquement). Mais je m'assurerais que le flux ne fait aucune interprétation (donc le mode binaire était approprié).
\r\n
pour Windows fera très bien l'affaire.
\n
fait très bien aussi sur Windows, y compris la dernière version du Bloc-notes.
Sur Wikipedia (vous pouvez lire ce qui est correct pour votre système d'exploitation dans cet article):
Les systèmes basés sur ASCII ou un jeu de caractères compatible utilisent individuellement LF (saut de ligne, '\ n', 0x0A, 10 en décimal) ou CR (retour chariot, '\ r', 0x0D, 13 en décimal), ou CR suivi de LF (CR + LF, '\ r \ n', 0x0D0A).
\r\n
Bizarre de dire que je m'en souviens car c'est le contraire de la machine à écrire que j'ai utilisée.
Et bien si c'était normal je n'avais pas besoin de m'en souvenir ...:-)
Dans la machine à écrire lorsque vous avez terminé de numériser la ligne, vous utilisez le levier de retour du chariot , qui avant fait rouler le tambour, le retour à la ligne et vous permet ensuite d'opérer manuellement le retour du chariot .
Vous pouvez écouter à partir de cet enregistrement de freesound.org le son de l'alimentation du papier au début, et à environ -1: 03 secondes après la fin, après l'avertissement de cloche pour la fin de la ligne sonore du tambour qui roule et après celui du retour chariot.