まずはソースから。
function NP_CutFirst(var Str:string;SubStr:string):string; var aPos:integer; begin Result:=''; //------------------------------------------------------- // 文字位置を取得 //------------------------------------------------------- aPos:=Str.IndexOf(SubStr); //------------------------------------------------------- // Substrが見つからない場合 //------------------------------------------------------- if aPos=-1 then begin Result:=Str; Str:=''; exit; end; //------------------------------------------------------- // 分割処理 // 文頭にデリミタがある場合とそうでない場合に場合分け // 分割前半を取得 //------------------------------------------------------- if aPos=0 then Result:='' else Result:=Str.SubString(0,aPos); //------------------------------------------------------- // 分割処理 // 分割後半を取得 //------------------------------------------------------- Str:=Str.Remove(0,aPos+SubStr.Length); end;
引数に分割対象の文字列と分割のデリミタとなる文字列を指定して呼び出します。
すると、戻り値にはデリミタ前の文字列。呼び出した分割対象の文字列は
デリミタより後の文字列が入ります。
戻り値、呼出後の分割対象文字列にはデリミタは含まれません。