文字列からトークン読み取り関数
- 更新日2025-07-30
- 8分で読める
オフセットで始まる入力文字列をスキャンしてトークンを検索し、各セグメントをトークン文字列として出力します。

入力/出力
空トークンを許可? (F)
—
空トークンを許可?は、トークンが複数の隣接するデリミタを検出する場合、関数がトークンを認識しているかどうかを決定します。 空トークンを許可?がFALSE (デフォルト) の場合、複数の隣接したデリミタによって入力文字列内の2つの有効な演算子を区切ることができます。空トークンを許可?がTRUEの場合は、隣接したデリミタの各ペアの間に空のトークン文字列が返されます。デフォルトはFALSEです。
入力文字列
—
入力文字列は、トークンに対してスキャンする文字列です。
オフセット
—
オフセットは、読み取りを開始する入力文字列内の開始位置です。 デフォルト値は、文字列の先頭を指定する0です。
演算子 (なし)
—
演算子は文字列の配列です。この文字列の配列は、デリミタが前後にない場合でも、入力文字列に表示されると、関数はトークンとして識別します。 入力文字列の一部分が複数の定義された演算子に一致する場合、関数は、最も長い一致をトークンとして選択します。たとえば、>、=および>=が定義された演算子である場合、入力文字列4>=0は、オフセットが1の次のトークン文字として>=を作成します。 演算子内の文字列には、すべての数を単一のトークンとしてスキャンするのに使用できる、以下の特殊な形式コードが含まれている場合があります。
メモ 演算子として文字列 + または – が定義されている場合、関数は先頭または単項式の +/- 符号を認識しません。関数は、常に、これらの記号を別々のトークンとして返します。これは、「最長一致」規則の例外です。
デリミタ (\s,\t,\r,\n)
—
デリミタとは、トークン間でセパレータとして動作する文字列の配列です。 デリミタ内の文字列は、トークンとして返されるのではなく、隣接するトークンを区切るために使用されます。デフォルトデリミタは空白文字 (スペース、タブ、改行文字、復帰文字) です。
キャッシュされたデリミタと演算子を使用? (F)
—
キャッシュされたデリミタと演算子を使用?では詳細入力を指定できます。未配線の場合でも、トークン文字列は正常に動作します。 ただし、キャッシュされたデリミタと演算子を使用?を使用して、文字列解析のパフォーマンスを大幅に向上させることができます。トークン文字列を初めて実行する場合、キャッシュされたデリミタと演算子を使用?をFALSEに設定します。演算子とデリミタを変更しない限り、それ以降の実行ごとにTRUEに設定されます。ループの実行中に演算子とデリミタを変更しない場合、正常に動作されるように、シフトレジスタを定数FALSEの入力および定数TRUEの出力と使用します。キャッシュされたデリミタと演算子を使用?がTRUEで、最後の実行後に演算子またはデリミタが変更された場合、不正確な結果が生成される場合があります。演算子とデリミタが両方ともブロックダイアグラム定数に配線されている場合、キャッシュされたデリミタと演算子を使用?を配線せずに最適なパフォーマンスが得られます。
文字列出力
—
文字列出力は、未変更の入力文字列を返します。
トークン後のオフセット
—
トークン後のオフセットは、最後に検出されたトークンと、その後に続くデリミタに続く入力文字列内のポイント位置を識別します。 同じ入力文字列に続くスキャンは、このオフセット位置から開始する必要があります。オフセットが0よりも小さく入力文字列内の文字数よりも大きい場合、または、文字列の終わりに達した場合は、トークン後のオフセットは–1になります。
トークン文字列
—
トークン文字列は一致したトークンです。トークン文字列は、演算子内のいずれかの文字列である場合や、デリミタ間に表示される入力文字列内の文字列である場合もあります。
トークン指標
—
トークン指標は、演算子内のいずれかの要素にトークン文字列が一致する場合、演算子内のトークン文字列の指標になります。 トークン文字列は他の任意の文字列の場合、トークン指標は–1を返します。関数が有効な演算子を検出せずに入力文字列の最後に達した場合、トークン指標は–2を返します。 |
トークンは、通常、構成ファイルや他のテキストベースのデータ形式を解析中に検出される個々のキーワード、数値、または演算子を指します。デリミタと演算子入力を介して、関数に渡すデータを持つトークンを指定できます。たとえば、スペース文字はデフォルトでデリミタであるため、This is a stringという各単語部分がトークンになり、センテンスを構成する単語に解析できます。
この関数は、トークン指標が-2 (文字列の最後を示す) を返すまで、文字列を一度に一部分ごとに処理するWhileループで使用します。各スキャン操作が前回のスキャンの終了点から開始するようにシフトレジスタを介してトークン後のオフセットをオフセットに渡すことができます。
デフォルトでは、関数はスペース、タブ、復帰文字、または改行文字をトークンとして識別して返します。これらを使用するか、任意のデリミタを使用して文字列を解析するか、または演算子を定義できます。
たとえば、以下の値を関数に配線したとします。
| 入力 | 値 |
|---|---|
| 入力文字列 | This is a testLabVIEWstring |
| オフセット | 0 (デフォルト) |
| 演算子 | [NI,asdf,LabVIEW] |
| 区切り文字 | \s,\t,\r,\n (デフォルト) |
関数をWhileループの内側に配置すると、関数は以下の値を返します。
最初の反復
| 文字列出力 | This is a testLabVIEWstring |
| トークン後のオフセット | 5 |
| トークン文字列 | This |
| トークン指標 | -1 (演算子ではない) |
2回目の反復
| 文字列出力 | This is a testLabVIEWstring |
| トークン後のオフセット | 8 |
| トークン文字列 | is |
| トークン指標 | -1 (演算子ではない) |
3回目の反復
| 文字列出力 | This is a testLabVIEWstring |
| トークン後のオフセット | 10 |
| トークン文字列 | a |
| トークン指標 | -1 (演算子ではない) |
4回目の反復
| 文字列出力 | This is a testLabVIEWstring |
| トークン後のオフセット | 14 |
| トークン文字列 | テスト |
| トークン指標 | -1 (演算子ではない) |
5回目の反復
| 文字列出力 | This is a testLabVIEWstring |
| トークン後のオフセット | 21 |
| トークン文字列 | LabVIEW |
| トークン指標 | 2 (演算子内の2つ目の項目) |
6回目の反復
| 文字列出力 | This is a testLabVIEWstring |
| トークン後のオフセット | -1 (これ以上トークンが存在しない) |
| トークン文字列 | 文字列 |
| トークン指標 | -1 (演算子ではない) |
7回目の演算子
| 文字列出力 | This is a testLabVIEWstring |
| トークン後のオフセット | -1 (これ以上トークンが存在しない) |
| トークン文字列 | (文字列の終わり) |
| トークン指標 | -2 (文字列の終わり) |
空トークンを許可? (F)
—
入力文字列
—
オフセット
—
演算子 (なし)
—
文字列出力
—
トークン後のオフセット
—