No.8ベストアンサー
- 回答日時:
現在のコード体系やキーボードの元になっているタイプライターやテレタイプなどの機能から掘り起こせば一目瞭然です。
TABというのは、元々はタイプライターで一定の位置(0,8,16など8キャラクタおきの位置)にキャリッジを移動するためのキーで本来は、TABに割り当てられたキーはありましたが、紙の上に反映されるコードなどありませんでした。一方、スペースというのは、一桁何も印字せずに送るキーです。
これをそのままテレタイプ(タイプライターで作成した電文を、相手に伝えて相手側で印刷したり鑽孔テープにパンチする)に置き換えた際、この位置情報を何らかの方法で伝えないと、元の文のレイアウトが崩れてしまいます。初期にはスペースに置き換えていた例もありますが、これだと、8桁送るときには8キャラクタ必要になり電文の通信料が増えてしまいます。当時の通信速度は300CPM(毎分300文字)程度で回線費用も高額でした、ですから、スペースに変換するのはいかにも勿体なく、代わりにタブコードというのが生み出されたのです。タブに限らず、コントロールコード(CLR/CR/LFなども)の多くは、これに近い経緯で決まっています。
当初のタブはハードウェアタブで、位置は固定されていましたが、現在は自由位置に設定が可能です。
また、ホスト系のOSや言語処理系では、プログラムソースにタブを埋めこむことが出来ないため、TSS端末(IBM3270/FACOM6680等)などで作成したプログラムソースでは、保存時にタブは同じレイアウトになるようなスペースで勝手に置換されてしまいます。
まあ、これは、プリンターも実質は同様ですね。んさつしたぶんしょからタブなのかスペースなのかは読み取れませんから。
No.7
- 回答日時:
こんにちは。
みっちょです。もともと欧文文化に由来するので、一旦英語に直してみましょう。
(1)空白…Blank
(2)スペース…Space
(3)タブ…Tabulator
コンピュータ上の話でいくと、(2)と(3)の議論となります。
(1)はそこがSpaceであれTabulatorであれ、文字が空いている状態であればその意味に含むと言えるでしょう。
(2)はスペースバーを押したら出る文字(ASCIIコード0x20)です。通常の空白1文字を表そうと思えばこれを使います。普通に『空白』といえば多くの場合はこれを意味していると思われます。
(3)はタブキーを押したら出る文字(ASCIIコード0x09)です。こちらも1バイトですから、表示上はどうであれ、コンピュータの中で占める容量はスペースなど他の文字と同じです。しかし、タブはコントロールコードという中に含まれ、画面表示の際にカーソル位置を調整するのに使用されます。
スペースとタブをどう使い分けるべきなのか、扱い方はどう異なるのかという事になれば、タブの由来を知る必要があります。一度そのルーツであるタイプライタを打ってみれば解るのですが、タブキーを押すと文字を打ち出すキャリッジが一定間隔で決められた場所にジャキッ!!と移動します。TabはTabulatorの略で、そのTabulatorはテーブル(表)を作るものという意味なのです。もともと文字しか打てないタイプライターで表を表現するために、一定の間隔を空けて項目を効率よく打ち込むために準備されていました。
これは意味合い的にそのままコンピュータにも引き継がれたので、今でもテキストエディタなどでタブ文字を打つとそこで一定の場所まで空白が空くわけです。言ってしまえば、タブ文字というのは一定の次の決められた幅までカーソルを動かす、という機能を持った目に見えないコントロール文字であり、それをテキストエディタが読み込んだ際に、例えば8文字間隔であるとか4文字間隔であるとかの場所までカーソルを移動して次の文字の表示に入るわけです。よって、位置を揃えて下さいよ、という意味を示すものであり、そこに実際にスペース文字が挿入されるといったものでもなく、根本的にスペースとは色合いの違う物です。
よって、テキストベースで表などを作る際に項目位置を合わせるのにはタブを使用し、普通に文字の間を空ける際はやはりスペースを使う、というのが元来の目的に合った使い分けだといえるでしょう。ただし表示するエディタによってタブを何文字間隔に表示するかは違っていたりもするので、他の環境でも自分の意図した位置に正確に表示するようにするならばタブを使わずに全てスペースを使うのが良いかと思われます。
余談ですが、表形式のデータを保持するファイル形式にカンマ(,)で区切られたCSV(comma-separated values)ファイルというものがありますが、これと同様の目的でタブで区切られたTSV(tab-separated values)ファイルというものも使われます。中にはタブ文字で区切られて表の項目が羅列されて入っています。
こんな感じでいかがでしょうか?
No.6
- 回答日時:
あ、そっか
http://oshiete.goo.ne.jp/qa/6317976.html
これの「続き」か。
質問に「空白」とあったので、#1さんは半角スペースのことだと思って sedでの方法を答えた。
ここで「だめでした」とあったので、#3が半角スペース以外の可能性を考え、Perlで「全角スペースまで含めた空白」を削除するものにした。
sed等のコマンドでは、タブとスペースは明確に区別するのが普通ですが、オプションによっては違いを無視できます。
> 8行の連続する空白(タブ?)
8桁の連続する空白は、単に「8桁の連続する空白」です。
8桁分の連続する空白部分があって、それが1文字のタブ文字で構成されているときが「タブ」です。
No.5
- 回答日時:
スペースはASCIコード32(0x20)の文字で、通常キーボードのスペースキーで入力できます。
スペース1つで1文字分の空白を表示するのが普通です。
また、漢字一文字相当の空白を表示する「全角スペース」と呼ばれる文字もあります。それに対応して、上のスペースを「半角スペース」と呼ぶこともあります。
(全角/半角という呼び方は、文字の大きさから来ているので、文字毎に大きさを既定してないものにはそぐわない、という考えもあります)
タブ文字は、水平タブとも呼ばれるASCIIコード9の文字で、通常キーボードのTABキーで入力できます。
タブ一つで、タブストップと呼ばれる、決められた位置までが空白で表示されます。そのため、タブで項目の表示位置を縦に並べたりできます。
タブストップは通常、4文字毎、あるいは8文字毎ですが、環境によっては自由に決められます。
空白は、文脈によっていろんな意味があります。
・スペースと同じ
・「空白」を表示するスペースとタブを合せた呼び方
・上に加えて、改行文字など、通常は「文字」としての形が表示されない文字の呼び方
以上が文字としての説明ですが、他にも、本来の意味として使われるこもあります。
(行間:ラインスペース等)
使いわけもケースによるので一概には言えません。
例えば、Excelで読み書きできるテキスト形式に「タブ区切り」があります。これは、項目を区切るタブを、項目に含まれるスペースとで明確に使い分けられています。
C言語などのフリーフォーマットなものだと、改行まで含めた「空白」はすべて同じ扱いになりますが、全角スペースは通常の文字として扱われます。
テキストエディタによくある「空白文字表示」は、全角スペースも含めて「空白」の対象になります。
No.3
- 回答日時:
>どう使い分けるべきなのか、扱い方はどう異なるのか
No1の方の回答が、そのもので、それ以上でも、それ以下でもない。たぶん質問者は、プログラミング的にどう違うのかわかっていて(初めて分かった)、その感激を他人に伝えたかったのでしょう。
その気持ちは、良く分かります。だれかに言いたくなりますよね。世の中の摂理がわかると。
日本語のツリー構造は、
空白がTOPで、その下に、タブとスペースがある。空白とは、何も無い空間を意味します。なので、タブでスペースでも、どちらで埋めても、「空白」と表現します。
しかし、これが画像データーなどでは話が違ってきてしまう。ただし、こと文字列操作での空白とは、スペース(半角 or 全角の1文字にすぎない)を意味して、文字コードとしては、スペースもタブも違う文字コードです。なので、文字列として扱うと=で結ぶことはできません。
タブとは成型のためのスペースである事が、機能面から言える
(この用に説明すると、スペース=タブと勘違いする人がいる。きっと質問者もそのたぐいだったのでしょう)。
用は、この程度にしか意味ありません。これをあえて、質問にするということは、どう言うことか。分かった瞬間、他人に言いたくなることは、よくわかりますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#のシリアル通信プログラムで...
-
ソースコードの改行文字は何に...
-
ASP.NET TextBox 入力制限
-
ローマ数字などの文字化け対策...
-
Excel VBA 見本通りに...
-
知っていたようで知らないことです
-
なぜtabによるインデントはいけ...
-
stray '\\240' in programのエ...
-
ASCII文字列以外を検出する正規...
-
AfterEffectsでイージーイーズ...
-
XMLを作成してもタグしか表示さ...
-
H1タグに改行の<br>を使う
-
改行できる・できない入力ボッ...
-
GoogleChromeでレイアウトが左...
-
\\n \\r \\t について
-
掲示板からIPアドレスってど...
-
デメタグとは?
-
aviutlで最後まで動画が読み込...
-
VBE でスペースと改行を見える...
-
eclipseでソースを保存すると、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 見本通りに...
-
ASP.NET TextBox 入力制限
-
C#のシリアル通信プログラムで...
-
ソースコードの改行文字は何に...
-
JavascriptでIMEのON,OFF制御
-
ASCII文字列以外を検出する正規...
-
Pythonの勉強を始めました。バ...
-
ローマ数字などの文字化け対策...
-
知っていたようで知らないことです
-
半角スペースを含む文字列を変...
-
JSONパース時に改行があるとエ...
-
php でtabを空白に変換して表示...
-
ソースコードのインデントについて
-
ホームページ制作でコピーライ...
-
なぜtabによるインデントはいけ...
-
『文字化けしてた』
-
stray '\\240' in programのエ...
-
php正規表現 数字又は空欄 始...
-
Unicode規定の Zs (space separ...
-
指定した文字を始点にスペース...
おすすめ情報