Memos About Salesforce

Salesforceにハマってたこと!

改行コード「LF」と「CR」と「CRLF」の違い 連携ファイル ファイル出力 コーディング プログラムなどの改行について

f:id:jude2016:20200206105146p:plain
改行コード「LF」と「CR」と「CRLF」の違い

こんにちは、管理人の@Salesforce.Zです。 プログラムを書く時に、あるいは、コードを書く時に、ファイル出力やデータ出力する際に、改行を求める場合がある、その時にどのコードで改行するか、分からん場合あるはず。

今回、改行コードの違いを共有する。

・carriage return

・line feed

読んだら得ること

★ 改行コード「LF」と「CR」と「CRLF」の違い

目次

改行コード

直接、改行コードの違いにジャンプしても構いません。目的のある意識で、時間を使うのがおすすめだから

しかし、頭に定着するには、由来を知ったほうがいいでしょう

改行コードの由来

調査結果としては下記になる

PCが出る前に「Teletype Model 33」というのがあった、日本語でいうと「印刷電信機」や「印電」などという。

現在のパソコンでは見かけないキーがいくつかあります。

WRU?:Who are you?キー
HERE IS:あらかじめ機械的に記憶してある自局名を送信する.
RUB OUT:紙テープにNULLコードを上書きして鑽孔し,間違った 文字を消します.
REPT:repeatキーです.これを押しながら文字キーを押すと,その文字 が繰り返し入力されます.このキーはApple][にもありました.

出典:https://www.pfu.fujitsu.com/hhkeyboard/kb_collection/asr33.html

この古きキーボードはタイピング時に改行するには0.2秒が必要、そして、この0.2秒に外から受信がある場合、データを失う。1秒では、大体10文字(character)を打てる。0.2秒はおおよそ2文字(character)を打てる。そこで技術者が、行の最後に終わりを意味する2文字(character)、Carriage Return(CR)とLine Feed(LF)を組み込みした。

・Carriage ReturnはTeletype Model 33というタイピング機械にカーソルを一番左にする命令

・Line FeedはTeletype Model 33というタイピング機械に紙を次の行に移動する命令

これが、この改行コードの由来らしい。

後で、パソコンが出て、この概念をそのまま、使われている。

ただ、Teletype Model 33はCRLF全部使っている。パソコンが出たばかりのごろは記憶装置(メモリ)が高額なので、仕組を作る人達が、1つを使えば、いいじゃない、ここで、CRとLFが分岐され始めた。

※片方を使うだけで、かなり節約できるから

各改行コードの違いと使い分け

LF・・・UNIX系。Linux CR・・・MacOS(バージョン9まで) CR+LF・・・Microsoft Windows

のようになってしまった。

改行コードの矢印イメージは下記の感じ

CRLF : ↵ CR  : ← LF  : ↓

終わりに

f:id:jude2016:20200206112313j:plain
失敗時
若手時代に、こんなことも知らなくて、困っていた。google先生に聞いて、その時だけ、覚えて、後で、会議の場合、また忘れてしまい💦

ご参考に