PCLの例

せりか式 - Presentation - PCLの例

PCLの例です.
というより,自作の関数群やちょっとした使い方になるかな.
ダウンロードできるファイルの方では,変数名が重複しないように,すべての変数名の前にSERIKA_を付けています.

特定文字のカウント

文字列(string)と文字(int)を与えると,文字列の中に指定された文字が何個あるか数え上げて,その数を返します.

    1: # count.pcl
    2: sub
    3:    int count(string str, int target)
    4: begin
    5:    int num = 0;
    6:
    7:    loop
    8:       int i = 1;
    9:    until
   10:       i > str.count()
   11:    begin
   12:       if(str[i] == target) then
   13:          num = num + 1;
   14:       end;
   15:        i = i + 1;
   16:    end;
   17:    return num;
   18: end;

文字列の部分抽出

デリミタ(int)で文字列(string)を分解し,指定された番目(int)の部分文字列を返します.

    1: # part.pcl
    2: sub
    3:    string part(string str, int _delimiter, int index)
    4: begin
    5:    int i;
    6:    int j;
    7:
    8:    loop
    9:       i = 1;
   10:    until
   11:       index <= 1 ||
   12:       i >= str.count()
   13:    begin
   14:       if(str[i] == delimiter) then
   15:          index = index - 1;
   16:       end;
   17:       i = i + 1;
   18:    end;
   19:
   20:    if(i == str.count()) then
   21:       return "";  # 見つからなかった
   22:    else
   23:       loop
   24:          j = i;
   25:          int flag = 0;
   26:       until
   27:          flag == 1 ||
   28:          j > str.count()
   29:       begin
   30:          if(str[j] == delimiter) then
   31:             flag = 1;
   32:             j = j - 1;
   33:          end;
   34:          j = j + 1;
   35:       end;
   36:    end;
   37:
   38:    j = j - i;
   39:
   40:    return str.substring(i, j);
   41: end;

文字列の分解

デリミタ(int)で文字列(string)を分解し,配列を返します.
この関数は,上記のcountpartを使っています.

    1: # split.pcl
    2: sub
    3:    array split(string str, int delimiter)
    4: begin
    5:    int size = count(str, delimiter);
    6:    array list[size];
    7:
    8:    loop
    9:       int i = 1;
   10:    until
   11:       i > size
   12:    begin
   13:       list[i] = part(str, delimiter, i);
   14:       i = i + 1;
   15:    end;
   16:
   17:    return list;
   18: end;


トップへ