JCL_str_Extract

文字列ブロックを区切り文字で分割して、それらの要素を配列に入れて返す。配列は呼び元にて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を意識して作成。