文字列ブロックを区切り文字で分割して、それらの要素を配列に入れて返す。配列は呼び元にて0件で宣言しておく。戻り値は配列の要素数。上記はファイルから読み込んだテキストを改行コードで区切って取得する例。
使い方
//改行で切り分ける
$numOfLines:=JCL_str_Extract ($fileText;Char(Carriage return);->$lineAry)
引数
$1: 対象文字列ブロック
$2: 区切り文字
$3: 返す配列のポインタ
//JCL_str_Extract
//zz_ExtractText
//20110317 wat
//20121001 wat rename
//文字列ブロックを区切り文字で切り出す
C_TEXT($1;$block)
$block:=$1 //対象文字列ブロック
C_TEXT($2;$separator)
$separator:=$2 //区切り文字
C_POINTER($3;$outAryPtr)
$outAryPtr:=$3 //返す配列
C_LONGINT($0;$sizeOfAry)
$sizeOfAry:=0
C_TEXT($str)
C_LONGINT($len)
C_LONGINT($pos;$nextPos)
$len:=Length($separator)
$pos:=1
$nextPos:=1
Repeat
$foundPos:=Position($separator;$block;$pos)
If ($foundPos#0)
$str:=Substring($block;$pos;$foundPos-$pos)
$pos:=$foundPos+$len
Else
$str:=Substring($block;$pos)
End if
//配列に追加
APPEND TO ARRAY($outAryPtr->;$str)
$sizeOfAry:=$sizeOfAry+1
Until ($foundPos=0)
$0:=$sizeOfAry
文字列ブロックの改行コードはCR, LF, CR+LFの3種類がある。Extractする前に改行コードを統一、CRひとつだけにしておくと良い。
PHPのExtractを意識して作成。