TextFile ライブラリ

- 目次 -

- 使用解説ページ -

- 使用サンプルコード -

  • -


概要 - Abstract

このライブラリ file.TextFile は、汎用的なテキストファイル入出力の機能を提供します。
特に、CSV形式やTSV形式のファイル入出力をサポートします。

そもそもVCSSLでは、最初期のバージョンから、CSV形式やTSV形式を含む、基礎的なテキストファイル入出力機能が標準でサポートされています。
しかし、初期のVCSSLが専ら数値計算を目的とした言語であった事から、これらの機能も数値データファイルの入出力を前提とした仕様となっており、汎用的な用途においては不便な点もあります。
例えば、VCSSLの標準機能である System.open(string filePath, string mode) 関数でCSV形式やTSV形式のファイルを開く事ができますが、これは数値データファイルの操作を想定して設計された機能であるため、非常に単純な動作を行います。特別な記号のエスケープや、値を必要に応じてダブルクォーテーションで囲むなどの処理は行われません。
( その代わり、数値データファイルの入出力では高速に動作します。 )

そこで、このモジュールでは、数値データファイルのみならず、より汎用的なテキストファイル入出力機能を提供する事を目的としています。
例えば書き込みにおいては、値がカンマ(CSV時)やタブ(TSV時)などの区切り文字を含む場合、値全体がダブルクォーテーションで囲まれます。値が改行を含む場合も同様です。
読み込み時においても、ダブルクォーテーションで囲まれた部分は、まとめて一つの値として読み込まれ、その中に区切り文字や改行を含んでいても問題ありません。

また、書き込む値がダブルクォーテーションを含む場合は、連続したダブルクォーテーションにエスケープされます。
読み込み時においても、連続したダブルクォーテーションはエスケープされているものとして扱われます。

なお、このモジュールでは、一般的なCSV形式やTSV形式だけでなく、区切り文字(デリミタ)や引用符(エンクロージャ)の記号を明示的に指定する事も可能です。


目次 - Index

struct TextFile
テキストファイル構造体です。ファイルIDなどのシステムリソースや、区切り文字情報などを保持します。
const string READ
汎用テキストファイルの「読み込み」モードです。区切り文字(デリミタ)及び引用符記号(エンクロージャ)は設定されません。引用符の挙動は ENCLOSED_NONE が適用されます。
const string WRITE
汎用テキストファイルの「書き込み」モードです。区切り文字(デリミタ)及び引用符記号(エンクロージャ)は設定されません。引用符の挙動は ENCLOSED_NONE が適用されます。
const string APPEND
汎用テキストファイルの「追記」モードです。区切り文字(デリミタ)及び引用符記号(エンクロージャ)は設定されません。引用符の挙動は ENCLOSED_NONE が適用されます。
const string READ_TSV
TSV形式ファイルの「読み込み」モードです。区切り文字(デリミタ)はタブ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
const string WRITE_TSV
TSV形式ファイルの「書き込み」モードです。区切り文字(デリミタ)はタブ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
const string APPEND_TSV
TSV形式ファイルの「追記」モードです。区切り文字(デリミタ)はタブ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
const string READ_CSV
CSV形式ファイルの「読み込み」モードです。区切り文字(デリミタ)はカンマ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
const string WRITE_CSV
CSV形式ファイルの「書き込み」モードです。区切り文字(デリミタ)はカンマ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
const string APPEND_CSV
CSV形式ファイルの「追記」モードです。区切り文字(デリミタ)はカンマ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
const int ENCLOSED_ALL
全ての値を引用符記号(エンクロージャ)で囲むオプションです。
const int ENCLOSED_IF_NECESSARY
必要な値のみ引用符記号(エンクロージャ)で囲むオプションです。CSV/TSV形式ファイルのデフォルト設定値です。
const int ENCLOSED_NONE
どの値も引用符記号(エンクロージャ)で囲まないオプションです。汎用テキストファイルのデフォルト設定値です。
TextFile openTextFile(string filePath, string mode)
ファイル名とモードを指定して、テキストファイルを開きます。モードは下記の定数から選択します。 WRITE : 特に何も設定されていない、汎用テキストファイル用の書き込みモードです。設定を独自に行う事もできます。 , APPEND : 特に何も設定されていない、汎用テキストファイル用の追記モードです。設定を独自に行う事もできます。 , READ : 特に何も設定されていない、汎用テキストファイル用の読み込みモードです。設定を独自に行う事もできます。 , WRITE_CSV : CSV(カンマ区切り)ファイル用に設定された書き込みモードです。 , APPEND_CSV : CSV(カンマ区切り)ファイル用に設定された追記モードです。 , READ_CSV : CSV(カンマ区切り)ファイル用に設定された読み込みモードです。 , WRITE_TSV : TSV(タブ区切り)ファイル用に設定された書き込みモードです。 , APPEND_TSV : TSV(タブ区切り)ファイル用に設定された追記モードです。 , READ_TSV : TSV(タブ区切り)ファイル用に設定された読み込みモードです。 ,
TextFile openTextFile(string filePath, string mode, string textEncoding)
ファイル名、モード、文字コードを指定して、テキストファイルを開きます。モードは下記の定数から選択します。 WRITE : 特に何も設定されていない、汎用テキストファイル用の書き込みモードです。設定を独自に行う事もできます。 , APPEND : 特に何も設定されていない、汎用テキストファイル用の追記モードです。設定を独自に行う事もできます。 , READ : 特に何も設定されていない、汎用テキストファイル用の読み込みモードです。設定を独自に行う事もできます。 , WRITE_CSV : CSV(カンマ区切り)ファイル用に設定された書き込みモードです。 , APPEND_CSV : CSV(カンマ区切り)ファイル用に設定された追記モードです。 , READ_CSV : CSV(カンマ区切り)ファイル用に設定された読み込みモードです。 , WRITE_TSV : TSV(タブ区切り)ファイル用に設定された書き込みモードです。 , APPEND_TSV : TSV(タブ区切り)ファイル用に設定された追記モードです。 , READ_TSV : TSV(タブ区切り)ファイル用に設定された読み込みモードです。 , また、文字コードは下記の文字列リテラルから選択ます。 "Shift_JIS" : Shift_JIS です。ハイフン( - )では無くアンダーバー( _ )である事に注意して下さい。 , "UTF-8" : UTF-8 です。アンダーバー( _ )では無くハイフン( - )である事に注意して下さい。 , "EUC-JP" : EUC-JP です。アンダーバー( _ )では無くハイフン( - )である事に注意して下さい。 ,
void close(TextFile &textFile)
テキストファイルへのアクセスを閉じます。特に書き込みアクセス後には、バッファされている内容を最後まで書き込み切るためにも、必ず呼び出す必要があります。
string getEndOfLineCode(TextFile &textFile)
ファイル入出力に使用する改行コードを取得します。読み込みモードでは、ファイルに使用されている改行コードを解析し、CR+LF, CR, LF の3つから適切と思われるものを返します。複数の改行コードが混在している場合は、優先度の高いほうから CR+LF, CR, LF の順番で判定します。それらのどれにも該当しない場合は NULL を返します。なお、setEndOfLineCode 関数で改行コードを明示指定した後は、その指定値が返されます。
void setEndOfLineCode(TextFile &textFile, string endOfLineCode)
ファイル入出力に使用する改行コードを指定します。改行コードの指定には、System ライブラリに定義されている、以下の定数を使用する事が推奨されます。 LF : 文字コードで 0x0A, 一般的なエスケープシーケンスで \n に対応する改行コードです。 , CR : 文字コードで 0x0D, 一般的なエスケープシーケンスで \r に対応する改行コードです。 , CR+LF : 文字コードで 0x0D 0x0A, 一般的なエスケープシーケンスで \r\n に対応する改行コードです。(これは1つの定数では無く、CRとLFを加算した式です。) , EOL : 実行環境におけるデフォルトの文字コードを表します。通常は CR, LF, CR+LF のいずれかが使用されます。 ,
void setCommentLineCode(TextFile &textFile, string commentLineCode)
コメント行を表す行頭文字列を指定します。ここで指定した文字列で始まる行は、読み込み時に無視されます。また、commentln 関数でコメント行を出力する際に、ここで指定した文字列が使用されます。なお、読み込みモードの場合、この関数をコールした時点で、どこまでファイルを読み込んだかの情報は初期化されます。この項目は、デフォルトでは何も設定されていないため、コメント行を考慮する際は必ず設定する必要があります。一般的によく用いられる行頭文字列は、以下のようなものがあります。 "#" (ナンバー記号) : CSV/TSVファイルや、スクリプトなどによく用いられます。 , ":" (コロン) : 一部の設定ファイルやスクリプトなどで用いられます。 , ";" (セミコロン) : 一部の設定ファイルやスクリプトなどで用いられます。 , "//" (ダブルスラッシュ) : 一部のプログラミング言語で用いられます。 ,
string getCommentLineCode(TextFile &textFile)
コメント行を表す行頭文字列を返します。
bool isReadable(TextFile &textFile)
ファイルが読み込み可能な状態であるか確認します。
bool isWritable(TextFile &textFile)
ファイルが読み込み可能な状態であるか確認します。
void setDelimiter(TextFile &textFile, string delimiter)
値の区切り文字(デリミタ)を設定します。区切り文字を設定すると、 read 関数やreadln 関数が、値を区切って配列として返すようになります。一般的によく用いられる区切り文字は、以下のようなものがあります。また、write 関数やwritelnが、書き込み時に値を区切り文字で区切るようになります。 "," (カンマ記号) : CSVファイルに用いられます。 , " " (タブ記号) : TSVファイルに用いられます。 , " " (半角スペース記号) : SSVファイルに用いられます。 , ";" (セミコロン記号) : 一部の設定ファイルに用いられます。 , なお、読み込みモードの場合、この関数をコールした時点で、どこまでファイルを読み込んだかの情報は初期化されます。
void setEnclosure(TextFile &textFile, string enclosure, string enclosureEscapeCharacter, int enclosingOption)
値を囲む引用符記号(エンクロージャ)を設定します。引用符記号を設定すると、write 関数やwritelnが、書き込み時に値を引用符記号で囲むようになります。また、read 関数やreadln 関数が、読み込み時に引用符記号を解釈するようになります。引用符記号は、enclosure に指定します。引数一般によく用いられる引用符記号は、以下のようなものがあります。 "\"" (ダブルクォーテーション) : 「 " 」記号です。CSV/TSV形式ファイルでよく用いられます。 VCSSLでは、ダブルクォーテーションは特別な意味を持つため、 このように "\"" というようなリテラルで指定します。 , "'" (シングルクォーテーション) : 一部のファイルで使用されます。 , なお、値が必ず引用符記号で囲まれるべきか、必要な場合のみ囲まれるべきかは、引数のオプション enclosingOption で指定します。このオプションの指定値は以下の定数から選択します。 ENCLOSED_ALL : 値が必ず引用符で囲まれる形式です。 , ENCLOSED_IF_NECESSARY : 必要な場合のみ、値が引用符記号で囲まれる形式です。必要な場合とは、書き込み/読み込み内容が、 「 区切り文字(デリミタ)、引用符記号、コメント行頭記号、改行 」のいずれかを含む場合です。 , ENCLOSED_NONE : いかなる場合においても、値が引用符で囲まれない形式です。 , もしも、引用符記号で囲む値が、さらに引用符記号を含んでいる場合、それは別の記号でエスケープされる必要があります。これは引数 enclosureEscapeCharacter で指定します。一般的によく用いられるエスケープ記号は、以下のようなものがあります。 "\"" (ダブルクォーテーション) : 「 " 」記号です。CSV/TSV形式ファイルで、 引用符記号がダブルクォーテーションの場合、よく用いられます。 エスケープ結果は連続したダブルクォーテーションとなります。 VCSSLでは、ダブルクォーテーションは特別な意味を持つため、 このように "\"" というようなリテラルで指定します。 , "\\" (バックスラッシュ) : 「 \ 」記号です。プログラミング言語などでよく使用されます。 VCSSLでは、バックスラッシュは特別な意味を持つため、 このように "\\" というようなリテラルで指定します。 , なお、読み込みモードの場合、この関数をコールした時点で、どこまでファイルを読み込んだかの情報は初期化されます。
void write(TextFile &textFile, ... string value[ ])
テキストファイルに文字列を書き込みます。複数の内容を指定した場合、区切り文字(デリミタ)が設定されていれば、間に区切り文字を挟んで書き出します。また、必要に応じて値を引用符で囲んで書き出します。引用符でどのように囲むかの設定は、setEnclosure で行います。なお、最後の書き込み内容の末尾に、区切り文字は付加されません。従って、連続的に呼び出して書き込みを行う場合、必要に応じてdelimit 関数で区切り文字を挟む必要があります。
void writeln(TextFile &textFile, ... string value[ ])
テキストファイルに文字列を書き込み、改行します。複数の内容を指定した場合、区切り文字が設定されていれば、間に区切り文字を挟んで書き出します。また、必要に応じて値を引用符で囲んで書き出します。引用符でどのように囲むかの設定は、setEnclosure で行います。
void delimit(TextFile &textFile)
テキストファイルに区切り文字を書き込みます。
void commentln(TextFile &textFile, string comment)
テキストファイルにコメント行を書き込みます。この関数をコールするよりも前に、setCommentLineCode 関数で、コメント行の行頭文字列を設定する必要があります。
string[ ] readln(TextFile &textFile)
テキストファイルから、一行分の内容を読み込みます。区切り文字(デリミタ)が設定されている場合、内容を区切り文字で区切り、配列として返します。ただし引用符(エンクロージャ)が設定されている場合、引用符で囲まれた内部にある区切り文字や改行は、値に含まれると解釈されます(ENCLOSED_NONEオプション時は除く)。引用符をどのように解釈するかの設定は、setEnclosure で行います。
string[ ] read(TextFile &textFile)
テキストファイルから、全ての内容を読み込みます。区切り文字(デリミタ)が設定されている場合、内容を区切り文字または改行で区切り、配列として返します。ただし引用符(エンクロージャ)が設定されている場合、引用符で囲まれた内部にある区切り文字や改行は、値に含まれると解釈されます(ENCLOSED_NONEオプション時は除く)。引用符をどのように解釈するかの設定は、setEnclosure で行います。
string loadln(TextFile &textFile)
ファイルから一行を読み込み、そのまま返します。ただし、引用符記号が設定されていて、引用符記号で囲まれた内部に改行がある場合、それは行末とは見なされません。ファイル内に複数の改行コードが混在している場合は、getEndOfLineCode 関数が返すものと同じ改行コードに統一されます。また、コメント行の行頭文字が設定されている場合、コメント行は読み飛ばされます。
string load(TextFile &textFile)
ファイルから全行を読み込み、そのまま返します。ただし、コメント行の行頭文字が設定されている場合、コメント行は読み飛ばされます。なお、ファイル内に複数の改行コードが混在している場合は統一されます。ファイル内に複数の改行コードが混在している場合は、getEndOfLineCode 関数が返すものと同じ改行コードに統一されます。
int countln(TextFile &textFile)
テキストファイルの有効行数をカウントします。引用符記号が設定されていない場合、有効行数はファイルの行数に一致します。引用符記号が設定されている場合は、引用符記号で囲まれた内部にある改行はカウントされません。つまり、CSV/TSV形式ファイルにおいては、値に含まれる改行はカウントされません。readln関数でCSV/TSV形式ファイルを読み込む場合、まずこの関数で有効行数を取得して下さい。この関数が返す有効行数を超えてreadln関数をコールする事はできません。

構造体 - Structs

定義
- Signature
struct TextFile
詳細
- Details
テキストファイル構造体です。ファイルIDなどのシステムリソースや、区切り文字情報などを保持します。

変数 - Variables

定義
- Signature
const string READ
詳細
- Details
汎用テキストファイルの「読み込み」モードです。区切り文字(デリミタ)及び引用符記号(エンクロージャ)は設定されません。引用符の挙動は ENCLOSED_NONE が適用されます。
定義
- Signature
const string WRITE
詳細
- Details
汎用テキストファイルの「書き込み」モードです。区切り文字(デリミタ)及び引用符記号(エンクロージャ)は設定されません。引用符の挙動は ENCLOSED_NONE が適用されます。
定義
- Signature
const string APPEND
詳細
- Details
汎用テキストファイルの「追記」モードです。区切り文字(デリミタ)及び引用符記号(エンクロージャ)は設定されません。引用符の挙動は ENCLOSED_NONE が適用されます。
定義
- Signature
const string READ_TSV
詳細
- Details
TSV形式ファイルの「読み込み」モードです。区切り文字(デリミタ)はタブ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
定義
- Signature
const string WRITE_TSV
詳細
- Details
TSV形式ファイルの「書き込み」モードです。区切り文字(デリミタ)はタブ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
定義
- Signature
const string APPEND_TSV
詳細
- Details
TSV形式ファイルの「追記」モードです。区切り文字(デリミタ)はタブ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
定義
- Signature
const string READ_CSV
詳細
- Details
CSV形式ファイルの「読み込み」モードです。区切り文字(デリミタ)はカンマ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
定義
- Signature
const string WRITE_CSV
詳細
- Details
CSV形式ファイルの「書き込み」モードです。区切り文字(デリミタ)はカンマ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
定義
- Signature
const string APPEND_CSV
詳細
- Details
CSV形式ファイルの「追記」モードです。区切り文字(デリミタ)はカンマ記号、引用符記号(エンクロージャ)はダブルクォーテーションに設定されます。引用符の挙動は ENCLOSED_IF_NECESSARY が適用されます。
定義
- Signature
const int ENCLOSED_ALL
詳細
- Details
全ての値を引用符記号(エンクロージャ)で囲むオプションです。
定義
- Signature
const int ENCLOSED_IF_NECESSARY
詳細
- Details
必要な値のみ引用符記号(エンクロージャ)で囲むオプションです。CSV/TSV形式ファイルのデフォルト設定値です。
定義
- Signature
const int ENCLOSED_NONE
詳細
- Details
どの値も引用符記号(エンクロージャ)で囲まないオプションです。汎用テキストファイルのデフォルト設定値です。

関数 - Functions

定義
- Signature
TextFile openTextFile(string filePath, string mode)
詳細
- Details
ファイル名とモードを指定して、テキストファイルを開きます。モードは下記の定数から選択します。
WRITE
特に何も設定されていない、汎用テキストファイル用の書き込みモードです。設定を独自に行う事もできます。
APPEND
特に何も設定されていない、汎用テキストファイル用の追記モードです。設定を独自に行う事もできます。
READ
特に何も設定されていない、汎用テキストファイル用の読み込みモードです。設定を独自に行う事もできます。
WRITE_CSV
CSV(カンマ区切り)ファイル用に設定された書き込みモードです。
APPEND_CSV
CSV(カンマ区切り)ファイル用に設定された追記モードです。
READ_CSV
CSV(カンマ区切り)ファイル用に設定された読み込みモードです。
WRITE_TSV
TSV(タブ区切り)ファイル用に設定された書き込みモードです。
APPEND_TSV
TSV(タブ区切り)ファイル用に設定された追記モードです。
READ_TSV
TSV(タブ区切り)ファイル用に設定された読み込みモードです。
引数
- Arguments
filePath : ファイル名
mode : モード
戻り値
- Return
開いたファイルのテキストファイル構造体
定義
- Signature
TextFile openTextFile(string filePath, string mode, string textEncoding)
詳細
- Details
ファイル名、モード、文字コードを指定して、テキストファイルを開きます。モードは下記の定数から選択します。
WRITE
特に何も設定されていない、汎用テキストファイル用の書き込みモードです。設定を独自に行う事もできます。
APPEND
特に何も設定されていない、汎用テキストファイル用の追記モードです。設定を独自に行う事もできます。
READ
特に何も設定されていない、汎用テキストファイル用の読み込みモードです。設定を独自に行う事もできます。
WRITE_CSV
CSV(カンマ区切り)ファイル用に設定された書き込みモードです。
APPEND_CSV
CSV(カンマ区切り)ファイル用に設定された追記モードです。
READ_CSV
CSV(カンマ区切り)ファイル用に設定された読み込みモードです。
WRITE_TSV
TSV(タブ区切り)ファイル用に設定された書き込みモードです。
APPEND_TSV
TSV(タブ区切り)ファイル用に設定された追記モードです。
READ_TSV
TSV(タブ区切り)ファイル用に設定された読み込みモードです。
また、文字コードは下記の文字列リテラルから選択ます。
"Shift_JIS"
Shift_JIS です。ハイフン( - )では無くアンダーバー( _ )である事に注意して下さい。
"UTF-8"
UTF-8 です。アンダーバー( _ )では無くハイフン( - )である事に注意して下さい。
"EUC-JP"
EUC-JP です。アンダーバー( _ )では無くハイフン( - )である事に注意して下さい。
引数
- Arguments
filePath : ファイル名
mode : モード
encoding : 文字コード
戻り値
- Return
開いたファイルのテキストファイル構造体
定義
- Signature
void close(TextFile &textFile)
詳細
- Details
テキストファイルへのアクセスを閉じます。特に書き込みアクセス後には、バッファされている内容を最後まで書き込み切るためにも、必ず呼び出す必要があります。
引数
- Arguments
textFile : 対象のテキストファイル構造体
定義
- Signature
string getEndOfLineCode(TextFile &textFile)
詳細
- Details
ファイル入出力に使用する改行コードを取得します。読み込みモードでは、ファイルに使用されている改行コードを解析し、CR+LF, CR, LF の3つから適切と思われるものを返します。複数の改行コードが混在している場合は、優先度の高いほうから CR+LF, CR, LF の順番で判定します。それらのどれにも該当しない場合は NULL を返します。なお、setEndOfLineCode 関数で改行コードを明示指定した後は、その指定値が返されます。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
改行コード
定義
- Signature
void setEndOfLineCode(TextFile &textFile, string endOfLineCode)
詳細
- Details
ファイル入出力に使用する改行コードを指定します。改行コードの指定には、System ライブラリに定義されている、以下の定数を使用する事が推奨されます。
LF
文字コードで 0x0A, 一般的なエスケープシーケンスで \n に対応する改行コードです。
CR
文字コードで 0x0D, 一般的なエスケープシーケンスで \r に対応する改行コードです。
CR+LF
文字コードで 0x0D 0x0A, 一般的なエスケープシーケンスで \r\n に対応する改行コードです。(これは1つの定数では無く、CRとLFを加算した式です。)
EOL
実行環境におけるデフォルトの文字コードを表します。通常は CR, LF, CR+LF のいずれかが使用されます。
引数
- Arguments
textFile : 対象のテキストファイル構造体
endOfLineCode : 改行コード
定義
- Signature
void setCommentLineCode(TextFile &textFile, string commentLineCode)
詳細
- Details
コメント行を表す行頭文字列を指定します。ここで指定した文字列で始まる行は、読み込み時に無視されます。また、commentln 関数でコメント行を出力する際に、ここで指定した文字列が使用されます。なお、読み込みモードの場合、この関数をコールした時点で、どこまでファイルを読み込んだかの情報は初期化されます。
この項目は、デフォルトでは何も設定されていないため、コメント行を考慮する際は必ず設定する必要があります。一般的によく用いられる行頭文字列は、以下のようなものがあります。
"#" (ナンバー記号)
CSV/TSVファイルや、スクリプトなどによく用いられます。
":" (コロン)
一部の設定ファイルやスクリプトなどで用いられます。
";" (セミコロン)
一部の設定ファイルやスクリプトなどで用いられます。
"//" (ダブルスラッシュ)
一部のプログラミング言語で用いられます。
引数
- Arguments
textFile : 対象のテキストファイル構造体
endOfLineCode : コメント行を表す行頭文字列
定義
- Signature
string getCommentLineCode(TextFile &textFile)
詳細
- Details
コメント行を表す行頭文字列を返します。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
コメント行を表す行頭文字列
定義
- Signature
bool isReadable(TextFile &textFile)
詳細
- Details
ファイルが読み込み可能な状態であるか確認します。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
読み込み可能なモードであればtrue
定義
- Signature
bool isWritable(TextFile &textFile)
詳細
- Details
ファイルが読み込み可能な状態であるか確認します。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
読み込み可能なモードであればtrue
定義
- Signature
void setDelimiter(TextFile &textFile, string delimiter)
詳細
- Details
値の区切り文字(デリミタ)を設定します。区切り文字を設定すると、 read 関数やreadln 関数が、値を区切って配列として返すようになります。一般的によく用いられる区切り文字は、以下のようなものがあります。また、write 関数やwritelnが、書き込み時に値を区切り文字で区切るようになります。
"," (カンマ記号)
CSVファイルに用いられます。
" " (タブ記号)
TSVファイルに用いられます。
" " (半角スペース記号)
SSVファイルに用いられます。
";" (セミコロン記号)
一部の設定ファイルに用いられます。
なお、読み込みモードの場合、この関数をコールした時点で、どこまでファイルを読み込んだかの情報は初期化されます。
引数
- Arguments
textFile : 対象のテキストファイル構造体
delimiter : 値の区切り文字(デリミタ)
定義
- Signature
void setEnclosure(TextFile &textFile, string enclosure, string enclosureEscapeCharacter, int enclosingOption)
詳細
- Details
値を囲む引用符記号(エンクロージャ)を設定します。引用符記号を設定すると、write 関数やwritelnが、書き込み時に値を引用符記号で囲むようになります。また、read 関数やreadln 関数が、読み込み時に引用符記号を解釈するようになります。
引用符記号は、enclosure に指定します。引数一般によく用いられる引用符記号は、以下のようなものがあります。
"\"" (ダブルクォーテーション)
「 " 」記号です。CSV/TSV形式ファイルでよく用いられます。 VCSSLでは、ダブルクォーテーションは特別な意味を持つため、 このように "\"" というようなリテラルで指定します。
"'" (シングルクォーテーション)
一部のファイルで使用されます。
なお、値が必ず引用符記号で囲まれるべきか、必要な場合のみ囲まれるべきかは、引数のオプション enclosingOption で指定します。このオプションの指定値は以下の定数から選択します。
ENCLOSED_ALL
値が必ず引用符で囲まれる形式です。
ENCLOSED_IF_NECESSARY
必要な場合のみ、値が引用符記号で囲まれる形式です。必要な場合とは、書き込み/読み込み内容が、 「 区切り文字(デリミタ)、引用符記号、コメント行頭記号、改行 」のいずれかを含む場合です。
ENCLOSED_NONE
いかなる場合においても、値が引用符で囲まれない形式です。
もしも、引用符記号で囲む値が、さらに引用符記号を含んでいる場合、それは別の記号でエスケープされる必要があります。これは引数 enclosureEscapeCharacter で指定します。一般的によく用いられるエスケープ記号は、以下のようなものがあります。
"\"" (ダブルクォーテーション)
「 " 」記号です。CSV/TSV形式ファイルで、 引用符記号がダブルクォーテーションの場合、よく用いられます。 エスケープ結果は連続したダブルクォーテーションとなります。 VCSSLでは、ダブルクォーテーションは特別な意味を持つため、 このように "\"" というようなリテラルで指定します。
"\\" (バックスラッシュ)
「 \ 」記号です。プログラミング言語などでよく使用されます。 VCSSLでは、バックスラッシュは特別な意味を持つため、 このように "\\" というようなリテラルで指定します。
なお、読み込みモードの場合、この関数をコールした時点で、どこまでファイルを読み込んだかの情報は初期化されます。
引数
- Arguments
enclosure : 値を囲む引用符文字(エンクロージャ)
enclosureEscapeCharacter : 値に引用符文字(エンクロージャ)が含まれる場合にエスケープする文字
enclosingOption : 囲み方のオプション
定義
- Signature
void write(TextFile &textFile, ... string value[ ])
詳細
- Details
テキストファイルに文字列を書き込みます。複数の内容を指定した場合、区切り文字(デリミタ)が設定されていれば、間に区切り文字を挟んで書き出します。また、必要に応じて値を引用符で囲んで書き出します。引用符でどのように囲むかの設定は、setEnclosure で行います。
なお、最後の書き込み内容の末尾に、区切り文字は付加されません。従って、連続的に呼び出して書き込みを行う場合、必要に応じてdelimit 関数で区切り文字を挟む必要があります。
引数
- Arguments
textFile : 対象のテキストファイル構造体
value : 書き込む文字列(可変長引数のため複数指定可能)
定義
- Signature
void writeln(TextFile &textFile, ... string value[ ])
詳細
- Details
テキストファイルに文字列を書き込み、改行します。複数の内容を指定した場合、区切り文字が設定されていれば、間に区切り文字を挟んで書き出します。また、必要に応じて値を引用符で囲んで書き出します。引用符でどのように囲むかの設定は、setEnclosure で行います。
引数
- Arguments
textFile : 対象のテキストファイル構造体
value : 書き込む文字列(可変長引数のため複数指定可能)
定義
- Signature
void delimit(TextFile &textFile)
詳細
- Details
テキストファイルに区切り文字を書き込みます。
引数
- Arguments
textFile : 対象のテキストファイル構造体
定義
- Signature
void commentln(TextFile &textFile, string comment)
詳細
- Details
テキストファイルにコメント行を書き込みます。この関数をコールするよりも前に、setCommentLineCode 関数で、コメント行の行頭文字列を設定する必要があります。
引数
- Arguments
textFile : 対象のテキストファイル構造体
comment : コメント
定義
- Signature
string[ ] readln(TextFile &textFile)
詳細
- Details
テキストファイルから、一行分の内容を読み込みます。区切り文字(デリミタ)が設定されている場合、内容を区切り文字で区切り、配列として返します。ただし引用符(エンクロージャ)が設定されている場合、引用符で囲まれた内部にある区切り文字や改行は、値に含まれると解釈されます(ENCLOSED_NONEオプション時は除く)。引用符をどのように解釈するかの設定は、setEnclosure で行います。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
読み込んだ内容
定義
- Signature
string[ ] read(TextFile &textFile)
詳細
- Details
テキストファイルから、全ての内容を読み込みます。区切り文字(デリミタ)が設定されている場合、内容を区切り文字または改行で区切り、配列として返します。ただし引用符(エンクロージャ)が設定されている場合、引用符で囲まれた内部にある区切り文字や改行は、値に含まれると解釈されます(ENCLOSED_NONEオプション時は除く)。引用符をどのように解釈するかの設定は、setEnclosure で行います。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
読み込んだ内容
定義
- Signature
string loadln(TextFile &textFile)
詳細
- Details
ファイルから一行を読み込み、そのまま返します。ただし、引用符記号が設定されていて、引用符記号で囲まれた内部に改行がある場合、それは行末とは見なされません。ファイル内に複数の改行コードが混在している場合は、getEndOfLineCode 関数が返すものと同じ改行コードに統一されます。また、コメント行の行頭文字が設定されている場合、コメント行は読み飛ばされます。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
読み込んだ行の内容
定義
- Signature
string load(TextFile &textFile)
詳細
- Details
ファイルから全行を読み込み、そのまま返します。ただし、コメント行の行頭文字が設定されている場合、コメント行は読み飛ばされます。なお、ファイル内に複数の改行コードが混在している場合は統一されます。ファイル内に複数の改行コードが混在している場合は、getEndOfLineCode 関数が返すものと同じ改行コードに統一されます。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
読み込んだ行の内容
定義
- Signature
int countln(TextFile &textFile)
詳細
- Details
テキストファイルの有効行数をカウントします。引用符記号が設定されていない場合、有効行数はファイルの行数に一致します。引用符記号が設定されている場合は、引用符記号で囲まれた内部にある改行はカウントされません。つまり、CSV/TSV形式ファイルにおいては、値に含まれる改行はカウントされません。readln関数でCSV/TSV形式ファイルを読み込む場合、まずこの関数で有効行数を取得して下さい。この関数が返す有効行数を超えてreadln関数をコールする事はできません。
引数
- Arguments
textFile : 対象のテキストファイル構造体
戻り値
- Return
テキストファイルの有効行数

この階層の目次
お知らせ

Vnanoの公式サイトがオープン、チュートリアルやAPI仕様書等も掲載
2019年08月07日 - オープンソースのアプリケーション組み込み用スクリプトエンジン「 Vnano 」の公式サイトを開設しました。チュートリアルや、スクリプトエンジンのAPI仕様書などが参照できます。その概要をお知らせします。

リニアングラフ3D/2Dが連番ファイルのアニメーションに標準で対応
2019年07月17日 - リニアングラフ3D/2Dでは、7月17日公開の最新版より、連番ファイルを連続的に読み込みながらアニメーション描画するプログラムを同梱し、メニューから標準で使用可能になりました。その概要をお知らせします。

Vnanoのスクリプトエンジンアーキテクチャ解説2: コンパイラ
2019年07月03日 - オープンソースで開発中のスクリプトエンジン「 Vnano 」のアーキテクチャを解説する連載の第2回です。今回は、スクリプトを中間コードへと変換する、コンパイラ部分の内部をクローズアップして解説します。

新着
[公式ガイドサンプル] ユーザーのGUI操作に対して処理を行う

「VCSSL GUI開発ガイド」内のサンプルコードです。ユーザーがGUIを操作した際に行う処理を実装します。
2019年07月28日
[公式ガイドサンプル] 各種GUIコンポーネントを画面上に配置する

「VCSSL GUI開発ガイド」内のサンプルコードです。色々な種類のGUI部品を画面上に配置します。
2019年07月28日
連番ファイルから3Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、3Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。
2019年06月03日
連番ファイルから2Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、2Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。
2019年05月24日
[公式ガイドサンプル] 立体モデルを生成して3D空間に配置する

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを生成し、3D空間に配置します。
2019年05月21日
開発元Twitterアカウント