編集この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。文字など文字コードによって表されるデータだけが含まれるファイルのことで、ファイルフォーマットの一種と見なすこともできる。互換性が高く幅広い環境でデータを利用できる利点がある一方、単純な文字だけしか扱えないという制限がある。対義語はバイナリファイル。関連項目テキストファイルの内部構造編集テキストファイルの内部構造は、ほかのファイルフォーマットに比べてきわめて単純である。テキストファイルに含まれる文字コードで表されるデータには、文字と制御文字が含まれる。制御文字によって表される改行は、テキストファイル中でデータの区切りを表す。コンピュータで処理されるすべてのデータは、内部的に数値として扱われる。文字をコンピュータで処理する場合は文字コードが使われる。現在のパソコンではほとんどの場合英数字をASCIIと呼ばれる文字コードで扱い、例えば文字Aは0x41(16進数の41。数値の前の「0x」は16進数を表す)、Bは0x42、...、になる。そのため、ASCIIの場合に「ABCD」という文字列を表すファイルを作成すると、内部的には16進数で次のように表される。モニタやプリンタなどの機器を制御するためのデータで、改行を表す改行文字やタブ(水平タブ)などが含まれる。制御文字には、文字と同じようにそれぞれ文字コードが割り当てられる。File、ファイル終端マーク)をつける場合がある。歴史的には、CP/Mオペレーティングシステムに由来する。CP/Mではファイルを、ファイルシステムの(128バイトの)ブロック単位でのみ管理し、1バイト単位のファイルサイズは管理していなかった。ファイルがバイナリ(プログラム)の場合は未使用の領域があるだけで問題ない。ある"0x1A"を終端の次の1バイトに付加しファイルの終端を識別することにしていた。MS-DOSでは、CP/Mとの互換性のためテキストファイルにEOFを付加するのが一般的であった。改行編集テキストファイルでは、人間にとってもプログラムにとっても、改行はファイルの中でのデータの区切りを表す重要な部分である。プログラム処理を考える場合、テキストファイル中の1つの行、すなわち改行で区切られた部分は、1つのレコードであると見なすこともできる。後述するように、改行の表現方法はコンピュータ環境によって異なる場合がある。テキストファイルとバイナリファイル編集テキストファイルは、バイナリファイルの対義語である。バイナリファイルは、処理の高速化やデータ圧縮、付加情報を表すデータやマルチメディアなどテキスト以外のデータを格納する、などの目的で文字コードでは表せないデータを含む。Wordで作成して通常の方法で保存したファイル、すなわちWordドキュメントファイルは、テキスト以外のさまざまなデータを含むバイナリファイルである。テキストとテキスト以外のデータが混在しているファイルは、バイナリファイルに分類される。バイナリファイルは、テキストファイルとは異なり標準化されておらず、アプリケーションソフトウェアごとにさまざまなファイルフォーマットが存在している。Formatのように、事実上の標準化が進んでいるバイナリファイルのファイルフォーマットも存在する。テキストファイルの利点編集テキストファイルには、次の利点がある。した利点は、テキストファイルの単純さから生じている部分が大きい。異なる環境間でも比較的互換性が高い。英数字をパソコンで扱う場合は、文字コードがASCIIで統一されているため、特に互換性が高い。対応するプログラムを比較的容易に作成できる。テキスト以外のデータを含むバイナリファイルよりデータのサイズを小さくし、処理を高速化できる。逆に、バイナリファイルは特定のプログラムでしか扱えないのが欠点になる。Wordドキュメントファイルは、Wordなど、このファイルフォーマットに対応したソフトウェア以外では扱えない。単純なテキストファイルでは、文字コードで表される文字以外のデータは格納できない。そのため、例えば次のようなデータを直接含むことができない。先進的なテキストファイル編集テキストファイルでありながら付加情報やマルチメディアへ対応した先進的なファイルフォーマットとして、例えばLaTeXやHTML、XMLがある。HTMLやXMLでは、付加情報を表すデータやマルチメディアデータへの参照をタグで表す。HTMLやXMLのファイルは、テキストファイルとして開くとタグも含めた文書の内容がそのまま表示され、対応するウェブブラウザなどで開くとタグの記述内容に従った文書の表示や処理の実行が行われる。テキストファイルの種類編集テキストファイルは、次の点で分類される。各行(レコード)が固定長か可変長か文字コード改行コード固定長レコードと可変長レコード編集メインフレーム/汎用機は多くの場合、固定長レコードファイルを扱うのが一般的であった。そのためメインフレーム/汎用機で使われるテキストファイルはすべての行(レコード)を同じ長さにするよう、長さが足りない場合には空白文字などで埋めるようになっている。UNIXやパソコンなどでは可変長の行(レコード)を扱うことができ、任意の位置に改行文字を挿入する。文字のうち、英数字を表す文字コードはほぼASCIIで統一されている。パソコンなどでは、テキストファイルで使われる文字コードのうち英数字を表すものは、ASCIIまたはASCII互換のものがほとんどである。そのため、英数字が文字化けする場合はほとんどない。メインフレーム/汎用機などでは文字コードとしてEBCDICが使われることが多い。英数以外の文字を表す文字コードはさまざまな種類があり、英数字の場合のように統一されていない。そのため、英数字以外の文字を含むテキストファイルは、英数字だけを含むテキストファイルに比べて互換性が低い。英数以外の言語を表す文字はさまざまな文字コードが使われているため、英語をのぞく複数の言語の文字を混在させることは難しい。アルファベットと漢字・かな、アルファベットとアラビア文字が混在した文書はそれぞれ比較的容易に作成できるが、漢字・かなとアラビア文字が混在する文書の作成は難しい。UNIXやLinuxそのため、漢字・かななどを含むテキストファイルを異なる環境で使う場合、文字化けなどの問題が発生しやすい。Linux上で作成した漢字・かなを含むテキストファイルをそのままWindows上で開くと、文字化けすることが多い。した問題を解決するには、複数の文字コードに対応するプログラムや、変換ツールが必要になる。Unicode編集Unicodeは、世界中のすべての文字を共通で扱えることを目指した、符号化文字集合の規格である。Unicodeの文字符号化方式としてUTF-8やUTF-16が利用されることが多い。Unicodeが広く普及することで、英数字以外の文字を扱うときの互換性が高まり、また多言語の文字が混在する文書が容易に作成できるようになることが期待されている。現在では、Unicodeが普及途上ということもあり、文字コードに関する混乱が増している一面もある。漢字やかなの場合、UTF-8やUTF-16など文字符号化方式の種類が増えたため、文字化けなどの問題はより難しくなっている一面もある。改行コード編集テキストファイル内で用いられる改行を表すコードは、コンピュータの種類ごとに違いがあり、互換性を下げる要因となっている。いずれの場合においても、改行は制御文字LF(0x0A)と制御文字CR(0x0D)で表される。Return)は復帰を表す。CR例えばWindows上で作成したファイルをLinux上で開いた場合、改行コードの違いが原因で、各行の末尾に異常な文字が表示されることがある。一般的なソフトウェア編集テキストファイルには数多くのソフトウェアが対応しており、例えば、Wordや一太郎、Excelなどでは、ファイル保存時にテキストファイルとして保存することを指定すれば、テキストファイルの作成・編集ツールとして使える。テキストファイル編集時にはこうしたソフトウェアの豊富な機能の多くが使えないことになる。テキスト編集のためには逆に機能が限られていることも多い。テキストエディタ編集テキストエディタはテキストファイルの作成・編集に特化したソフトであり、軽快でテキスト編集に便利な機能を備えていることが多いプログラム処理編集テキストファイルは単純なため、プログラム処理が比較的簡単である。sedやPerlなどはテキスト処理を目的とした言語であるため、比較的簡単な記述で複雑な処理ができる。3.0のもとで利用可能です。プライバシーデスクトップ。