# part.pcl # Copyright (C) 2005 せりか式 # 文字列の部分抽出 # part(string, int, int) : string # # in : string : SERIKA_str : 対象とする文字列 # : int : SERIKA_delimiter : 文字列を分割するデリミタ # : int : SERIKA_index : 取り出す文字列の位置 # out : string : : 取り出した部分文字列 sub string part(string SERIKA_str, int SERIKA_delimiter, int SERIKA_index) begin int SERIKA_i; int SERIKA_j; loop SERIKA_i = 1; until SERIKA_index <= 1 || SERIKA_i >= SERIKA_str.count() begin if(SERIKA_str[i] == SERIKA_delimiter) then SERIKA_index = SERIKA_index - 1; end; SERIKA_i = SERIKA_i + 1; end; if(SERIKA_i == SERIKA_str.count()) then return ""; # 見つからなかった else loop SERIKA_j = SERIKA_i; int SERIKA_flag = 0; until SERIKA_flag == 1 || SERIKA_j > SERIKA_str.count() begin if(SERIKA_str[j] == SERIKA_delimiter) then SERIKA_flag = 1; SERIKA_j = SERIKA_j - 1; end; SERIKA_j = SERIKA_j + 1; end; end; SERIKA_j = SERIKA_j - SERIKA_i; return SERIKA_str.substring(SERIKA_i, SERIKA_j); end;