2010年8月9日月曜日

RLENGTH = match関数で見つけた文字列の長さ - AWK

AWKの文字列操作関数と関連機能
○Gawk on Windows ○Gawk ○(バイト数)mawk32 ○(バイト数)Mawk ○(バイト数)awk
matchで見つけた文字列の長さです。


**** 書式
--------
RLENGTH
--------

o RLENGTHは変数です。


**** 使用例
o 使用例は、「match - 正規表現の登場位置を調べる


**** 機能
o matchで見つけた文字列の長さです。数える単位は実装依存です。
o 見つからなかった時は、-1です。

** 処理系に依存する動作
o 漢字などの全角文字が混じっている場合、処理系によって動きが異なります。
o 文字数で数える処理系
   + Gawk on Windows 3.1.7
   + Gawk for Windows 3.1.6
o バイト数で数える処理系
   + mawk MBCS (32bit版) 1.3.3
   + Mawk for Windows 1.3.3
   + original = the one true awk(updated May 1, 2007)

詳しくは「match - 正規表現の登場位置を調べる


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3 -- バイト数で数える
o Mawk for Windows 1.3.3 -- バイト数で数える
o original = the one true awk(updated May 1, 2007) -- バイト数で数える


==
関連ページ:
    ▼AWKの文字列操作関数と関連機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > FS = 分割する時の区切り文字
    OFMT = printを使って数値1つだけを書き出す時の書式
    CONVFMT = 数値を文字列に自動変換する時の書式
    +
    match = 正規表現の登場位置を調べる
    RSTART = match関数で見つけた文字列の先頭位置

RSTART = match関数で見つけた文字列の先頭位置 - AWK

AWKの文字列操作関数と関連機能
○Gawk on Windows ○Gawk ○(バイト数)mawk32 ○(バイト数)Mawk ○(バイト数)awk
matchで見つけた文字列の先頭位置です。


**** 書式
--------
RSTART
--------

o RSTARTは変数です。

**** 使用例
o 使用例は、「match - 正規表現の登場位置を調べる


**** 機能
o matchで見つけた文字列の先頭位置です。数える単位は実装依存です。
o 見つけた時は、1以上の値が入ります。先頭が1です。
o 見つからなかった時、0 が入ります。

** 処理系に依存する動作
o 漢字などの全角文字が混じっている場合、処理系によって動きが異なります。
o 文字数で数える処理系
   + Gawk on Windows 3.1.7
   + Gawk for Windows 3.1.6
o バイト数で数える処理系
   + mawk MBCS (32bit版) 1.3.3
   + Mawk for Windows 1.3.3
   + original = the one true awk(updated May 1, 2007)

詳しくは「match - 正規表現の登場位置を調べる


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3 -- バイト数で数える
o Mawk for Windows 1.3.3 -- バイト数で数える
o original = the one true awk(updated May 1, 2007) -- バイト数で数える


==
関連ページ:
    ▼AWKの文字列操作関数と関連機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > RLENGTH = match関数で見つけた文字列の長さ
    FS = 分割する時の区切り文字
    OFMT = printを使って数値1つだけを書き出す時の書式
    +
    match = 正規表現の登場位置を調べる

コンピューター・プログラミングを扱ったアニメ - 雑談

2010年の雑談
特に探していませんが、見かけた時に追加します。


**** コンピューター・プログラミングを扱ったアニメ
o ▽よくわかる現代魔法
   + コンピューター・プログラミングで魔法を作る世界の話です。原作は小説です。
   + 原作を知らない方は、2話からご覧になった方が分かり易いかもしれません。
o ▽バトルプログラマーシラセ
   + 青年向け。主人公は、オタクなプログラマーです。

o この他に、ハッキング等、話の展開手段として登場する事があります。


**** メモ
o コンピューター・プログラミングそのものを扱った作品は、今の所、無いみたいです。


==
関連ページ:
    ▼2010年の雑談
    ▼お知らせなど
    ▼目次
    > YouTube。投稿出来る動画の長さを15分に延長
    クレオフーガ。天気に関する楽曲募集。2010年8月8日まで
    zoomeの動画投稿、8月から原則有料化
    +
    ▼コンピューター・プログラムを作る

ARGIND = ARGVにおける現在入力中ファイルの位置(Gawk専用) - AWK

AWKのパターンと制御文
○Gawk on Windows ○Gawk ×mawk32 ×Mawk ×awk
変数です。ARGVにおける現在入力中ファイルの位置が入っています。

**** 書式
--------
ARGIND
--------

o この変数は、Gawkの拡張機能です。
o ARGINDは変数です。


**** 使用例
--------
{
  if (FNR == 1) {
    print "現在の入力ファイルは[ " FILENAME " ]です。";
    for (i = 1; i < ARGC - ARGIND; ++i) {
      print "その後の入力予定ファイルその" i " = [" ARGV[ARGIND + i] "]";
    }
    if (ARGC - ARGIND < 2) {
      print "その後の入力予定ファイルは、ありません。";
    }
  }
}
--------

o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。


**** 機能
o ARGVにおける現在入力中ファイルの位置が入っています。
   + ARGV[ARGIND]は、FILENAMEに相当します。
o BEGINパターンの中では、ARGINDの値は 0 です。
o この値が更新されるのは、次の入力ファイルを読み込む時です。
o この値を変更しても、入力処理は変わりません。
o この機能をサポートしていない処理系があります。

** 処理系に依存する動作
o この機能をサポートしている処理系は、次の通りです。
   + Gawk on Windows 3.1.7
   + Gawk for Windows 3.1.6


**** メモ
o ARGINDの動作原理
--------
BEGIN {
  ARGIND = 0; # 最初は、0という値が入っています。
}
FNR == 1 {
  ++ARGIND; # 最初の行を読み込む時に更新されます。
}
--------


o Gawk用に作ったプログラムを他で動かす時の例。関数への置き換えです。
    + ARGCの値が間違っていても、それなりの値を返すようにしました。
--------
function GetARGIND(    tmpi) {
  for (tmpi = ARGC - 1; tmpi > 0; --tmpi) if (ARGV[tmpi] != FILENAME) return tmpi;
  for (tmpi = (ARGC < 1)?0:(ARGC - 1); (tmpi > 0 && ARGV[tmpi] != FILENAME); --tmpi);
  return tmpi;
}
{
  print GetARGIND(); # ARGINDを使っている所を、関数呼び出しに置き換えます。
}
--------



**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3 -- 非サポート
o Mawk for Windows 1.3.3 -- 非サポート
o original = the one true awk(updated May 1, 2007) -- 非サポート


==
関連ページ:
    ▼AWKのパターンと制御文▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > ENVIRON = 環境変数。読み取り専用
    PROCINFO = AWKのプロセスに関する情報。プロセスIDなど(Gawk専用)
    AWKPATH = コマンドでAWKファイル名を指定する時、ファイルの場所を省略する(Gawk, mawk32専用)
    +
    ARGC = ARGVに入っている要素の個数
    ARGV = AWK起動時に指定した入力ファイル名とコマンド名
    FILENAME = 現在入力ファイルの名前
(2010年8月17日変更。使用例が文法エラーになっていたので訂正)